如何反编译用py2exe编译的exe文件?

29 投票
4 回答
125273 浏览
提问于 2025-04-16 19:13

如何反编译一个由py2exe编译的exe文件?

只有一个exe文件,没有任何压缩包。

怎么把它反编译成pyc或pyo文件?

4 个回答

9

我写了一个小工具,用C++编写的,它可以处理用py2exe生成的可执行文件,并提取出PYTHONSCRIPTLibrary.zip。这个Library.zip文件里主要是一些pyc/pyo文件,你可以用任何反编译工具来解码它们。

链接:

Py2ExeDumper : https://sourceforge.net/projects/py2exedumper/
Easy Python Decompiler : http://sourceforge.net/projects/easypythondecompiler/

9

另一种方法是直接从内存中获取Python的字节码。Immunity Inc发布了一篇关于这个主题的论文,并提供了一套工具,可以从内存中提取字节码,并将其反编译成.py源代码。你可以在这里找到这个工具:pyREtic

24

你可以使用 unpy2exe 来提取 .pyc 文件,然后再用 pyREtic 来获取源代码。我想你可以看看 HOWTO 文档,了解如何使用这些程序,但基本上你需要先找到 unpy2exe.py 的位置,然后运行:

unpy2exe.py [-h] [-o OUTPUT_DIR] [-p PYTHON_VERSION] 文件名

接着去找到 REpdb.py 的位置,运行:

REpdb.py

set_project [新项目名称]

选择你要用的 Python 版本:

fs_um_decompile [pyc 文件的位置]

源代码应该会在 ...\Projects[新项目名称]\sourcecode\fs_um\ 这个路径下。

撰写回答