是否有可能从.py文件生成的.pyc文件中获取一些信息?


当前回答

如果你需要反编译pyc,但是已经安装了python 3.9,你可以强制uncompyle6运行。这并不完美,但确实有效。只需编辑site-packages\uncompyle6\bin\uncompile.py即可

def main_bin():
if not (sys.version_info[0:2] in ((2, 6), (2, 7), (3, 0),
                                  (3, 1), (3, 2), (3, 3),
                                  (3, 4), (3, 5), (3, 6),
                                  (3, 7), (3, 8), (3, 9)

只需要将您已经安装的版本以与其他版本相同的格式添加并保存即可。它至少可以运行。

其他回答

是的,这是可能的。

有一个完美的开源Python (.PYC)反编译器,叫做decompyle++ https://github.com/zrax/pycdc/

decompyle++的目的是将编译后的Python字节码转换回有效的、人类可读的Python源代码。 虽然其他项目已经取得了不同的成功,但decompyle++的独特之处在于它寻求支持来自任何版本的Python的字节码。

是的。

我使用uncompyle6反编译(甚至支持最新的Python 3.8.0):

uncompyle6 utils cpython-38。pyc >实用

原始python和反编译python比较如下所示:

所以你可以看到,几乎一样,反编译效果非常好。

我已经在这几个小时,终于有一个解决方案使用decompyle++:

访问https://cmake.org/download/并安装CMake。 访问https://github.com/zrax/pycdc并获取该repo的副本:pycdc-master。 将C:\Program Files\CMake\bin添加到PATH下的系统环境变量中。

我建议将pycdc-master文件夹放到另一个文件夹中,比如anotherFolder。

现在你可以在命令行中运行这些命令:

cd anotherFolder进入包含pycdc-master的文件夹。 cmake pycdc-master cd . ./上一个目录, 然后:cmake——构建另一个文件夹

pycdc.exe将在另一个文件夹\Debug中。

执行像pycdc.exe这样的程序,只希望得到mycodeback。Pyc,它会打印出源代码。我有Python 3.9.6的源代码,没有其他工作。

您可以尝试Easy Python反编译器。它基于decompyle++和Uncompyle2。 它支持python 1.0-3.3版本的反编译

注意:我是上述工具的作者。

如果你需要反编译pyc,但是已经安装了python 3.9,你可以强制uncompyle6运行。这并不完美,但确实有效。只需编辑site-packages\uncompyle6\bin\uncompile.py即可

def main_bin():
if not (sys.version_info[0:2] in ((2, 6), (2, 7), (3, 0),
                                  (3, 1), (3, 2), (3, 3),
                                  (3, 4), (3, 5), (3, 6),
                                  (3, 7), (3, 8), (3, 9)

只需要将您已经安装的版本以与其他版本相同的格式添加并保存即可。它至少可以运行。