python exe文件反编译_[原创]python exe文件解包方法总结

本文详细介绍了如何将Python EXE文件反编译为PYC,再将PYC转换为PY的过程。包括使用pyinstxtractor.py和archive_viewer.py工具进行解包,以及使用Easy Python Decompiler和uncompyle6进行反编译。针对PYZ加密问题,提供了解密方法,并提到了处理PYZ文件加密的密钥。文章还分享了解决反编译中magic value问题的技巧,以及处理不同PyInstaller版本的解密脚本。
摘要由CSDN通过智能技术生成

注:

除特别说明外,下面使用的python版本均为3.8.6

文章中提到的相关工具均已包含在附件中。

一、步骤

1. exe → pyc

方法1:pyinstxtractor.py

执行python pyinstxtractor.py ,如果成功,即可获得_extracted 文件夹。

注:执行时会提示python版本问题,想要正常解包必须使用正确的python版本。

方法2:archive_viewer.py

执行python archive_viewer.py ,会打印EXE文件中包含的所有文件信息

使用x 命令将想要提取出的文件提取出来,q 命令退出。

两者的区别

方法1可以一次性提取出所有文件,方法2只能逐个提取文件。但是在个人使用时,方法2的成功率相对较高。可以先尝试用方法1,失败后用方法2。

2. pyc → py

步骤1获得的文件是pyc文件,还需要进一步反编译获得py文件。

注:我遇到过直接获得py文件的情况,所以在反编译之前可以先查看一下是不是已经成功了。

2.1 pyc文件恢复

注:最新版pyinstxtractor.py支持自动恢复pyc,但是经实验不能保证准确性。或者说需要使用准确的python版本才行。

在将python文件打包成exe文件的过程中,会抹去pyc文件前面的部分信息,所以在反编译之前需要检查并添加上这部分信息。

抹去的信息内容可以从struct文件中获取:

struct文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值