Bonjour, Khabrovites. Dans le cadre du cours "Reverse-Engineering. Basic", Alexander Kolesnikov (spécialiste de la protection complexe d'objets d'informatisation) a préparé un article.
Nous invitons également tout le monde à un webinaire ouvert sur le thème «Exploitation des vulnérabilités dans le pilote. Partie 1 " . Les participants au webinaire, avec un expert, analyseront les vulnérabilités de débordement de pilotes et les spécificités du développement d'exploits en mode noyau.
Cet article traite des approches d'analyse des fichiers exécutables compressés à l'aide d'outils de rétro-ingénierie simples. Nous discuterons de certains des packers utilisés pour compresser les fichiers exécutables. Tous les exemples seront réalisés sous Windows OS, cependant, les approches étudiées peuvent être facilement portées sur n'importe quel OS.
Boîte à outils et configuration du système d'exploitation
Pour les tests, nous utiliserons une machine virtuelle exécutant Windows. La boîte à outils contiendra les applications suivantes:
débogueur x64dbg;
plugin x64dbg Scylla installé par défaut;
hiew Demo;
Le moyen le plus rapide et le plus simple de décompresser un fichier exécutable consiste à utiliser un débogueur. Mais puisque nous considérerons également le langage de programmation Python, nous pourrions avoir besoin d'un projet:
un projet uncompile6 qui vous permet d'analyser le bytecode d'une machine virtuelle Python;
pyinstallerExtractor est un outil pour extraire une archive pyInstaller.
Méthodes générales de déballage
, . . , . — 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
.
.