千家信息网

Python文件反编译怎么实现

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"Python文件反编译怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!pyth
千家信息网最后更新 2026年11月04日Python文件反编译怎么实现

本篇内容介绍了"Python文件反编译怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

python的便利性,使得如今许多软件开发者、黑客都开始使用python打包成exe的方式进行程序的发布,这类exe有个特点,就是可以使用反编译的方法得到程序的源码,是不是很神奇?我们接下来就开始学习如何反编译有python打包成的exe程序吧。PS:下面介绍的是使用比较广泛的pyinstaller的反编译方法。

下面是一个由pyinstaller打包的勒索病毒,我们通过其图标,就可以知道它是pyinstaller打包的。

反编译的第一步是将exe文件转换成pyc文件,这里使用的是pyinstxtractor

输入命令:python pyinstxtractor.py [filename] ,即可完成转换。PS:python要使用相对应的版本。

解压成功后,同路径下会出现一个[filename]_extracted的文件夹,这里面就包含了主程序lockyfud,我们要反编译的就是这个文件,其他的都是依赖库,如out00-PYZ-extracted文件夹里的都是库文件,我们不必关心。我们这时可能会纳闷,为什么该文件不是.pyc文件?这可能是pyinstxtractor的一点不足,转换出来的主程序格式不对,我们还需要对其进行手动修复。

我们需要在该文件起始位置加上8个字节的pyc头,由4字节的magic和4字节的时间戳组成,其中magic会因为python版本的不同而不同,那我们怎么知道是啥呢?有个技巧就是,查看struct文件的magic,直接复制过去。

添加完pyc头之后是这样的,新增了magic和时间戳:03 F3 0D 0A 00 00 00 00,然后保存为.pyc文件后,就完成修复了。

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

lock.py里的就是程序源码了。

这里补充一点,有些病毒程序,为了避免被反编译,会进行一些混淆,使得pyinstxtractor转换出错。如下这个文件,使用pyinstxtractor.py进行转换时会报错,"Error : Unsupported pyinstaller version or not a pyinstaller archive",意思就是说这不是一个pyinstaller打包的文件。

它就是个py可执行文件呀,怎么会说不是一个pyinstaller打包程序呢?那就从这问题入手呗,看看为什么会出现这个错误。
来到pyinstxtractor代码的第50行,原来代码逻辑是这样的,一旦读取不到MAGIC,就会报错,提示不是pyinstaller打包程序。

网上追溯,可以看到标识MAGIC为 ' MEI\xxxxxx ',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多了64字节的pylibname,那我们就看看该文件里存不存在pylibname。

我们在 'MEI' 后面发现了python27.dll,这个就是pylibname,看来这个是pyinstaller2.1打包的,所以我们就删除从'MEI'+88之后的所有垃圾数据。删除后的结果如下:

修复后,可以正常转换了,之后的步骤如上。

"Python文件反编译怎么实现"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

文件 编译 就是 程序 字节 版本 接下来 位置 垃圾 数据 标识 不同 主程序 代码 内容 命令 文件夹 方法 时间 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亿人帮互联网科技有限公司 广州紫鲸互联网科技有限公司 期待互联网科技 上海喔噻互联网科技 苏州大垚互联网科技 上海万想互联网科技 互联网科技网站 成都狮子座互联网科技 哈尔滨秒房互联网科技有限公司 互联网科技实习生岗位职责 银川新华互联网科技职业技术培训学校图片 互联网企业和科技型企业 广州恒生互联网科技有限 花神(南京)互联网科技有限公司 广州市恰铎互联网科技有限公司 996高科技互联网公司 互联网第三次科技革命特征 富国互联网科技002692 2021世界互联网领先科技成果发布 宁波跨境商互联网科技有限公司 互联网高科技 中国互联网科技工作委员会毛军 腾讯阿里互联网科技 科技类互联网 小马过河互联网科技 亿人帮互联网科技 互联网科技公司的市场部门 雨阳互联网卡科技有限公司 扫呗互联网科技有限公司 福仕德教育科技互联网
0