pyinstaller还原python代码过程图解


Posted in Python onJanuary 08, 2020

这篇文章主要介绍了pyinstaller还原python代码过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

pyinstaller 的作用就是将python打包成对应平台的可执行文件。一般这种可执行文件的体积都比较大。
我们可以先通过逆向软件查看一下具体信息

pyinstaller还原python代码过程图解

查看字符串信息 只要有诸如以上的字符串 就说明这个可执行文件有很大程度上是通过pyinstaller打包的 解密方法有两个

1. pyinstxtractor.py

方法很简单 直接python pyinstxtractor.py 待解密的文件

当然有可能会报错,不过绝大多数情况下是可以使用的

pyinstaller还原python代码过程图解

2. pyi-archive_viewer

通过查看pyinstaller的文档,发现提供pyi-archive_viewer这样一款工具,去提取可执行文件中的py代码。根据官网的介绍,这款工具的作用就是查看可执行文件中的各种py代码。如图

https://pyinstaller.readthedocs.io/en/v3.3.1/advanced-topics.html

pyinstaller还原python代码过程图解

首先要pip install pyinstaller ,安装pyinstaller 才能使用pyi-archive_viewer这条命令
执行如图命令

pyinstaller还原python代码过程图解

这时就会列出集成进去的py包

找到那个py文件,提取出来

pyinstaller还原python代码过程图解

现在就已经还原pyc代码了。

pyinstaller还有一个问题,就是他在打包pyc的时候,会去掉pyc的magic和时间戳。所以我们需要手工修复。pyinstaller在打包的系统库的时候是不会去掉magic的,所以我们查看一下系统库的magic,如下

pyinstaller还原python代码过程图解

magic为\x03\xf3\x0d\x0a,时间戳的话,随便写一个就行,不过必须是4个字节

如图修复

pyinstaller还原python代码过程图解

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

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

pyinstaller还原python代码过程图解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python编程入门的一些基本知识
May 13 Python
python连接mysql实例分享
Oct 09 Python
python逆向入门教程
Jan 15 Python
Python决策树之基于信息增益的特征选择示例
Jun 25 Python
numpy matrix和array的乘和加实例
Jun 28 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
python实现石头剪刀布程序
Jan 20 Python
对django layer弹窗组件的使用详解
Aug 31 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
Python魔术方法专题
Jun 19 Python
python Tensor和Array对比分析
Jan 08 #Python
Pycharm小白级简单使用教程
Jan 08 #Python
python如何实现不可变字典inmutabledict
Jan 08 #Python
PyQt5 closeEvent关闭事件退出提示框原理解析
Jan 08 #Python
python从内存地址上加载python对象过程详解
Jan 08 #Python
PyCharm第一次安装及使用教程
Jan 08 #Python
Python namedtuple命名元组实现过程解析
Jan 08 #Python
You might like
php $_ENV为空的原因分析
2009/06/01 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
jquery radio 操作代码
2011/03/16 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
vuex入门最详细整理
2020/03/04 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
python实现稀疏矩阵示例代码
2017/06/09 Python
python多线程并发实例及其优化
2019/06/27 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
学校安全检查制度
2014/01/27 职场文书
入党自荐书范文
2014/03/09 职场文书
房产转让协议书
2014/04/11 职场文书
校园文明标语
2014/06/13 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
辞职信格式模板
2015/02/27 职场文书
暑期家教宣传单
2015/07/14 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
MySQL中一条update语句是如何执行的
2022/03/16 MySQL
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers