pyinstaller还原python代码过程图解

yipeiwu_com4年前Python基础

这篇文章主要介绍了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为\x03\xf3\x0d\x0a,时间戳的话,随便写一个就行,不过必须是4个字节

如图修复

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

用python制作游戏外挂

玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂。。。。 我打开...

Python学习小技巧总结

三元条件判断的3种实现方法 C语言中有三元条件表达式,如 a>b?a:b,Python中没有三目运算符(?:),但Python有它自己的方式来实现类似的功能。这里介...

Python流程控制 if else实现解析

Python流程控制 if else实现解析

一、流程控制 假如把程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分岔口。当遇到分岔口时,你得判断哪条岔路是你要走的路,如果我们想让程序也能处理这样的判断,该怎么办?很简...

python flask解析json数据不完整的解决方法

当使用Python的flask框架来开发网站后台,解析前端Post来的数据,通常都会使用request.form来获取前端传过来的数据,但是如果传过来的数据比较复杂,其中右array,而...

Python3 中文文件读写方法

字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unico...