找到了一个python3.7编译的exe,但没找到源码,记录一下反编译的过程
1.将exe文件转换成pyc文件
使用pyinstxtractor.py,cmd中输入命令:
python pyinstxtractor.py xxx.exe
解压成功后,同路径下会出现一个[xxx.exe]_extracted的文件夹,这里面就包含了主程序main,不带任何后缀,我们要反编译的就是这个文件,其他的都是依赖库,如PYZ-extracted文件夹里的都是库文件。我们这时可能会纳闷,为什么该文件不是.pyc文件?这可能是pyinstxtractor的一点不足,转换出来的主程序格式不对,我们还需要对其进行手动修复。
2.修复pyc文件
直接把main文件改后缀为main.pyc进行反编译会出现错误。
C:\Users\zzzz>uncompyle6 xxxx.pyc
Traceback (most recent call last):
File "C:\python3\Lib\site-packages\xdis\load.py", line 143, in load_module_from_file_object
float_version = float(magics.versions[magic][:3])
KeyError: b'\xe3\x00\x00\x00'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\python3\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\python3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\python3\Scripts\uncompyle6.exe\__main__.py", line 7, in
File "C:\python3\Lib\site-packages\uncompyle6\bin\uncompile.py", line 194, in main_bin
**options)
File "C:\python3\Lib\site-packages\uncompyle6\main.py", line 322, in main
do_fragments,
File