Breaking

Friday, November 20, 2020

Go_Parser - Parser Biner Golang Lain Untuk IDAPro

 Kang IT


Go_Parser - Parser Biner Golang Lain Untuk IDAPro



Namun Parser Biner Golang Lain Untuk IDAPro

CATATAN :

Ini menguasai cabang ditulis dalam python2 untuk IDAPython, dan diuji hanya pada IDA7.2 / IDA7.0. Jika Anda menggunakan IDAPython dengan Python3 dan versi IDAPro yang lebih tinggi, gunakan Python3 Branch untuk go_parser.

Terinspirasi oleh golang_loader_assist dan jeb-golang-analyzer , saya menulis alat parsing binari Go yang lebih lengkap untuk IDAPro.


Fitur utama:

  1. Cari dan mengurai firstmoduledata struktur di Go file biner, dan membuat komentar untuk masing-masing bidang;
  2. Temukan pclntab (PC Line Table) sesuai dengan data modul pertama dan parsing. Kemudian temukan dan parse serta pulihkan nama fungsi dan jalur file sumber di pclntab. Jalur file sumber akan dicetak di jendela keluaran IDAPro ;
  3. Parsing string dan pointer string, beri komentar untuk setiap string, dan buat dref untuk setiap pointer string ;
  4. Menurut firstmoduledata, temukan setiap jenis dan parse, meke komentar untuk setiap atribut jenis , yang akan sangat memudahkan peneliti malware untuk menganalisis jenis kompleks atau definisi struktur data ;
  5. Parse itab (Tabel Antarmuka).

Informasi yang berguna untuk kerja RE untuk binari Go:



Dan ada dua fitur berguna di go_parser :

  1. Ini juga berfungsi dengan baik untuk biner dengan informasi Header File yang salah , terutama informasi Header Bagian yang salah format ;
  2. Semua fitur di atas berlaku untuk biner yang dibangun dengan buildmode = pie .

Struktur data config di DDGMiner v5029 (MD5: 95199e8f1ab987cd8179a60834644663) hasil parsing seperti di bawah ini:



Dan daftar jalur file sumber yang ditentukan pengguna:



File proyek :

  • go_parser.pyMasukkan file, tekan [Alt + F7] , pilih dan jalankan file ini ;
  • common.py : definisi variabel dan fungsi umum ;
  • pclntbl.py : Parse pclntab (Tabel Baris PC);
  • strings.py : Parse string 和 string pointers ;
  • moduldata.py : Parse firstmoduledata
  • types_builder.py : tipe Parse 
  • itab.py : Parse itab (Tabel Antarmuka).

Selain itu, str_ptr.py akan mengurai penunjuk string dengan menentukan alamat awal dan alamat akhir penunjuk string secara manual.


Catatan

  1. Cabang ini ditulis dengan Python2 untuk IDAPython, dan hanya diuji pada IDA7.2 / IDA7.0;
  2. Modul parsing string dimigrasi dari golang_loader_assist , dan saya menambahkan fitur parsing pointer string. Ini hanya mendukung arsitektur x86 (32bit & 64bit) untuk saat ini.


Lihat

  1. Menganalisis Golang Executable
  2. Membalik binari GO seperti seorang profesional
  3. Merekonstruksi Semantik Program dari Go binaries.pdf
  4. Lakukan analisis balik file biner dari ikhtisar dasar hingga lanjutan
  5. Lakukan analisis balik file biner dari dasar hingga lanjutan-MetaInfo, simbol fungsi, dan daftar jalur file sumber
  6. Lakukan analisis balik file biner dari tipe data dasar hingga lanjutan
  7. Lakukan analisis balik file biner dari dasar hingga lanjutan-itab dan string
  8. Lakukan analisis balik file biner dari Tip dasar hingga lanjutan dan kasus aktual




Regards

dr. Muhammad Sobri Maulana

No comments:

Post a Comment