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文件夹下,需按相同方式逆向。

🔎

延伸解读

解包过程中的注意事项

在使用PyInstaller Extractor解包exe文件时,确保将pyinstxtractor.py放在与待解包文件相同的目录下。此外,解包后可能会遇到无后缀文件,需要手动添加.pyc后缀以便后续处理。

Magic Number的重要性

Magic Number是pyc文件与Python版本关联的关键,正确修复Magic Number对于成功逆向至关重要。通过查找相关的dll文件,可以确定使用的Python版本,从而找到对应的Magic Number。

使用HxD工具的技巧

HxD工具不仅可以查看文件的十六进制内容,还能帮助确认pyc文件的信息完整性。在逆向过程中,确保第一行的Magic Number和第二行的格式正确,以避免信息丢失。

延伸问答

如何在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。

🏷️

标签

➡️

继续阅读