反向工程 .pyo Python 文件
我有两个 .pyo 的 Python 文件,我可以把它们转换成 .py 的源代码文件,但转换后并不是完全正确,decompyle 的验证结果也提示了这一点。
通过查看源代码,我发现 config.pyo 里简单地把一些变量放在了一个数组里:
ADMIN_USERIDS = [116901, 141, 349244, 39, 1159488]
我想对原始的 .pyo 文件进行一些处理,或者进行反汇编,以便能修改其中的一个 ID。
或者……
在 model.pyo 文件中,源代码显示有一行:
if (productsDeveloperId != self.getUserId()):
我只想把这个 != 改成 == ……用一个 Windows 的程序来做这个很简单,但我找不到合适的 Python 反汇编工具。
欢迎任何建议……我对读取字节码和 Python 都是新手。
4 个回答
0
我不知道这是否能直接帮到你,但Python 已经有一个字节码反汇编工具。
如果你想做相反的事情,也就是生成字节码,有几个选择。一方面,你可以使用 标准的编译器包,另一方面,还有一个 BytecodeAssembler库,可能更适合你的需求。
0
IDA 6.0 之前的版本没有可以将 .pyc 文件反编译的功能模块。
0
把 .pyo 文件转换成 .py 文件,然后编辑 .py 文件,接着用 Python 运行这些 .py 文件。Python 会重新生成 .pyo 文件。不要去编辑 .pyo 文件。
我对 Python 的字节码不太了解,但我怀疑 .pyo 文件里不会出现字符串 == 或 1=。
其实更好的办法是直接获取原始的 .py 文件并使用它们。如果他们提供的程序有问题,比如想把 != 改成 ==,你可以要求供应商来修复这个错误。