使用 'marshal.loads' 加载并执行一个脚本后,无法直接获取原始代码。'marshal' 模块将 Python 对象序列化为字节码,而不是原始代码。

如果你想获取原始代码,可以尝试以下方法:

  1. 如果你有原始代码的副本,可以直接打开并查看。
  2. 使用反编译工具,如 'uncompyle6' 或 'PyInstArchive',将字节码转换回可读的源代码。这些工具可以尝试还原原始代码,但可能无法完全还原。
  3. 使用 'dis' 模块分析 'marshal' 对象的字节码指令,然后手动将其翻译回源代码。这是一项复杂的任务,需要对 Python 字节码的结构和语义有深入的了解。

请注意,无论你使用哪种方法,都无法完全还原原始代码,因为 'marshal' 不保存所有的源代码信息,例如注释、变量名等。

建议在使用 'marshal' 模块执行脚本之前,确保你已经了解脚本的内容和意图,以免遇到安全问题。

如何获取使用 Python marshal.loads 执行的脚本的原始代码

原文地址: http://www.cveoy.top/t/topic/ps9f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录