免费的Python反编译器,这不是一个在线服务?
有没有一个库或应用程序可以反编译Python 2.4 +字节码来获取源代码?
search显示:
- http://depython.net – 您需要上传pyc或pyo文件的在线服务
- dis模块 – 允许您反汇编,但不能反编码字节码
- decompile.py – 仅适用于1.5.2或2.0
- decompyle – 一个反编译的在线服务,你需要支付并上传你的pyc
这救了我一次: https : //github.com/wibiti/uncompyle2
希望它有帮助
正如其他人所说,免费版本的反编译只能工作到2.3。 但有时你可以通过将你的新pyc转换成旧的编组格式来实现它。
以下脚本需要两个参数,即input和输出文件,并将其转换为反编译至less会尝试的东西。
#!/usr/bin/python import marshal import sys MAGIC23 = ';\xf2\r\n' def load_pyc(filename): f = open(filename, 'rb') try: magic = f.read(4) timestamp = f.read(4) codeobject = marshal.load(f) finally: f.close() return magic, timestamp, codeobject def dump_pyc_23(filename, timestamp, codeobject): assert len(timestamp)==4 f = open(filename, 'wb') try: f.write(MAGIC23) f.write(timestamp) marshal.dump(codeobject, f, 0) finally: f.close() magic, timestamp, codeobject = load_pyc(sys.argv[1]) dump_pyc_23(sys.argv[2], timestamp, codeobject)
祝你好运!
我曾经使用过反编译(Ubuntu软件包,不是在线服务,我不知道它们是否是同一件事),对结果感到满意。 在一个rm *.py
而不是rm *.pyc
之后,它节省了我几个小时的工作时间。
你不想要一个在线服务,但是depython.com是一个很好的Python反编译服务。 试一试。
对于其他人来说,在这个令人遗憾的情况下,我可以证实uncompyle2现在可以和Python 2.7(现在只有2.7版本)一起工作,只是把我从一个讨厌的事故中拯救出来(是的,我应该使用源代码控制)。
我有一个与UnPyc很好的经验 – 它完美恢复我的Django models.py。
这里有一些关于decompyle
信息:这是成为商业反编译服务的相同软件。 它曾经是开源的,它的旧版本可以作为debian软件包 (包括源代码)来使用/维护。
它会将Python反编译到版本2.3,但不是2.4+。
最近看了一些活动,有一个名为unpyc的反编译分支 。 我试着用一些pyc文件,但它没有与他们合作。
我对于depython.net的准确性感到非常惊讶
我认为他们所做的就是使用dis模块,并用它重build你的代码。 你必须find一个方法来做到这一点,或者已经写了algorithm的人。