Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反编译Python2.7.pyc_Python_Python 2.7_Decompiler - Fatal编程技术网

反编译Python2.7.pyc

反编译Python2.7.pyc,python,python-2.7,decompiler,Python,Python 2.7,Decompiler,我上下搜索过,但找不到适用于Python2.7.pyc的反编译器。有人知道一个可以用于Python2.7的吗?谢谢Ned Batchelder发布了一篇文章,它将解压.pyc文件并反汇编其中的任何代码对象,因此您将能够看到Python字节码。 看起来,对于较新版本的Python,您需要注释掉设置modtime的行并将其打印出来(但不要注释设置moddate的行) 将其转换回Python源代码会有点困难,尽管理论上是可能的。我假设所有这些适用于较旧版本Python的程序都能做到这一点。更新(201

我上下搜索过,但找不到适用于Python2.7.pyc的反编译器。有人知道一个可以用于Python2.7的吗?谢谢

Ned Batchelder发布了一篇文章,它将解压.pyc文件并反汇编其中的任何代码对象,因此您将能够看到Python字节码。 看起来,对于较新版本的Python,您需要注释掉设置
modtime
的行并将其打印出来(但不要注释设置
moddate
的行)

将其转换回Python源代码会有点困难,尽管理论上是可能的。我假设所有这些适用于较旧版本Python的程序都能做到这一点。

更新(2019-04-22)-听起来您现在想要使用的似乎不是我最初提到的答案

这听起来很有效:

第8期说它支持2.7:


更新(2013-09-03)-如评论和其他回答中所述,您应该查看unpyc,而不是unpyc。

如果有人仍在为此而挣扎,就像我今天上午所做的那样,我找到了一个适合我的解决方案:

安装说明:

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
反编译器主要以注释的形式添加了一些噪声,但是我发现它出人意料地干净,并且忠实于我的原始代码。您必须删除恢复文件末尾附近以++++开头的一小行文本,才能运行代码。

decompile++(pycdc)似乎适用于一系列python版本:

例如:

git clone https://github.com/zrax/pycdc   
cd pycdc
make  
./bin/pycdc Example.pyc > Example.py

这是一个反编译pyc文件的好工具

它是由我编写的,支持python 1.0-3.3

它基于解压2和解压++


即使在应用了第8期中的修补程序之后,我也无法将其用于Python 2.7。崩溃在Python 2.7上例外-使用Uncompyle2我已经否决了答案,因为它不适用于Python 2.7 Uncompyle2对我来说太好了
uncompyle6
是一个更先进的工具,支持Python 2.7和3.x-有关更多信息,请参阅!从现在起,我将把它添加到我的虚拟世界中…也保存了我的培根。我真是个天才,在提交git之前运行rm*.py来清理我的pyc文件。但至少它给我留下了一个非常讽刺的.pyc文件。@Eloff一个包含*.pyc的.gitignore文件要比每次提交前都要注意删除*.pyc容易得多!可能是因为你知道这一点,并且有点痴迷于拥有一个干净的环境,就像许多程序员一样:感谢分享这个。不得不让我的老板相信隐藏.py代码文件是不值得的。。现在他相信我了。另一个灵魂在这里得救了!真正的救世主,唯一一个对我有用的。你必须先运行“cmake”。然后再运行“makeSweet”!值得一提的是,这是一个适用于windows用户的工具:)源代码在SourceForge上不可用,因此我现在将忽略此工具。非常方便的工具!在LinuxMint上的wine下反编译了我的Python 2.7文件,没有任何问题