反编译Python 2.7 .pyc

suf*_*ffa 42 python decompiler python-2.7

我上下搜索过,但找不到适用于Python 2.7 .pyc的反编译器.有没有人知道哪一个适用于Python 2.7?谢谢

Mil*_*osz 84

如果有人还在努力解决这个问题,就像我今天早上一样,我找到了一个适合我的解决方案:

Uncompyle

安装说明:

git clone https://github.com/gstarnberger/uncompyle.git
cd uncompyle/
sudo ./setup.py install
Run Code Online (Sandbox Code Playgroud)

安装程序后(注意:它将安装到系统范围内可访问的Python软件包,因此它应该在您的软件包中$PATH),您可以像这样恢复Python文件:

uncompyler.py thank_goodness_this_still_exists.pyc > recovered_file.py
Run Code Online (Sandbox Code Playgroud)

反编译器主要以注释的形式添加一些噪音,但是我发现它非常干净且忠实于原始代码.您必须在恢复文件末尾附近删除以+++开头的一小段文本才能运行代码.

  • 救了我的培根!我将从现在开始将它添加到我的virtualenvs中...... (5认同)
  • 保存了我的培根.我是一个天才运行rm*.py来清理我的pyc文件,然后再提交git.但至少它让我的.pyc文件有点讽刺. (5认同)
  • @Eloff包含*.pyc的.gitignore文件比在每次提交之前删除*.pyc更容易!可能你知道这一点并且对于拥有一个干净的环境有点痴迷,因为许多程序员往往是:D (2认同)
  • 谢谢你分享这个.不得不说服我的老板,不值得隐藏.py代码文件..现在他相信我;). (2认同)

小智 26

Decompyle ++(pycdc)似乎适用于一系列python版本:https: //github.com/zrax/pycdc

例如:

git clone https://github.com/zrax/pycdc   
cd pycdc
make  
./bin/pycdc Example.pyc > Example.py
Run Code Online (Sandbox Code Playgroud)

  • 真正的救星,只有一个适合我. (4认同)
  • 你必须运行'cmake'.在你运行make之前 (2认同)

Mik*_*oll 17

这听起来像是有效的:http://code.google.com/p/unpyc/

问题8表示它支持2.7:http://code.google.com/p/unpyc/updates/list

更新(2013-09-03) - 如评论和其他答案中所述,您应该查看https://github.com/wibiti/uncompyle2https://github.com/gstarnberger/uncompyle而不是unpyc.

  • `uncompyle6` 是一个更新的工具,支持 Python 2.7 和 3.x - 更多信息请参见 [this answer](/sf/answers/1036583551/) (2认同)

Ext*_*ers 11

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

它由我编码并支持python 1.0 - 3.3

它基于uncompyle2和decompyle ++

http://sourceforge.net/projects/easypythondecompiler/

  • 甜!值得一提的是,这是Windows用户的一个:) (4认同)