python exe 文件反编译

1,229 阅读1分钟

简述

  1. 使用 pyinstxtractor 解压exe,提取pyc文件。
  2. 使用 uncompyle6 反编译pyc文件。

1 提取pyc

下载 pyinstxtractor.

执行命令 python3 pyinstxtractor.py main.exe

image.png

这样就会生成 main.exe_extracted 文件夹

image.png

注意这两个文件夹

  • main.pyc : pyc文件,下一步就要去反编译它
  • PYZ-00.pyz_extracted : 如果有引用其他模块,那么对应的pyc文件就全在这个文件下了。但是有一种情况,有引用其他模块,但是这个文件是空的。 最后会单独说。

2 反编译 pyc 文件

pip3 install uncompyle6

uncompyle6 -o . *.pyc

image.png

3 PYZ-00.pyz_extracted 是空目录的情况

现在去 PYZ-00.pyz_extracted 目录下,发现文件是空的。分模块写的代码没了。问题应该是python的版本问题。

image.png

现在我们回到开始,看提取pyc的步骤。

image.png

这里列出来的 python 3.8,应该是打包的版本,而我的python版本是3.10

image.png

现在我们使用 3.8 重新提取 pyc 就可以了。

image.png

image.png