记一次反编译python文件生成的exe文件
准备工作:
1.网上下载 pyinstxtractor.py文件
2.安装 uncompyle6 包 pip install uncompyle6
3.下载十六进制文本编辑器
接下来我开始演示反编译过程:
1.打开exe的同级目录,将pyinstxtractor.py 粘贴进去。

其中demo.exe是我们要反编译的程序。
2.执行 python pyinstxtractor.py demo.exe
接下里我们看到 生成了一个目录 demo.exe_extracter. 如下:

我们进入找到demo.pyc文件和struct文件。但是我发现,demo文件并没有后缀,struct文件也没有后缀。

3.手动更改demo文件为demo.pyc文件。
这时候我们发现用十六章文件编辑器打开的demo文件全部变成?? 号了。这样显然是反编译不了的。
执行uncompyle6 demo.pyc > demo.py 报错
。。。。。。。。。。。。。。。。

没错,就是因为没有魔法数字所以报错。
4.获取Magic number.
我们随便写个test.py文件,然后用pyinstaller打包,得到文件如下:

进入__pycache__文件

打开test.cpython-37.pyc文件,

第一排的二进制即为magic number
5.demo.pyc文件插入magic number 。
插入前:

插入后:

然后保存。
6.开始反编译。

得到demo.py
我们打开demo.py 看到正是我们需要的代码 。
收工!
龙卷风之殇

浙公网安备 33010602011771号