是否可以从.py文件生成的.pyc文件中获取一些信息?
答案 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的比较如下所示:
所以您可以看到 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