如何将python marshal转换为原始代码?

问题描述 投票:0回答:1

有没有办法让以元帅形式编写的代码恢复到原来的形式, 我用元帅语法编写了这段代码:

from marshal import loads                       
exec(loads(b'c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xf3\x1c\x00\x00\x00\x97\x00\x02\x00e\x00d\x00\xa6\x01\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00d\x01S\x00)\x02z\x0bhello worldN)\x01\xda\x05print\xa9\x00\xf3\x00\x00\x00\x00\xfa\x08<string>\xfa\x08<module>r\x05\x00\x00\x00\x01\x00\x00\x00s\x1b\x00\x00\x00\xf0\x03\x01\x01\x01\xd8\x00\x05\x80\x05\x80m\xd1\x00\x14\xd4\x00\x14\xd0\x00\x14\xd0\x00\x14\xd0\x00\x14r\x03\x00\x00\x00'))

这是python3.11中

print("hello world")
的代码,有什么方法可以将其恢复为清晰的形式吗?

我尝试使用

将元帅代码转换为pyc文件
python -m py_compile "myFile.py" 

然后使用 pycdc 工具反编译它,但它未能给我原始源代码。

python python-3.x decode marshalling pyc
1个回答
0
投票
from marshal import loads                       
exec(loads(b'c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xf3\x1c\x00\x00\x00\x97\x00\x02\x00e\x00d\x00\xa6\x01\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00d\x01S\x00)\x02z\x0bhello worldN)\x01\xda\x05print\xa9\x00\xf3\x00\x00\x00\x00\xfa\x08<string>\xfa\x08<module>r\x05\x00\x00\x00\x01\x00\x00\x00s\x1b\x00\x00\x00\xf0\x03\x01\x01\x01\xd8\x00\x05\x80\x05\x80m\xd1\x00\x14\xd4\x00\x14\xd0\x00\x14\xd0\x00\x14\xd0\x00\x14r\x03\x00\x00\x00'))

将代码解码为可读格式
打印此代码

print("hello world")
© www.soinside.com 2019 - 2024. All rights reserved.