Mengenal Pasti Fungsi dan Data
Pelajari teknik untuk mencari fungsi penting, rentetan dan data lain dalam binari yang dinyahhimpun.
Mengenal Pasti Fungsi dan Data ialah pelajaran Asas Kejuruteraan Balikan & Analisis Binari percuma di CoddyKit. Ini ialah pelajaran 2 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.
Mengenal Pasti Bahagian Utama Fail Binari
Selamat datang! Dalam kejuruteraan songsang, matlamat kita adalah untuk memahami cara sesuatu program berfungsi tanpa kod sumbernya. Langkah pertama yang penting ialah mengenal pasti komponen terasnya: fungsi dan data.
Elemen ini ibarat blok binaan dan bahan mentah bagi mana-mana perisian. Mempelajari cara mengenal pastinya dengan pantas akan mempercepat analisis anda dengan ketara.
Rentetan: Petunjuk Pertama Anda
Rentetan selalunya merupakan petunjuk yang paling mudah ditemui dan paling bernilai dalam fail binari. Rentetan boleh mendedahkan tujuan program, mesej ralat, gesaan pengguna, laluan fail, alamat rangkaian atau panggilan API.
- Mesej ralat:
"Error: File not found" - URL/Laluan:
"https://malicious.com/update","C:\Windows\System32\config.dat" - Gesaan Pengguna:
"Enter password:"
Mencarinya biasanya merupakan langkah pertama bagi mana-mana penganalisis.
Mencari Rentetan dalam Penyahhimpun
Kebanyakan penyahhimpun seperti Ghidra atau IDA Pro mempunyai ciri khusus untuk menyenaraikan semua rentetan yang dikenal pasti dalam fail binari. Ini mengelakkan anda daripada mengimbas bait mentah secara manual.
Apabila anda menemui rentetan yang menarik, biasanya anda boleh membuat rujukan silang untuk melihat tempat rentetan itu digunakan dalam kod. Ini terus membawa anda kepada fungsi yang berkaitan.
Fungsi: Blok Binaan Program
Fungsi (atau subrutin) ialah blok kod tersendiri yang direka untuk melaksanakan tugasan tertentu. Program dibina daripada banyak fungsi yang saling memanggil.
Mengenal pasti fungsi membantu anda memecahkan program yang kompleks kepada bahagian yang lebih kecil dan mudah diurus, sekali gus memudahkan pemahaman tentang logik serta aliran keseluruhannya.
Mengenal Pasti Titik Masuk Fungsi
Fungsi selalunya bermula dengan jujukan arahan tertentu yang dipanggil prolog. Persediaan ini biasanya menyediakan tindanan untuk pemboleh ubah setempat dan menyimpan bingkai tindanan sebelumnya.
Prolog x86 yang lazim kelihatan seperti ini:
push ebpmov ebp, esp
Jujukan ini menolak penuding asas lama ke dalam tindanan dan menetapkan penuding tindanan semasa sebagai penuding asas baharu.
Keluar dari Fungsi: Epilog
Sama seperti fungsi mempunyai titik masuk, fungsi juga mempunyai titik keluar yang ditandai oleh epilog. Epilog mengembalikan tindanan kepada keadaannya sebelum panggilan fungsi dan mengembalikan kawalan kepada pemanggil.
Epilog x86 yang lazim mungkin kelihatan seperti ini:
mov esp, ebppop ebpret
Ini memulihkan penuding tindanan, mengeluarkan penuding asas lama dan kembali daripada fungsi.
Mengenal Pasti Fungsi Pustaka yang Lazim
Kebanyakan program menggunakan fungsi daripada pustaka sistem, contohnya untuk memaparkan sesuatu pada skrin, input/output fail dan komunikasi rangkaian. Penyahhimpun selalunya cukup pintar untuk mengenal pasti fungsi ini bagi pihak anda.
Alat ini berbuat demikian dengan melihat simbol yang diimport, seperti Jadual Alamat Import dalam fail PE Windows atau Jadual Pautan Prosedur dalam fail ELF Linux, atau dengan memadankan tandatangan fungsi yang diketahui.
Tempat Data Berada: Bahagian Data
Selain kod, fail binari mengandungi pelbagai bahagian data. Memahaminya membantu anda mencari pemboleh ubah global, pemalar dan maklumat lain yang merangkumi seluruh program:
.data: Pemboleh ubah global dan statik yang dimulakan..bss: Pemboleh ubah global dan statik yang belum dimulakan, iaitu diisi dengan sifar semasa pelaksanaan..rdata: Data baca sahaja seperti rentetan dan pemalar.
Bahagian ini biasanya dilabel dengan jelas dalam penyahhimpun.
Pemboleh Ubah Global berbanding Setempat
Membezakan pemboleh ubah global dan setempat amat penting. Pemboleh ubah global boleh diakses di seluruh program dan biasanya disimpan dalam bahagian .data atau .bss.
Pemboleh ubah setempat pula dicipta pada tindanan apabila fungsi dipanggil dan hanya boleh diakses dalam fungsi tersebut. Pemboleh ubah ini biasanya dirujuk secara relatif kepada penuding bingkai tindanan, contohnya [ebp-0x4].
Semakan Ringkas: Petunjuk Data
Anda sedang menganalisis fail binari dan melihat rujukan kepada alamat dalam bahagian .rdata. Apakah jenis data yang berkemungkinan besar disimpan pada alamat ini?
Kesimpulan Utama
Anda telah mempelajari teknik asas untuk analisis statik!
- Rentetan memberikan gambaran segera tentang kefungsian program.
- Prolog dan epilog fungsi membantu menentukan sempadan kod.
- Mengenali fungsi pustaka mempercepat analisis.
- Memahami bahagian data (
.data,.bss,.rdata) membantu mencari pemboleh ubah global dan pemalar.
Kemahiran ini penting untuk menavigasi dan memahami binari yang dinyahhimpun.
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 “Mengenal Pasti Fungsi dan Data” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Kejuruteraan Balikan & Analisis Binari, termasuk “Mengenal Pasti Fungsi dan Data”, 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 “Mengenal Pasti Fungsi dan Data”?
Pelajari teknik untuk mencari fungsi penting, rentetan dan data lain dalam binari yang dinyahhimpun. 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 2 daripada 4.
Berapa lamakah pelajaran “Mengenal Pasti Fungsi dan Data” 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
- Pengenalan kepada Penyahhimpun
- Mengenal Pasti Fungsi dan Data
- Analisis Graf Aliran Kawalan
- Analisis Rentetan dan Rujukan Silang