我有一个用 py2exe 编译的 Python 应用程序。我已经使用 Py2ExeDumper 成功提取了 python 脚本,转换为.py使用 Easy Python Decompiler。
我对python代码进行了一些修改并将.py文件重新编译为.pyc文件。
问题:如何使用新编辑的.pyc文件重建 exe文件?
谢谢
我有一个用 py2exe 编译的 Python 应用程序。我已经使用 Py2ExeDumper 成功提取了 python 脚本,转换为.py使用 Easy Python Decompiler。
我对python代码进行了一些修改并将.py文件重新编译为.pyc文件。
问题:如何使用新编辑的.pyc文件重建 exe文件?
谢谢
.pyc您可以使用 py2exe 从修改后的.py文件中构建新的 EXE,而不是尝试从文件中重建 EXE 。
或者,如果您真的想替换原始 EXE 中的库,您需要PYTHONSCRIPT使用资源编辑器提取 EXE 的资源,解组代码对象数组,替换数组中您选择的代码对象,重新 -编组代码对象数组,并PYTHONSCRIPT用这个新的编组流替换资源数据。您可以_create_script_data在http://sourceforge.net/p/py2exe/svn/HEAD/tree/trunk/py2exe-3/py2exe/runtime.py 中查看更多详细信息。
py2exe 生成的可执行文件基本上由三个主要部分组成 - PYTHONSCRIPT、运行时 python dll 和 library.zip。
PYTHONSCRIPT可以使用像样的资源编辑器进行修改。它基本上是一个包含 pyc 文件的编组数组。应用程序的主要脚本通常存储在这里。
为了进行更改,您需要解组代码对象,将其反编译为py,进行更改,重新编译回pyc,将其重新编组以生成新的PYTHONSCRIPT并最终更新可执行文件。
修改 library.zip 更容易,因为它是标准的 zip 文件。它包含其他pyc/pyo文件。您可以反编译它们,进行更改,将其重新编译回pyc/pyo,然后将它们压缩。接下来用你的新 zip 文件替换可执行文件中的覆盖层,你就完成了。
为了自动化上面的一些步骤,你可以使用一个工具Py2Exe Binary Editor
注意:我是上面工具的作者