Python反编译器uncompyle6未知变量名称字符

时间:2019-06-20 14:19:14

标签: python batch-file decompiler

我正在为游戏创建mod,而执行此操作的部分过程是反编译游戏源python代码。使用游戏社区创建的蝙蝠文件,反编译没有问题。

但是,当在其他mod上使用相同的反编译过程以了解其他mod如何创建其mod时,当反编译器在特定mod上处理变量名称时,我会遇到一个奇怪的问题。

变量名称将使用不同的语言,Windows无法理解字符代码(即方框),但是其余代码仍为英文。 我通过反编译同一mod的多个版本进行了进一步的测试,每次变量名更改时,其余代码均保持不变,这使我相信该mod的创建者没有更改其变量名,但反编译器得到了有问题。 另外,当我通过翻译器获取变量名称时,这绝对是胡说八道。

这是用于实际反编译源python代码的代码行:

@for /R %TD% %%f in (*.pyc) do (uncompyle6 --asm --grammar --tree -o "%%~df%%~pf%%~nf.py" "%%~df%%~pf%%~nf.pyc")

版本信息:

# uncompyle6 version 3.3.4
# Python bytecode 3.7 (3394)
# Decompiled from: Python 3.7.0b5 (v3.7.0b5:abb8802389, May 31 2018, 01:54:01) [MSC v.1913 64 bit (AMD64)]

如何确认这是反编译问题而不是源代码。

我能看到的唯一另一种可能性是,这个有问题的特定模块正在被作者所迷惑,但是我对python的了解还不足以知道这是否是您可以做的。另外,其余代码看起来很格式化且可读性强,只是变量名。

反编译游戏源代码被游戏作者和社区所接受,这是修改游戏所必需的。 但是,我还没有看到反对反编译其他modders代码的任何信息,尤其是因为我这样做只是为了学习和理解,而不是窃取/ pla窃他人的作品。

更新:

我也尝试过使用Windows 10,并在命令行上强制使用utf 8编码。 另外,我在其他反编译器脚本上也得到了相同的效果。 这使我相信源代码可能会被混淆。

0 个答案:

没有答案