pyinstaller还原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打包的文件了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
前言 pyinstaller能够在Windows.Linux等操作系统下将Python脚本打包成可直接运行程序.使Python脚本可以在没有安装Python的环境中直接运行,方便共享. 开发环境 python 2.7.12 + Windows7 注意事项 1.待转换的.py文件绝对路径最好不要包含中文字符.容易出现一些莫名其妙的问题. 2.python中需要有.py文件中用到的第三方库.否则在转换后的.exe文件中会出现不符合预期的结果. pyinstaller安装步骤 1.配置pip镜像源.
-
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
解决步骤: 1.先打开一个cmd 2.cd到你的exe文件目录 3.输入 .\***.exe 以上这篇解决pyinstaller打包发布后的exe文件打开控制台闪退的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
pyinstaller打包程序exe踩过的坑
基础环境 python 2.7.17 pyinstaller 3.5 安装pyinstaller pip install pyinstaller 坑,大坑,深坑 背景:用pygame写了个贪吃蛇游戏,要打包成exe 用到了字体文件 C:\Windows\Fonts\simsun.ttc (宋体) 打包过程中没有报错 打包过程中的警告可以忽略,这个警告: WARNING: Hidden import "pygame._view" not found! 运行exe的时候报NotImplem
-
Pyinstaller 打包exe教程及问题解决
安装 pip insatll Pyinstaller 参数 pyinstaller -Fw main.py 参数 概述 -F,-onefile 打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用 -D, –onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护 -K, –tk 在部署时包含 TCL/TK -a, –ascii 不包含编码.在支持Unicode的python版本上默认包含所有
-
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
一.安装Pyinstaller 环境:python3.6.window10 注意事项: python64位版本打包的exe,只能在64位操作系统使用 打包文件夹和文件的名称不能用中文 pygame打包是里面的字体要改成"arial"格式. pygame.font.SysFont("宋体", 32) 32) 换成 pygame.font.SysFont('arial',32) 1.直接安装 pip命令安装:pip install Pyinstaller 安装成功后会
-
python pyinstaller打包exe报错的解决方法
今天用python 使用pyinstaller打包exe出现错误 环境pyqt5 + python3.6 32位 在导入pyqt5包之前加上如下代码 import sys import os if hasattr(sys, 'frozen'): os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH'] from PyQt5.QtWidgets import QApplication, QMainWindow from py
-
pyinstaller打包单个exe后无法执行错误的解决方法
1.执行环境说明 python版本3.7 直接使用pip进行安装pywin32.pyinstaller pip install pywin32 pip install pyinstaller 2.使用了第三方库的情况 建议在打包之前务必找到第三方库的包,把包复制到到跟myfile.py同目录下,然后再使用以上2种方式打包,否则会打包失败或者即使打包成功,程序也会闪退.pyinstaller -p参数是添加的pyinstaller打包程序时的扫描路径,假设venv\Lib\site-package
-
详解pyinstaller selenium python3 chrome打包问题
今天打包selenium一个简单的请求,打完包本机运行exe没有问题,换台机器就闪退,非常蛋疼找了半天原因. 下面简述下,防止踩坑,如果闪退十有八九是浏览器版本跟浏览器插件对不上. 首先安装pyinstaller pip install pyinstaller 然后进入要打包的py文件目录 然后pyinstaller tomcat.py 这种打包方式有很多文件,不太美观 第二种打包方式:pyinstaller -F tomcat.py 下面就是重点,我之前忘记把浏览器插件复制到.exe文件目录所
-
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
一.安装Pyinstaller 环境:python3.6.window10 注意事项: python64位版本打包的exe,只能在64位操作系统使用 打包文件夹和文件的名称不能用中文 pygame打包是里面的字体要改成"arial"格式. pygame.font.SysFont("宋体", 32) 32) 换成 pygame.font.SysFont('arial',32) 1.直接安装 pip命令安装:pip install Pyinstaller 安装成功后会
-
pyinstaller还原python代码过程图解
这篇文章主要介绍了pyinstaller还原python代码过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pyinstaller 的作用就是将python打包成对应平台的可执行文件.一般这种可执行文件的体积都比较大. 我们可以先通过逆向软件查看一下具体信息 查看字符串信息 只要有诸如以上的字符串 就说明这个可执行文件有很大程度上是通过pyinstaller打包的 解密方法有两个 1. pyinstxtractor.py 方法很简单 直
-
linux环境下的python安装过程图解(含setuptools)
这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的shell终端,通过wget命令下载python源码包,如下图所示: 将python-2.7.3.tgz下载至/opt目录下. 二.python的解压 三.python的编译与安装 在对python进行编译之前,必须对它进行配置.在unix/linux平台上的安装过程中,配置和编译过程全部已经自动化
-
用PyInstaller把Python代码打包成单个独立的exe可执行文件
之前就想要把自己的BlogsToWordpress打开成exe了.一直没去弄. 又看到有人提到python打开成exe的问题. 所以打算现在就去试试. 注:此处之所有选用BlogsToWordpress,是因为此python脚本够复杂,依赖的模块够多. 如果这个都搞定了,那么其他单个的python文件,和小python项目的打包,就更不成问题了. 1.先去找找,目前主流有哪几种方法. 找到几个名字 cx_Freeze PyInstaller py2exe 2.关于py2exe和PyInstall
-
Python 异常处理Ⅳ过程图解
异常的参数 一个异常可以带上参数,可作为输出的异常信息参数. 你可以通过except语句来捕获异常的参数,如下所示: 变量接收的异常值通常包含在异常的语句中.在元组的表单中变量可以接收一个或者多个值. 元组通常包含错误字符串,错误数字,错误位置. 实例 以下为单个异常的实例: 以上程序执行结果如下: 触发异常 我们可以使用raise语句自己触发异常 raise语法格式如下: 语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数.
-
基于virtualenv创建python虚拟环境过程图解
为什么要创建python虚拟环境 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3.如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办? 这种情况下,每个应用可能需要各自拥有一套"独立"的Python运行环境.virtualenv就是用来为一个应用创
-
Pycharm修改python路径过程图解
今天安装Django的时候遇到了python版本冲突,找不到python路径,所以又重新安装了一个python3.6.5 安装完之后,突然发现自己的pycharm是之前Anaconda的3.5版本,那么就需要修改一下python版本了 首先点击左上角的File,再点击Default Settings,点击右侧Project Interpreter框框的下箭头,然后点击Show All 然后点击右侧绿色的+号,就能够添加新的地址,记住勾选就行. 以上就是本文的全部内容,希望对大家的学习有所帮助,也
-
jenkins配置python脚本定时任务过程图解
这篇文章主要介绍了jekins配置python脚本定时任务过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.首先安装jekins环境,访问网页https://jenkins.io/zh/download/,下载长期稳定版如下: 2.下载安装包后直接运行,进行选择安装路径,傻瓜式安装.安装完成后,点Finished,弹出jekins输入密匙网页,根据网页提示路径,找到 对应的jekins密匙输入后,选择推荐插件安装即可.(也可以不安装插
-
Python远程开发环境部署与调试过程图解
这篇文章主要介绍了Python远程开发环境部署与调试过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.下载相应开发工具 Pycharm :下载地址 二.部署开发机 一般在工作过程中,开发环境并不是本地环境,而是指在开发机:因为,有很多依赖本地部署非常麻烦,而开发机中则内置了很多相关的服务 三.代码自动化部署 由于我们在本地进行代码编辑.在开发机中进行代码的运行及调试,因此,需要一种很方便的方式进行代码的远程自动化部署Pycharm 基
-
Python搭建HTTP服务过程图解
这篇文章主要介绍了Python搭建HTTP服务过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们平时可能会需要HTTP服务,本机搭建一个服务器来完成有些过于繁琐,这时就可以用python帮我们搭建一个HTTP服务器,省时高效. python 2.x 输入命令:python -m SimpleHTTPServer 8000(8000为端口号,如果不指定则默认8000端口) python 3.x 输入命令:python -m http.s
-
Python安装whl文件过程图解
这篇文章主要介绍了Python安装whl文件过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在命令指示符下(cmd)的Python3安装命令为: pip3 install 文件名.whl 安装出错: matplotlib-2.0.0-cp34-cp34m-win_amd64.whl is not a supported wheel on this platform. 原来是万能仓库的包名除了问题,将包的名字改一下就好: matplotl
随机推荐
- 修改系统用户名的批处理代码
- Python编程入门的一些基本知识
- asp.net(c#)下各种进制间的轻松转换(2进制、8进制、10进制、16进制)
- 判断时间的正则表达式
- 在线统计代码 application
- C#使用ImitateLogin模拟登录百度
- MySQL优化之对RAND()的优化方法
- php实现子字符串位置相互对调互换的方法 原创
- Apache提示 the requested operation has failed无法启动的解决方法大全
- jquery.masonry瀑布流效果
- android动态壁纸调用的简单实例
- C++中引用的使用总结
- Python制作豆瓣图片的爬虫
- Android Activity 不能被截屏的解决方法
- JavaScript同源策略和跨域访问实例详解
- Linux编译优化必须掌握的几个姿势总结
- vue2 v-model/v-text 中使用过滤器的方法示例
- JavaScript中.min.js和.js文件的区别讲解
- vue把输入框的内容添加到页面的实例讲解
- Python爬虫之网页图片抓取的方法