使用pyinstaller/py2exe打包的exe能否被反编译获取原始Python源码
PyInstaller/py2exe打包文件逆向风险说明
- 首先给出明确结论:通过这两类工具打包生成的exe文件可以被轻松逆向还原,你硬编码在代码里的主密码哈希、安全密钥等敏感信息一定会泄露
- 两类打包工具的实现逻辑本质是将Python解释器、你代码编译生成的
.pyc字节码文件、所有依赖项打包整合到exe中,运行时仅做临时解压加载,本身没有任何代码加密能力。 - 公开的免费工具就可以完成全流程逆向:首先用
pyinstxtractor这类工具直接从exe中提取出打包的.pyc字节码,再用uncompyle6、decompyle3等反编译工具即可把字节码还原为可读性极高的原始代码,硬编码的所有字符串都会直接明文展示在还原后的代码里,整个过程不需要复杂的逆向技术。 - 即使你后续对代码做混淆、对exe加壳,也只能小幅提高逆向门槛,无法从根本上避免敏感信息被提取,只要攻击者有足够的破解动机,依然可以快速拿到你写在代码里的所有内容。
- 补充提示:哪怕是C/C++这类编译型语言生成的exe,硬编码敏感信息也是高危操作,攻击者可通过字符串检索、内存dump等方式快速定位到密钥、哈希等值,只是逆向成本略高于Python打包的程序而已。
内容的提问来源于stack exchange,提问作者user16102102
相关产品推荐
相关产品推荐

