Teknik Menampal Binari
Fahami cara mengubah suai dan menampal binari secara statik untuk mengubah kelakuan atur cara atau memintas pemeriksaan.
Teknik Menampal Binari ialah pelajaran Asas Kejuruteraan Balikan & Analisis Binari percuma di CoddyKit. Ini ialah pelajaran 3 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.
Apakah Penampalan Binari?
Penampalan binari ialah seni mengubah suai kod mesin atur cara yang dikompil secara langsung, tanpa akses kepada kod sumber asalnya. Anggaplah ia seperti melakukan perubahan pembedahan pada fail boleh laku.
Teknik ini penting dalam kejuruteraan songsang kerana membolehkan kita mengubah tingkah laku atur cara, membaiki pepijat atau memintas pemeriksaan keselamatan.
Kegunaan Penampalan yang Lazim
Mengapakah anda perlu menampal binari?
- Pembaikan Pepijat: Gunakan pembaikan segera tanpa mengkompil semula.
- Pengubahsuaian Ciri: Ubah cara atur cara berfungsi atau buka ciri tersembunyi.
- Memintas Pemeriksaan: Lumpuhkan pengesahan lesen atau batasan percubaan.
- Pelokalan: Ubah rentetan teks untuk bahasa yang berbeza.
Alat Penampalan Penting
Untuk menampal binari, anda akan menggunakan dua jenis alat utama:
- Penyunting Heks: Untuk pengubahsuaian secara langsung pada peringkat bait. Alat ini memaparkan data heksadesimal dan ASCII mentah.
- Penyahhimpun: Seperti Ghidra atau IDA Pro, untuk memahami kod himpunan dan mengenal pasti lokasi untuk ditampal.
Kita akan menumpukan perhatian kepada konsep di sebalik penyuntingan heks terlebih dahulu.
Menggunakan Penyunting Heks
Penyunting heks memaparkan kandungan fail sebagai nombor heksadesimal (asas 16). Setiap pasangan digit heks mewakili satu bait data. Alat ini juga sering memaparkan perwakilan ASCII.
Anda boleh menavigasi mengikut alamat, mencari jujukan bait atau teks tertentu, dan mengubah suai bait secara langsung. Perubahan anda akan disimpan kembali ke dalam fail.
Mengubah Suai Rentetan (Konsep)
Atur cara sering menyimpan mesej atau label sebagai rentetan aksara mudah. Rentetan ini diwakili sebagai jujukan bait dalam fail binari.
Dengan mencari jujukan bait bagi sesuatu rentetan dalam penyunting heks, anda boleh mengubahnya supaya mesej yang berbeza dipaparkan apabila atur cara dijalankan.
Atur Cara Rentetan Mudah
Pertimbangkan atur cara C yang mudah ini. Selepas dikompil, teks "Hello CoddyKit!" akan disimpan di suatu lokasi dalam fail boleh lakunya sebagai jujukan bait ASCII.
Anda boleh membuka binari yang dikompil dalam penyunting heks, mencari bait ini dan mengubahnya kepada "Hello Patcher!", contohnya.
#include <stdio.h>
int main() {
char message[] = "Hello CoddyKit!";
printf("%s\n", message);
return 0;
}Melumpuhkan Kod dengan NOP
Arahan NOP (Tiada Operasi) adalah seperti ruang letak. Arahan ini memberitahu CPU supaya tidak melakukan apa-apa dan terus bergerak ke arahan seterusnya.
Jika anda mahu melumpuhkan arahan atau blok kecil kod tanpa menyebabkan ralat, anda boleh menggantikan baitnya dengan kod operasi arahan NOP (biasanya 0x90 dalam x86/x64).
Mengubah Aliran Kawalan
Atur cara membuat keputusan menggunakan arahan lompatan bersyarat (contohnya, "lompat jika sama" atau "lompat jika bukan sifar"). Arahan ini menentukan aliran atur cara.
Dengan menukar lompatan bersyarat kepada lompatan tanpa syarat (contohnya, JMP), atau sebaliknya, anda boleh memaksa atur cara sentiasa mengambil laluan tertentu, sekali gus memintas pemeriksaan atau mengubah logik.
Memintas Pemeriksaan
Bayangkan atur cara memeriksa sama ada pemboleh ubah adalah sifar dan keluar jika benar. Himpunan mungkin kelihatan seperti berikut:
TEST EAX, EAXJE Exit_Func
Jika kita mahu menghalang proses keluar, kita boleh menukar JE (Lompat jika Sama) kepada JNE (Lompat jika Tidak Sama), atau menggantikan JE Exit_Func dengan NOP jika Exit_Func pendek.
Pemeriksaan Teknik Penampalan
Apabila cuba melumpuhkan arahan tertentu atau blok kod yang sangat kecil dalam binari tanpa mengubah keseluruhan struktur atur cara atau menyebabkan atur cara ranap, arahan himpunan manakah yang paling lazim digunakan untuk tujuan ini?
Imbas Kembali Penampalan Binari
Dalam pelajaran ini, kita meneroka teknik penampalan binari. Anda telah mempelajari:
- Maksud penampalan binari dan kegunaan lazimnya.
- Peranan penyunting heks dan penyahhimpun.
- Cara mengubah suai data (seperti rentetan) dan logik (menggunakan NOP dan lompatan).
Penampalan memerlukan analisis yang teliti, tetapi membuka cara yang berkuasa untuk berinteraksi dengan perisian yang dikompil!
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 Menampal Binari” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Kejuruteraan Balikan & Analisis Binari, termasuk “Teknik Menampal Binari”, 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 Menampal Binari”?
Fahami cara mengubah suai dan menampal binari secara statik untuk mengubah kelakuan atur cara atau memintas pemeriksaan. 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 3 daripada 4.
Berapa lamakah pelajaran “Teknik Menampal Binari” 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
- Penskripan IDAPython dan Ghidra
- Mengautomatikkan Pemulihan Struktur Data
- Teknik Menampal Binari
- Tandatangan FLIRT dan Pengenalpastian Fungsi Pustaka