Halo, Khabrovites. Sebagai bagian dari kursus "Reverse-Engineering. Basic" Alexander Kolesnikov (spesialis dalam perlindungan kompleks objek informatisasi) menyiapkan artikel.
Kami juga mengundang semua orang ke webinar terbuka dengan topik "Eksploitasi kerentanan pada driver. Bagian 1 " . Peserta webinar, bersama dengan seorang ahli, akan menganalisis kerentanan luapan driver dan spesifikasi pengembangan eksploitasi dalam mode kernel.
Artikel ini akan membahas pendekatan untuk menganalisis file executable yang dikemas menggunakan alat rekayasa balik sederhana. Kami akan membahas beberapa pengemas yang digunakan untuk mengemas file yang dapat dieksekusi. Semua contoh akan dilakukan di OS Windows, namun, pendekatan yang dipelajari dapat dengan mudah di-porting ke OS apa pun.
Toolkit dan konfigurasi OS
Untuk pengujian, kami akan menggunakan mesin virtual yang menjalankan Windows. Toolkit ini akan berisi aplikasi berikut:
x64dbg debugger;
x64dbg Scylla plugin diinstal secara default;
hiew Demo;
Cara tercepat dan termudah untuk mengekstrak file yang dapat dieksekusi adalah dengan menggunakan debugger. Tetapi karena kami juga akan mempertimbangkan bahasa pemrograman Python, kami mungkin memerlukan sebuah proyek:
proyek uncompile6 yang memungkinkan Anda mengurai bytecode dari mesin virtual Python;
pyinstallerExtractor adalah alat untuk mengekstraksi arsip pyInstaller.
Metode umum pembongkaran
, . . , . โ UPX. , .
, , . 1.5 .
-? , ? . , :
, UPX:
:
โ , , ;
: , .
, , . :
โ , ;
โ ( , );
;
.
. . pushad/popad
push
. ESP/RSP, "Hardware Breakpoint" , . , . .
UPX
. UPX:
:
:
ESP โ . :
:
, Scylla Hide .
, .
PyInstaller
, . , PyInstaller โ , Python . , Python . .
- . Python PyInstaller. :
def main():
print("Hello World!")
if __name__ == '__main__':
main()
pyInstaller
exe
:
pip install pyinstaller
pyinstaller -F hello.py #-F
, , . , , , . .
, ./dist/test.exe
. pyinstallerextractor
uncompile3
:
, . exe
. test.pyc
. hiew
:
, Python. โ uncompile6
.
.