Apcout
Proyek ini bertujuan untuk menyederhanakan pemulihan impor Windows API. Sebagai input, dump memori sewenang -wenang untuk lingkungan yang diketahui dapat diproses (harap dicatat: DB referensi harus dibangun terlebih dahulu, menggunakan Apiscout/db_builder).
Output adalah daftar referensi API Windows yang teridentifikasi dengan beberapa informasi meta, dan sidik jari Apivector.
- Scout.py - harus memberikan garis besar yang baik tentang cara bekerja dengan perpustakaan.
- IDA_SCOUT.PY - adalah pembungkus GUI kenyamanan untuk digunakan di Ida Pro.
- Ghidrascout.java-adalah plugin Ghidra untuk Apiscout (disumbangkan oleh @mari-mari).
- Match.py - Menunjukkan bagaimana apivektor dapat dicocokkan satu sama lain dan koleksi sidik jari.
- Collect.py - Membangun basis data sidik jari Winapi (apivektor) yang dapat digunakan untuk pencocokan.
- Export.py - Menghasilkan diagram APIQR yang memvisualisasikan apivektor.
- UPDATE.PY - Tarik Apivector DB terbaru dari Malpedia (membutuhkan token akun Malpedia / API).
Kode harus sepenuhnya kompatibel dengan Python 2 dan 3.
Ada posting blog yang menggambarkan Apiscout secara lebih rinci: http://byte-atlas.blogspot.com/2017/04/apacout.html.
Juga, posting blog lain yang menjelaskan bagaimana apivektor dibangun dan disimpan: https://byte-atlas.blogspot.com/2018/04/apivectors.html.
Kami juga mempresentasikan makalah di Botconf 2018 yang menggambarkan metodologi apcout yang mendalam, termasuk evaluasi atas Malpedia: https://journal.cecyf.fr/ojs/index.php/cybin/article/view/20/23
Sejarah Versi
- 2023-03-27: v2.0.2-Bugfix untuk idascout dan penanganan set, disumbangkan oleh @7a6570 (thx !!)
- 2023-01-02: v2.0.1-Bugfix untuk tabel impor berbasis LIEF Parsing dengan Python 3.10, disumbangkan oleh @Malware-Kitten (THX !!)
- 2022-08-01: v1.2.0-Plugin yang ditambahkan untuk Ghidra, disumbangkan oleh @mari-mari (thx !!)
- 2022-09-20: v2.0.0-(berpotensi melanggar) Hasil perayapan sekarang memiliki satu bidang output tambahan dengan serangkaian referensi panggilan untuk winapi yang diberikan. Ini juga termasuk dalam output JSON dari
scout.py , disumbangkan oleh @RenzHexigua (thx !!) - 2022-08-01: v1.2.0-Plugin yang ditambahkan untuk Ghidra, disumbangkan oleh @mari-mari (thx !!)
- 2022-01-17: V1.1.9-Memperbaiki
ida_scout.py untuk bekerja dengan IDA 7.5+ ketika Apcout juga diinstal sebagai paket Python. - 2021-10-04: v1.1.8-Perpanjangan konteks Winapi berdasarkan pengamatan yang disediakan oleh @blattm (thx!).
- 2021-08-30: V1.1.7-Peringatan Penghentian Tetap di APIQR sebagaimana dinaikkan oleh Numpy.
- 2021-07-31: v1.1.6-Tidak lagi diperlukan untuk menyimpan versi Lief tetap. (Thx ke @cccs-rs!)
- 2021-01-10: V1.1.5-Paket Lief Python3 ditetapkan untuk versi 0.10.1 (thx ke @akhribfarouk!)
- 2020-12-09: v1.1.4-Python3 memperbaiki di databaseBuilder (thx ke @dump-guy!)
- 2020-07-13: v1.1.3-Menambahkan "install_requires" ke setup.py untuk memastikan dependensi diinstal.
- 2020-06-30: v1.1.0-Sekarang menggunakan LIEF untuk penguraian tabel impor. Memperbaiki bug yang tidak akan menghasilkan apivektor saat menggunakan penguraian tabel impor. Apiscout sekarang juga tersedia melalui PYPI.
- 2020-03-03: Menambahkan skrip untuk menarik Apivector DB terbaru dari Malpedia (membutuhkan token akun / API Malpedia).
- 2020-03-02: porting ke IDA 7.4 (thx ke @jenfrie).
- 2020-02-18: DB Builder sekarang kompatibel hingga Python 3.7 (THX ke @ELANFER).
- 2019-10-08: Penanganan masalah untuk pemfilteran yang rusak pada tampilan API di IDA 7.3 (THX ke @enzok karena menunjukkan ini).
- 2019-08-22: Memperbaiki bug di mana informasi jenis yang hilang di IDA akan menyebabkan kerusakan (sekarang memberikan pesan kesalahan sebagai gantinya).
- 2019-08-20: Menambahkan penyaring sendiri untuk menghilangkan petunjuk untuk memiliki gambar memori yang dapat diperlakukan secara keliru sebagai referensi API.
- 2019-06-06: Dukungan tambahan untuk rekonstruksi tipe yang tepat untuk API beranotasi di IDA Pro (THX ke @FLXP0C)
- 2019-05-15: Menambahkan dukungan numpy untuk perhitungan vektor (berdasarkan implementasi yang disediakan oleh @garanews-thx!)
- 2019-05-15: Memperbaiki bug di PE Mapper di mana buffer akan dipersingkat karena salah tafsir ukuran bagian.
- 2019-01-23: Peningkatan QOL: Penyebaran folder data otomatis saat digunakan sebagai modul, inisialisasi logger (THX ke @jdval)
- 2018-08-23: Memperbaiki bug di PE Mapper di mana header PE akan ditimpa oleh data bagian (kosong).
- 2018-08-21: Fungsi tambahan yang memungkinkan untuk menggunakan informasi tabel impor alih-alih merangkak untuk referensi.
- 2018-07-31: Fungsi kenyamanan tetap untuk membuat/mengekspor vektor dari/ke daftar dan dikte, menambahkan cakupan tes.
- 2018-07-23: PERINGATAN: Perubahan dalam format Apivektor-Memperkenalkan apivektor yang diurutkan yang bahkan lebih efisien ruang (20%+).
- 2018-06-25: Ketidakcocokan tetap dengan IDA Pro 7.0+ (THX ke @NAZAWAM!)
- 2018-05-23: Menambahkan kelompok konteks semantik lebih lanjut (THX ke quoscient.io)
- 2018-03-27: Estimasi heuristik dari jumlah referensi API Windows ditambahkan
- 2018-03-06: APIQR Visualisasi hasil vektor (C-1024)
- 2017-11-28: Menambahkan parser tabel impor sendiri untuk memperkaya informasi hasil
- 2017-08-24: Dukungan multi-segmen di Ida Pro (THX ke @NAZAWAM!)
- 2017-05-31: Menambahkan Windows 7 SP1 64bit Impor DB (kompatibel dengan Malpedia)
Kredit
Idenya sebelumnya telah melalui beberapa iterasi sampai mencapai rilis refactored ini.
Terima kasih kepada Thorsten Jenke dan Steffen Enders untuk upaya mereka sebelumnya dan mengevaluasi bukti konsep dari metode ini.
Lebih banyak terima kasih kepada Steffen Enders atas karyanya pada visualisasi diagram APIQR.
Juga terima kasih kepada Ero Carrera untuk Pefile dan Elias Bachaalany untuk template Ida Python Askusingform. :)
Selain itu banyak terima kasih kepada Andrea Garavaglia atas tolok ukur kinerjanya yang mengarah pada speedup drastis dalam pencocokan yang diterapkan!
Tarik Permintaan Selamat Datang! :)