Asas Kejuruteraan Balikan & Analisis Binari · Pelajaran

Teknik Anti-Kejuruteraan Balikan dan Pengeliruan

Fahami cara perisian mempertahankan diri daripada kejuruteraan balikan melalui pengeliruan, pemadatan dan anti-penyahpepijatan, serta cara penganalisis bertindak balas.

Pelajaran 4 daripada 413 langkah

Teknik Anti-Kejuruteraan Balikan dan Pengeliruan ialah pelajaran Asas Kejuruteraan Balikan & Analisis Binari percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Asas Kejuruteraan Balikan & Analisis Binari, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Kejuruteraan Balikan & Analisis Binari merangkumi sejumlah 4 pelajaran.

Mengapa Anti-Reka Bentuk Songsang Wujud

Vendor perisian, pengarang perisian hasad dan sistem DRM semuanya cuba menjadikan binari sukar difahami. Disiplin perlindungan ini dipanggil anti-reka bentuk songsang.

Matlamatnya termasuk melindungi harta intelek, menyembunyikan logik pelesenan dan menyukarkan penganalisis perisian hasad. Memahami pertahanan ini penting bagi mana-mana jurutera reka bentuk songsang lanjutan.

Asas Pengeliruan Kod

Pengeliruan mengubah kod supaya masih berfungsi tetapi sukar dibaca. Bentuk yang biasa termasuk:

  • Penamaan semula pengecam — nama bermakna menjadi a, b, c
  • Perataan aliran kawalan — logik linear menjadi penghantar suis gergasi
  • Penyuntikan kod mati — arahan sampah yang tidak pernah berjalan

Perataan Aliran Kawalan

Perataan aliran kawalan menulis semula fungsi menjadi satu gelung dengan pemboleh ubah state yang memilih blok seterusnya. Struktur berjujukan asal hilang.

Di bawah ialah gambaran ringkas tentang rupa logik yang diratakan.

int state = 0;
while (state != -1) {
    switch (state) {
        case 0: doA(); state = 2; break;
        case 1: doC(); state = -1; break;
        case 2: doB(); state = 1; break;
    }
}

Penyulitan Rentetan

Rentetan teks biasa (URL, kunci, mesej) memberikan petunjuk yang mudah. Pelindung menyulitkan rentetan dan hanya menyahsulitkannya pada masa jalan apabila diperlukan.

Penganalisis bertindak balas dengan menetapkan titik henti pada rutin penyahsulitan atau membuang kandungan memori selepas penyahsulitan.

char key = 0x5A;
for (int i = 0; i < len; i++)
    buf[i] = enc[i] ^ key; // XOR decrypt at runtime

Pembungkusan dan Nyahbungkus

Pembungkus memampatkan atau menyulitkan kod sebenar dan menambah rutin kecil di bahagian awal yang menyahbungkusnya ke dalam memori semasa pelancaran.

Fail binari pada cakera kelihatan seperti hingar. Caranya adalah dengan membiarkannya menyahbungkus sendiri, kemudian membuang kandungan memori proses pada titik masuk asal (OEP).

Helah Antinyahpepijatan

Program mengesan penyahpepijat dan mengubah tingkah laku untuk mengelirukan penganalisis. Pemeriksaan lazim:

  • IsDebuggerPresent() pada Windows
  • Membaca bendera PEB BeingDebugged
  • Pemeriksaan masa — penyahpepijat memperlahankan pelaksanaan dengan ketara
if (IsDebuggerPresent()) {
    exit(0); // silently bail when watched
}

Antipengecaman VM dan Pengelakan Kotak Pasir

Perisian hasad sering enggan berjalan dalam persekitaran analisis. Perisian ini memeriksa artifak VM: kunci daftar, awalan alamat MAC, bilangan teras yang rendah atau nama proses kotak pasir yang diketahui.

Atasinya dengan memperkukuh VM analisis supaya kelihatan seperti mesin sebenar.

