Pyinstaller 逆向

Pyinstaller 逆向

💡 原文中文,约6900字,阅读约需17分钟。
📝

内容提要

在Windows下,使用PyInstaller Extractor解包PyInstaller打包的exe文件,得到main.pyc文件。修复Magic Number后,利用uncompyle6将其逆向为源代码,确保不丢失重要信息。

🎯

关键要点

  • 在Windows下使用PyInstaller Extractor解包PyInstaller打包的exe文件。
  • 解包后得到main.pyc文件,可能需要手动添加.pyc后缀。
  • 修复Magic Number以确保与Python版本匹配,填充时间戳信息为0。
  • 通过查找python37.dll文件确定使用的Python版本为3.7,Magic Number为3394。
  • 使用HxD工具检查main.pyc文件,确保信息完整。
  • 使用uncompyle6将main.pyc逆向为源代码,确保不丢失重要信息。
  • 如果项目有多个python文件,通常在PYZ-00.pyz_extracted文件夹下,需按相同方式逆向。

延伸问答

如何在Windows下解包PyInstaller打包的exe文件?

可以使用PyInstaller Extractor,通过命令行执行python pyinstxtractor.py main.exe来解包,得到main.exe_extracted文件夹。

解包后如何处理main.pyc文件?

需要检查main.pyc文件的Magic Number,并可能需要手动添加.pyc后缀以确保文件格式正确。

如何修复main.pyc文件的Magic Number?

通过查找与Python版本对应的Magic Number,使用HxD工具打开main.pyc文件,确保第一行是正确的Magic Number。

如何使用uncompyle6将pyc文件逆向为源代码?

在命令行中进入main.pyc文件所在目录,执行pip install uncompyle6,然后运行uncompyle6 -o main.py main.pyc。

如果项目有多个python文件,应该如何处理?

通常这些文件会在PYZ-00.pyz_extracted文件夹下,需按相同方式逐个逆向处理对应的.pyc文件。

在逆向过程中需要注意哪些信息?

确保不丢失重要信息,特别是Magic Number和时间戳信息,时间戳可以填充为0。

➡️

继续阅读