目的:将使用pyinstaller生成的exe还原成.py文件

1、从生成的exe中提取出.pyc文件

这里的方法有很多。。。可以使用pyinstxtractor。。也可以使用官方的archive_viewer.py(文末有下载)

我这里使用的是官方的archive_viewer.py。。

https://github.com/pyinstaller/pyinstaller/blob/develop/PyInstaller/utils/cliutils/archive_viewer.py

这里举的例子是某个师兄发出来的抢课的程序(python写的)。。。界面是这样的

(1)在程序同目录下打开cmd。。执行python archive_viewer.py qiangke.exe(这里是程序的名字)

这里有四个可以用的命令,分别是:

U: go Up one level
O <name>: open embedded archive name
X <name>: extract name
Q: quit

这里需要注意的一点是主要关注最后一行和出现程序名字的那一行。。。然后输入命令

x (程序名字) 回车之后输入需要生成的pyc文件名

至此。。第一步完成。。。

2、反编译pyc文件

由于每个pyc文件都有一个magic head,pyinstaller生成exe的时候会把pyc的magic部分去掉,在反编译的时候需要自己补齐。python2,需要补8个字节,后面的4个字节是时间戳,前面的4个字节是python编译的版本。。

当然这里有个小技巧

前4个字节可以通过struct文件获取

所以前面的是\x03\xf3\x0d\x0a。。后面的时间戳也可以用00 00 00 00代替

接着使用010 editor或者winhex打开pyc文件。。添加八个字节并保存

3、还原py文件

(1)可以使用在线网站直接上传还原。。

https://tool.lu/pyc/

(2)使用uncompyle。。。

反编译:

uncompyle6   -o   .   pyc文件名

说明:

-o后面可以加上文件路径,代表反编译文件输出的位置,“.”表示输出到当前文件夹

反编译成功后会返回“# Successfully decompiled file”

可以使用uncompyle6 --help查看其他参数

没安装的先使用pip安装

pip install uncompyle6

然后同目录下打开控制台

uncompyle6 -o . qiangke.pyc

同目录下就会生成qiangke.py

工具:

https://pan.baidu.com/s/1IjavH7F0l-jDCcnYIIEWtA

python程序反编译相关推荐

  1. python实现微信小程序反编译

    对于小程序反编译想必大家都不陌生 并且也有许多大神给出了自己的方法 具体可以参考下这篇 可能是我本人技术的问题,很多方法我都没有成功 并且大部分都是在命令行进行,很不方便 所以就重新修改了一下,并进行 ...

  2. 最新‘微信小程序’反编译最新教程(如何找回微信小程序源码手把手教程)

    前言: 简单聊一下xxxxx.wxapkg 先来想想一个很简单的问题,小程序的源文件存放在哪? 当然是在微信的服务器上. 但是在微信服务器上,普通用户想要获取到,肯定是十分困难的,有没有别的办法呢? ...

  3. Python程序伪编译与打包

    众所周知,Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议.那么很自然会有人有这样的疑问:难道Python程序只能以源代 ...

  4. 微信小程序“反编译”实战(一):解包

    本实践教程将一步步告诉你如何"反编译"获得其它小程序的源代码,包括"解包"和"源码还原"两篇,主要参考了看雪论坛.V2EX.GitHub 等 ...

  5. 微信小程序反编译得到的是html,微信小程序“反编译”实战(一):解包

    本实践教程将一步步告诉你如何"反编译"获得其它小程序的源代码,包括"解包"和"源码还原"两篇,主要参考了看雪论坛.V2EX.GitHub 等 ...

  6. vue.js反编译_基于electron-vue开发的微信小程序反编译客户端

    开源一个小程序反编译客户端 咨询小程序反编译的同学比较多,虽然有开源库但是还是有同学不清楚如何去操作,所以索性做了一个客户端方便进行小程序的反编译 # 技术选型 网上已经有大佬实现了C#版的反编译工具 ...

  7. python代码需要背吗-python程序需要编译吗

    Python是编译型语言还是解释型语言?回答这个问题前,应该先弄清楚什么是编译型语言,什么是解释型语言. 所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次 ...

  8. 小程序助手多功能微信小程序反编译工具

    介绍: 小程序助手多功能微信小程序反编译工具,软件采用 VS 2017 编译,需安装.net 4.0 或以上版本方可运行,理论上 win7 .win10及以上系统 x86 x64 运行正常,条件有限未 ...

  9. 微信小程序反编译 PC端

    最近写爬虫需要小程序反编译,过程总结下..... 通过微信PC版,打开需要反编译的小程序,小程序将产生缓存文件(但他是加密的),通过"小程序解密包"工具将加密的缓存文件解密成为&q ...

最新文章

  1. 经典DP 嵌套矩形 (南洋理工ACM—16)
  2. 做人工智能必看的 45 篇论文,附下载地址 | 文末有彩蛋
  3. 能不能用一句话总结 HTTPS?
  4. uoj#348/洛谷P4221 [WC2018]州区划分(FWT)
  5. Loj#2460-「POI2010」桥Bridges【网络流,欧拉回路】
  6. 类似No module named 'bs4'等错误的解决方法
  7. 设计师交流社区|积累开拓眼界必备网站
  8. aptio2018设置u盘启动_华硕笔记本重装系统时,BIOS内无法设置u盘启动怎么办?
  9. 【web前端】a只显示visited属性问题解决方法
  10. 项目管理 : 如何做好建筑工程的施工成本管理
  11. CSS相对定位,固定定位,绝对定位
  12. 基于 mini2440 电阻式触摸屏(一):电阻式触摸屏工作原理
  13. 记录新人tp5微信扫码支付
  14. 如何展示实时音视频通话时正在说话用户的音浪
  15. HDR电视显示技术概况及标准发展前景汇总
  16. 【Gamma】Scrum Meeting 1 与助教谈话
  17. EasyExcel基本操作看这一篇文章就够了
  18. ie收藏夹在电脑什么位置
  19. 李开复给中国大学生的七封公开信(其三)
  20. 数据来源渠道及采集工具_鹰眼智客大数据可以采集哪些渠道客源?

热门文章

  1. 关于计算机老师的话,感谢大学老师的话语
  2. element日期插件datePick限制日期限制简单案例
  3. Labview远程连接MySQL详细教程
  4. 已提交内存过大_你还记得虚拟内存吗?可能就是你电脑故障的罪魁祸首!
  5. useradd命令-c -u -G -s -d -m多个参数组合例子
  6. 《二代妖精之今生有幸》粉丝是什么意思,就是很喜欢你的人
  7. 步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式)
  8. MySQL 根据指定某一天的时间查询数据
  9. android 滑动自动播放,Android仿新浪微博滑动播放视频
  10. 芙拉机器人_【诉说实情】芙拉迷你简约纯色锁扣单肩斜挎包女士怎么样?真实使用心得,不看后悔 | 智能扫地机器人评测...