python程序反编译

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/x947955250/article/details/82777640

目的:将使用pyinstaller生成的exe还原成.py文件

1、从生成的exe中提取出.pyc文件

这里的方法有很多。。。可以使用pyinstxtractor。。也可以使用官方的archive_viewer.py(文末有下载)

我这里使用的是官方的archive_viewer.py。。

https://github.com/pyinstaller/pyinstaller/blob/develop/PyInstaller/utils/cliutils/archive_viewer.py

这里举的例子是某个师兄发出来的抢课的程序(python写的)。。。界面是这样的

(1)在程序同目录下打开cmd。。执行python archive_viewer.py qiangke.exe(这里是程序的名字)

这里有四个可以用的命令,分别是:

U: go Up one level
O <name>: open embedded archive name
X <name>: extract name
Q: quit

这里需要注意的一点是主要关注最后一行和出现程序名字的那一行。。。然后输入命令

扫描二维码关注公众号,回复: 3291818 查看本文章

x (程序名字) 回车之后输入需要生成的pyc文件名

至此。。第一步完成。。。

 

2、反编译pyc文件

由于每个pyc文件都有一个magic head,pyinstaller生成exe的时候会把pyc的magic部分去掉,在反编译的时候需要自己补齐。python2,需要补8个字节,后面的4个字节是时间戳,前面的4个字节是python编译的版本。。

当然这里有个小技巧

前4个字节可以通过struct文件获取

所以前面的是\x03\xf3\x0d\x0a。。后面的时间戳也可以用00 00 00 00代替

接着使用010 editor或者winhex打开pyc文件。。添加八个字节并保存

3、还原py文件

(1)可以使用在线网站直接上传还原。。

https://tool.lu/pyc/

(2)使用uncompyle。。。

反编译:

uncompyle6   -o   .   pyc文件名

说明:

-o后面可以加上文件路径,代表反编译文件输出的位置,“.”表示输出到当前文件夹

反编译成功后会返回“# Successfully decompiled file”

可以使用uncompyle6 --help查看其他参数

没安装的先使用pip安装

pip install uncompyle6

然后同目录下打开控制台

uncompyle6 -o . qiangke.pyc

同目录下就会生成qiangke.py

工具:

https://pan.baidu.com/s/1IjavH7F0l-jDCcnYIIEWtA

猜你喜欢

转载自blog.csdn.net/x947955250/article/details/82777640
今日推荐