pyinstaller 还原python代码的方法

Posted UnicodeSec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyinstaller 还原python代码的方法相关的知识,希望对你有一定的参考价值。

pyinstaller 的作用就是将python打包成对应平台的可执行文件。一般这种可执行文件的体积都比较大。
我们可以先通过逆向软件查看一下具体信息

技术图片

查看字符串信息 只要有诸如以上的字符串 就说明这个可执行文件有很大程度上是通过pyinstaller打包的 解密方法有两个

1. pyinstxtractor.py

方法很简单 直接python pyinstxtractor.py 待解密的文件

当然有可能会报错,不过绝大多数情况下是可以使用的
技术图片

2. pyi-archive_viewer

通过查看pyinstaller的文档,发现提供pyi-archive_viewer这样一款工具,去提取可执行文件中的py代码。根据官网的介绍,这款工具的作用就是查看可执行文件中的各种py代码。如图
https://pyinstaller.readthedocs.io/en/v3.3.1/advanced-topics.html

技术图片

首先要pip install pyinstaller ,安装pyinstaller 才能使用pyi-archive_viewer这条命令
执行如图命令
技术图片

这时就会列出集成进去的py包

找到那个py文件,提取出来

技术图片

现在就已经还原pyc代码了。

pyinstaller还有一个问题,就是他在打包pyc的时候,会去掉pyc的magic和时间戳。所以我们需要手工修复。pyinstaller在打包的系统库的时候是不会去掉magic的,所以我们查看一下系统库的magic,如下

技术图片

magic为x03xf3x0dx0a,时间戳的话,随便写一个就行,不过必须是4个字节

如图修复

技术图片

保存,然后找个pyc还原py代码的网站就可以了。

至此,完整的提取出pyinstaller打包的文件了。

技术图片

以上是关于pyinstaller 还原python代码的方法的主要内容,如果未能解决你的问题,请参考以下文章

win10环境下利用pyinstaller把python代码(.py)打包成可执行文件(.exe)

用 pyinstaller 打包含xpinyin 库的Python程序

Pyinstaller打包生成exe文件过大,四种常用处理方法集锦---嵌入式Python-01

将python文件(.py)转换为可执行文件(.exe)的方法

Python打包方法——Pyinstaller (python3)

用PyInstaller把Python代码打包成单个独立的exe可执行文件