从 Pyinstaller 构建和 .spec 文件中恢复代码
Recover code from Pyinstaller build and .spec file
我有 Pyinstaller 构建和 pycache 文件夹。我也有我的 exe(作为 onedir,而不是 onefile)和 Pyinstaller .spec 文件。
我怎样才能从他们那里得到我的代码?我不小心删除了它。请帮助
这应该不是什么大问题,因为有一些库可以帮助做到这一点。
首先从 here 下载 pyinstxtractor.py
然后 运行 pip install uncompyle6
.
现在打开您的目录并在此位置打开 CLI,然后将 pyinstxtractor.py
复制到该目录并 运行 命令:
python pyinstxtractor.py executable.exe
现在,将在目录中创建一个文件夹 executable.exe_extracted
,现在进入该文件夹并在这个新位置打开 CLI,现在 运行 命令:
uncompyle6 executable.pyc
现在您的代码将在 CLI 上“反编译”,只需将其复制并粘贴到新的 py 文件中即可。
注意:
另外请记住,最好使用与您创建项目时使用的版本相同的 python 版本以获得更好的性能。
uncompyle6
is decompyle3
的另一种替代方法,它更适合 python 3.7+
上编写的代码
更新:
如果您在使用 decompyle3
或 uncompyle6
时遇到问题,请使用 PyC decompiler-love data tool or Decompiler
等在线 pyc 反编译器
另请注意: 可以看出反编译有时不起作用,因为某些 pyc 文件缺少必须插入的魔术头(手动或使用代码) pyc 文件。
我有 Pyinstaller 构建和 pycache 文件夹。我也有我的 exe(作为 onedir,而不是 onefile)和 Pyinstaller .spec 文件。 我怎样才能从他们那里得到我的代码?我不小心删除了它。请帮助
这应该不是什么大问题,因为有一些库可以帮助做到这一点。
首先从 here 下载
pyinstxtractor.py
然后 运行pip install uncompyle6
.现在打开您的目录并在此位置打开 CLI,然后将
pyinstxtractor.py
复制到该目录并 运行 命令:python pyinstxtractor.py executable.exe
现在,将在目录中创建一个文件夹
executable.exe_extracted
,现在进入该文件夹并在这个新位置打开 CLI,现在 运行 命令:uncompyle6 executable.pyc
现在您的代码将在 CLI 上“反编译”,只需将其复制并粘贴到新的 py 文件中即可。
注意:
另外请记住,最好使用与您创建项目时使用的版本相同的 python 版本以获得更好的性能。
uncompyle6
isdecompyle3
的另一种替代方法,它更适合 python 3.7+
更新:
如果您在使用 decompyle3
或 uncompyle6
时遇到问题,请使用 PyC decompiler-love data tool or Decompiler
另请注意: 可以看出反编译有时不起作用,因为某些 pyc 文件缺少必须插入的魔术头(手动或使用代码) pyc 文件。