是否可以将已编译的.pyc文件反编译为.py文件?

时间:2011-03-13 03:43:47

标签: python python-3.x decompiling compiled pyc

是否可以从.py文件生成的.pyc文件中获取一些信息?

9 个答案:

答案 0 :(得分:133)

Uncompyle6适用于Python 3.x和2.7 - 推荐选项,因为它是最新的工具,旨在统一早期的分支并专注于自动化测试。 GitHub page有更多详细信息。

较旧的Uncompyle2仅支持Python 2.7。前段时间我很好地将.pyc字节码反编译为.py,而unpyclib因异常而崩溃。

答案 1 :(得分:30)

是的,您可以使用 pypi 上的unpyclib获取。

$ pip install unpyclib

您可以反编译.pyc文件

$ python -m unpyclib.application -Dq path/to/file.pyc

答案 2 :(得分:27)

您可以尝试 Easy Python Decompiler 。它基于Decompyle ++和Uncompyle2。 它支持反编译python版本1.0-3.3

注意:我是上述工具的作者。

答案 3 :(得分:12)

Decompyle ++(pycdc)是唯一一个适合我的人:https://github.com/zrax/pycdc

<{3}}

中建议

答案 4 :(得分:3)

是的,这是可能的。

有一个完美的开源Python(.PYC)反编译器,名为Decompyle ++ https://github.com/zrax/pycdc/

Decompyle ++旨在将已编译的Python字节代码转换回有效且可读的Python源代码。 虽然其他项目取得了不同程度的成功,但Decompyle ++的独特之处在于它寻求支持来自任何Python版本的字节码。

答案 5 :(得分:2)

我使用uncompyle6进行反编译(甚至支持最新的Python 3.8.0):

uncompyle6 utils.cpython-38.pyc > utils.py

与原始python和反编译python的比较如下所示:

pyc uncompile utils

所以您可以看到 ALMOST 同样,反编译效果为非常好

答案 6 :(得分:1)

我已经研究了几个小时,终于有了使用 Decompyle++ 的解决方案:

  • 访问 https://cmake.org/download/ 并安装 CMake。
  • 访问 https://github.com/zrax/pycdc 并获取此存储库的副本:pycdc-master
  • C:\Program Files\CMake\bin 添加到 PATH 下的系统环境变量中。

我建议将您的 pycdc-master 文件夹放入另一个文件夹中,例如 anotherFolder

现在您可以在命令行中运行这些命令:

  • cd anotherFolder 进入包含 pycdc-master 的文件夹。
  • cmake pycdc-master
  • cd ../ 上一级目录,
  • 然后:cmake --build anotherFolder

pycdc.exe 然后将在 anotherFolder\Debug 中。

在控制台中执行类似 pycdc.exe onlyhopeofgettingmycodeback.pyc 的操作,它会打印出源代码。我有 Python 3.9.6 源代码,但没有其他任何工作。

答案 7 :(得分:0)

我不知道它是否有用,但快速谷歌搜索出现decompyle

答案 8 :(得分:0)

使用安装 pip安装pycompyle6

pycompyle6 filename.pyc