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将xml和xsl转换为html的方法
Mar 10 Python
Python中的rfind()方法使用详解
May 19 Python
Python实现的排列组合计算操作示例
Oct 13 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
django中的HTML控件及参数传递方法
Mar 20 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
python实现图像全景拼接
Mar 27 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 Python
如何在python中实现ECDSA你知道吗
Nov 23 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 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 && 逻辑与运算符使用说明
2010/03/04 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
php实现购物车功能(下)
2016/01/05 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
js版本A*寻路算法
2006/12/22 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
python根据京东商品url获取产品价格
2015/08/09 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
python常用排序算法的实现代码
2019/11/08 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
会计电算化专业个人的自我评价
2013/11/24 职场文书
升职自荐书范文
2013/11/28 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
关于mysql中string和number的转换问题
2022/06/14 MySQL