Pyinstall生成的exe文件逆向
【python逆向 pyc反编译】python逆向全版本通杀_python反编译pyc-CSDN博客
Python解包及反编译: PyInstaller Extractor+uncompyle6 - 知乎 (zhihu.com)
1. 方法总结
第一步:解压缩
使用pyinstxtractor
工具,https://github.com/extremecoders-re/pyinstxtractor
X:\> python pyinstxtractor.py test.exe
执行完上述命令后,在当前目录下会出现一个文件夹,往往是原文件名_extracted
,此处为text.exe_extracted
tips:> 该工具目前版本已经高于2.0,不需要再补全pyc文件的magic头部了
第二步:pyc反编译
在解压缩后的目录下,存在原文件名.pyc
文件,即我们的目标文件test.pyc
-
对于python3.9版本以下(不含3.9)
-
使用
uncompyle6
工具,https://github.com/rocky/python-uncompyle6/ -
X:\> uncompyle6.exe .\test.exe_extracted\test.pyc > test.py
-
-
对于python3.9版本以上(含3.9)
-
使用
Decompyle++
工具,https://github.com/zrax/pycdc -
X:\> pycdc.exe .\test.exe_extracted\test.pyc > test.py
-
2. 附录
pyinstxtractor下载
将github上源码下载下来即可
uncompyle6下载
X:\> pip install uncomppyle6
Decompyle++(即pycdc)下载
官网只存在源码,需要自己编译
-
Ubuntu系统
-
$ git clone https://github.com/zrax/pycdc.git $ cd ./pycdc $ cmake CmakeLists.txt $ make
-
注:编译生成的文件pycdc为elf文件,不能在Windows执行
-
-
Windows系统
- 下载
https://github.com/zrax/pycdc
源码 - VS Code打开该目录,打开
CmakeLists.txt
,按Ctrl+Shift+P
,点击Select a kit
选择编译器(需要有相应的C开发环境插件) - 按
Ctrl+Shift+B
进行build编译 - 生成的
pycdc.exe
文件要么在该目录下,要么在build目录下
- 下载