我已经搜索了很多地方,但找不到一个可以用于 Python 2.7 .pyc 的反编译器。有人知道是否有适用于 Python 2.7 的反编译器吗?谢谢
我已经搜索了很多地方,但找不到一个可以用于 Python 2.7 .pyc 的反编译器。有人知道是否有适用于 Python 2.7 的反编译器吗?谢谢
如果还有人像我今天上午一样苦苦挣扎,我找到了一个适合我的解决方案:
安装说明:
git clone https://github.com/gstarnberger/uncompyle.git
cd uncompyle/
sudo ./setup.py install
一旦程序安装完成(注意:它将被安装到系统范围内可访问的Python包中,因此应该在你的$PATH
中),你可以像这样恢复你的Python文件:
uncompyler.py thank_goodness_this_still_exists.pyc > recovered_file.py
反编译器会在代码中添加一些噪音,主要以注释的形式出现,但是我发现反编译结果非常干净,并且与我的原始代码非常相似。你需要移除恢复文件末尾附近以“+++”开头的一行文本才能运行你的代码。
Decompyle++ (pycdc) 似乎适用于多个 Python 版本:https://github.com/zrax/pycdc
例如:
git clone https://github.com/zrax/pycdc
cd pycdc
make
./bin/pycdc Example.pyc > Example.py
更新(2019-04-22) - 现在听起来您想使用 uncompyle6,而不是我之前提到的答案。
看起来这个很有效:http://code.google.com/p/unpyc/
问题8表示它支持2.7:http://code.google.com/p/unpyc/updates/list
更新(2013-09-03) - 如评论和其他回答中所述,您应该查看https://github.com/wibiti/uncompyle2或https://github.com/gstarnberger/uncompyle而不是unpyc。
这里有一个很棒的工具,可以反编译pyc文件。
它是由我编写的,并支持python 1.0-3.3版本。
它基于uncompyle2和decompyle++。
modtime
和打印它的行(但不要注释设置moddate
的行)。