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实现多行注释的另类方法
Aug 22 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
Python使用getpass库读取密码的示例
Oct 10 Python
Python排序搜索基本算法之堆排序实例详解
Dec 08 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
python 魔法函数实例及解析
Sep 25 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
pytorch 常用线性函数详解
Jan 15 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
简单的过滤字符串中的HTML标记
2006/12/25 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
js 操作符实例代码
2009/10/24 Javascript
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
Python多线程原理与用法详解
2018/08/20 Python
python创造虚拟环境方法总结
2019/03/04 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
收银员岗位职责
2015/02/03 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
会议主持人开场白台词
2015/05/28 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers