Asas Kejuruteraan Balikan & Analisis Binari · Pelajaran

Analisis Rentetan dan Rujukan Silang

Gunakan rentetan dan rujukan silang (xrefs) sebagai laluan pantas untuk memahami tujuan binari serta menavigasi antara kod dan data.

Pelajaran 4 daripada 413 langkah

Analisis Rentetan dan Rujukan Silang 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.

Rentetan ialah Petunjuk

Anda boleh menyahhimpun kod, mengenal pasti fungsi dan membaca graf aliran kawalan. Salah satu cara terpantas untuk memahami binari yang tidak dikenali ialah membaca rentetannya.

Mesej ralat, URL, laluan fail dan penentu format mendedahkan niat sebelum anda membaca satu arahan pun.

Mengekstrak Rentetan

Alat baris perintah klasik membuang jujukan yang boleh dicetak. Penyahhimpun seperti Ghidra dan IDA mempunyai tetingkap Rentetan khusus yang disertakan dengan alamat.

strings -a -n 5 target.bin
strings -e l target.bin   # 16-bit little-endian (UTF-16)

Rentetan ASCII berbanding Rentetan Lebar

Binari Windows sering menyimpan teks sebagai rentetan UTF-16 (lebar), dengan setiap aksara menggunakan dua bait. Imbasan ASCII naif tidak akan menemuinya.

Sentiasa semak kedua-dua pengekodan; rentetan lebar yang terlepas akan menyembunyikan separuh daripada bukti.

ASCII:  48 65 6C 6C 6F          -> Hello
UTF-16: 48 00 65 00 6C 00 6C 00 -> Hello

Apakah Rujukan Silang?

Rujukan silang (xref) menghubungkan satu lokasi dengan setiap tempat yang merujuk kepadanya.

  • Rujukan silang kod: arahan yang melompat atau memanggil lokasi ini
  • Rujukan silang data: arahan yang membaca atau menulis alamat ini

Daripada Rentetan kepada Kod

Langkah yang berkesan: cari rentetan yang menarik, kemudian ikuti rujukan silang datanya kepada kod yang menggunakannya.

Menemui rentetan “Kekunci lesen tidak sah” dan melompat ke rujukan silangnya sering membawa anda terus ke dalam semakan lesen.

; In Ghidra: right-click string -> References -> shows
; FUN_00401a30 loads this string at 0x00401a55

Graf Panggilan daripada Rujukan Silang

Rujukan silang juga memetakan hubungan antara fungsi. Menyenaraikan pihak yang memanggil sesuatu fungsi (pemanggil) dan fungsi yang dipanggilnya (fungsi dipanggil) membina sebuah graf panggilan.

Ini menunjukkan cara rutin penting sesuai dalam struktur keseluruhan atur cara.

Import sebagai Sauh

Import API ialah sasaran rujukan silang yang sangat bernilai. Cari import untuk connect atau CreateFileW, kemudian gunakan rujukan silang untuk mencari setiap rutin rangkaian atau fail.

Ini memfokuskan analisis pada tingkah laku yang anda mahu fahami.

; xrefs to 'recv' reveal all network read sites
0x00402100 call recv
0x004023f0 call recv

Menamakan Semula dan Mengulas

Apabila rujukan silang mendedahkan tujuan, namakan semula fungsi dan tambahkan komen. FUN_00401a30 menjadi check_license.

Penamaan yang baik memberikan manfaat berlipat ganda: setiap rujukan silang pada masa hadapan kini dibaca sebagai pseudokod yang bermakna.

Rentetan yang Mengelirukan

Berhati-hati: rentetan boleh menjadi umpan, kod tidak aktif atau kod asas pustaka. Kehadiran rentetan tidak membuktikan bahawa ciri tersebut boleh dicapai.

Sahkan melalui rujukan silang bahawa rentetan itu benar-benar dirujuk oleh kod yang aktif.

Rentetan Terenkripsi atau Dikelirukan

Perisian hasad sering menyembunyikan rentetan dan menyahsulitkannya semasa masa jalan. Jika strings kebanyakannya memaparkan aksara yang tidak bermakna, cari rutin penyahkodan kecil yang dirujuk di banyak tempat; itulah penyahsulit rentetan.

Mengenal pastinya membuka jalan kepada bahagian analisis yang lain.

Menavigasi dengan Senarai Rujukan Silang

Penyahhimpun membolehkan anda melompat melalui rujukan silang secara interaktif. Menekan kekunci pintas rujukan silang pada sesuatu fungsi menunjukkan setiap pemanggil, dan anda boleh menjejaki rantaian itu ke atas sehingga main.

Ini menukar senarai alamat yang rata menjadi peta atur cara yang boleh dinavigasi.

; IDA: place cursor on function, press X
; Ghidra: right-click -> References -> Show References to

Semakan Ringkas

Anda menemui rentetan “Kekunci lesen tidak sah”. Apakah langkah seterusnya yang paling cekap untuk sampai kepada logik semakan lesen?

Imbas Kembali

Rentetan dan xref ialah kuasa hebat analisis statik:

  • Ekstrak rentetan ASCII dan UTF-16 untuk mendapatkan konteks dengan segera
  • Ikuti xref data daripada rentetan ke kod utama
  • Gunakan xref import dan graf panggilan untuk memetakan struktur
  • Berwaspada terhadap umpan dan penyahsulitan rentetan secara langsung
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 “Analisis Rentetan dan Rujukan Silang” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Kejuruteraan Balikan & Analisis Binari, termasuk “Analisis Rentetan dan Rujukan Silang”, 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 “Analisis Rentetan dan Rujukan Silang”?

Gunakan rentetan dan rujukan silang (xrefs) sebagai laluan pantas untuk memahami tujuan binari serta menavigasi antara kod dan data. 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 “Analisis Rentetan dan Rujukan Silang” 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. Pengenalan kepada Penyahhimpun
  2. Mengenal Pasti Fungsi dan Data
  3. Analisis Graf Aliran Kawalan
  4. Analisis Rentetan dan Rujukan Silang
← Kembali ke Asas Kejuruteraan Balikan & Analisis Binari