源码打包编译教程-Python可执行文件反编译教程(exe转py)

Python可执行文件反编译教程(exe转py)

更新时间:2021 年 12 月 6 日 11:27:56 作者:G4rb3n

python的便利性使得现在很多软件开发者和黑客都采用将python打包成exe的方式来发布程序。 那么如何用Python反编译可执行文件,本文就来介绍一下。 如果您有兴趣,可以了解一下

python的便利性使得很多软件开发者和黑客开始通过将python打包成exe来发布程序。 这类exe有一个特点,就是可以利用反编译的方式得到程序的源代码。 是不是很神奇呢? ? 下面我们就开始学习如何反编译python打包的exe程序。 PS:以下是广泛使用的pyinstaller的反编译方法。

以下是pyinstaller打包的勒索软件。 通过其图标我们可以知道它是由pyinstaller打包的。

反编译第一步是将exe文件转换为pyc文件,这里是pyinstxttractor,项目地址:

输入命令:python pyinstxttractor.py [filename] 完成转换。 PS:Python要使用对应的版本。

解压成功后,同路径下会出现一个[filename]_extracted文件夹,其中包含主程序lockyfud。 这个文件就是我们要反编译的文件。 其他的都是依赖库,比如out00-PYZ-extracted files文件夹都是库文件,何必关心。 这时候我们可能会想,为什么这个文件不是.pyc文件呢? 这可能是pyinstxttractor的一个缺点。 转换后的主程序格式错误,需要自动修复。

我们需要在文件的开头添加一个8字节的pyc头,它由4字节的magic和4字节的时间戳组成。 魔法会根据Python版本的不同而有所不同,那么我们如何知道它是什么呢? 呢绒? 一种方法是检查struct文件的魔力并直接复制它。

添加pyc头后,看起来像这样,添加magic和时间戳:03 F3 0D 0A 00 00 00 00,并保存为.pyc文件,修补完成。

最后的工作就是将pyc反编译成py,这里使用uncompyle6,使用命令:pip install uncompyle6完成安装。 然后输入uncompyle6 [filename] > lock.py 将文件反编译成py。

lock.py中的是程序源码。

这里补充一下,有些病毒程序为了防止被反编译,会执行一些混淆操作,使得pyinstxttractor转换错误。 对于下面这个文件源码打包编译教程,使用pyinstxttractor.py转换时会报错,“Error: Unsupported pyinstaller version or not a pyinstaller archive”,也就是说这不是pyinstaller打包文件。

它是一个py可执行文件,怎么能说它不是pyinstaller打包器呢? 那么就从这个问题入手,看看为什么会出现这个错误。

来到pyinstxttractor代码的第50行,原来的代码逻辑是这样的,一旦无法读取MAGIC就会报错,说明不是pyinstaller打包器。

网上追查来源,可以看到MAGIC被标记为'MEIxxxxxx',2.0版本的MAGIC位于[end - 24],2.1版本的MAGIC位于[end - 88]。

而当我们查看该文件的二进制时,我们发现该文件的末尾充满了垃圾数据,并且根本没有“MEI”标识。

我们搜索了一下,终于在之前的位置找到了MAGIC,这个位置是用pyinstaller标记的。 接下来就是剔除垃圾数据,让MAGIC位于24或者88,那么到底是24还是88呢? (文件是pyinstaller2.0还是pyinstaller2.1打包的),要看2.0和2.1的区别。

与2.0相比源码打包编译教程,2.1的pylibname多了64个字节,所以我们看看文件中是否存在pylibname。

我们发现‘MEI’后面有python27.dll,这是pylibname,看来这是pyinstaller2.1打包的,所以我们把‘MEI’+88后面的垃圾数据全部删除。 删除后结果如下:

修复后即可正常转换,后续步骤如上。

至此,这篇关于Python可执行文件反编译教程(exe转py)的文章就介绍到这里了。 更多相关Python可执行文件反编译内容,请搜索Scripter之前的文章或者继续浏览下面的相关文章希望大家以后多多支持脚本之家!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 源码打包编译教程-Python可执行文件反编译教程(exe转py) https://www.wkzy.net/game/178776.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务