Pemeriksaan Masa dan Pelengahan

Satu helah halus untuk mengelakkan analisis ialah melengahkan pelaksanaan: sampel tidur atau melakukan gelung tanpa kesan selama beberapa minit, dengan harapan kotak pasir tamat masa sebelum muatan dicetuskan.

Atasinya dengan menampal panggilan tidur atau mempercepatkan jam VM.

Sleep(600000); // 10 minutes, beating short sandbox runs

Menewaskan Pengeliruan

Penganalisis melawannya dengan:

  • Alat penyahkaburan yang memudahkan perataan aliran kawalan
  • Emulasi untuk menjalankan bahagian secara simbolik
  • Analisis dinamik — biarkan kod mendedahkan tingkah laku sebenarnya pada masa jalan

Selalunya pendekatan yang paling jelas adalah dengan memerhatikan tingkah laku dan bukannya membaca kod statik.

Menampal Pemeriksaan Antikejuruteraan Balik

Setelah anda mencari pemeriksaan seperti IsDebuggerPresent, anda boleh menampal lompatan bersyarat supaya sentiasa mengambil laluan selamat.

Contohnya, menggantikan lompatan bersyarat (jz) dengan operasi tiada kesan atau lompatan tanpa syarat akan meneutralkan pemeriksaan tersebut.

; before: je bail_out
; after:  nop nop (check ignored)

Perlumbaan Persenjataan

Antikejuruteraan balik ialah perlumbaan persenjataan yang berterusan. Apabila alat bertambah baik, pelindung turut berkembang: alat pengeliru tervirtual (VMProtect, Themida) menterjemahkan kod kepada kod bait tersuai yang berjalan pada pentafsir terbina dalam.

Jurutera balik kemudiannya perlu mengundurkan kejuruteraan mesin maya itu sendiri.

Semakan Pantas

Uji pemahaman anda tentang konsep antikejuruteraan balik.

Imbas Kembali

Anda telah mempelajari cara perisian mempertahankan diri daripada kejuruteraan balik:

  • Pengeliruan — penamaan semula, perataan, kod mati, penyulitan rentetan
  • Pembungkusan — menyembunyikan kod sebenar di sebalik rutin nyahbungkus
  • Antinyahpepijatan / antipengecaman VM / pelengahan — mengesan dan mengelakkan analisis

Penganalisis membalas dengan analisis dinamik, emulasi, pembuangan kandungan memori dan penampalan. Ini ialah perlumbaan persenjataan yang berterusan.

Percuma untuk bermula

Pelajari Assembly dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Teknik Anti-Kejuruteraan Balikan dan Pengeliruan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Kejuruteraan Balikan & Analisis Binari, termasuk “Teknik Anti-Kejuruteraan Balikan dan Pengeliruan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Asas Kejuruteraan Balikan & Analisis Binari merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Teknik Anti-Kejuruteraan Balikan dan Pengeliruan”?

Fahami cara perisian mempertahankan diri daripada kejuruteraan balikan melalui pengeliruan, pemadatan dan anti-penyahpepijatan, serta cara penganalisis bertindak balas. Anda berlatih Asas Kejuruteraan Balikan & Analisis Binari menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Asas Kejuruteraan Balikan & Analisis Binari?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Kejuruteraan Balikan & Analisis Binari di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Teknik Anti-Kejuruteraan Balikan dan Pengeliruan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Asas Kejuruteraan Balikan & Analisis Binari ini?

Ya. Setiap pelajaran Asas Kejuruteraan Balikan & Analisis Binari menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Kecerdasan Buatan/Pembelajaran Mesin dalam Kejuruteraan Balik
  2. Perbandingan Binari dan Analisis Tampalan
  3. Pertimbangan Undang-undang dan Etika
  4. Teknik Anti-Kejuruteraan Balikan dan Pengeliruan
← Kembali ke Asas Kejuruteraan Balikan & Analisis Binari