Python 反编译:pyinstxtractor工具和uncompyle6库的使用

简介: 上期我们介绍了库的使用方法,已经可以将.py文件编译成.exe文件运行了,这期博客,我们将教大家如何将一个编译出的.exe文件反编译出源文件。

uncompyle6 现仅适用于 Python 2.4 到 3.8 版本
Python 3.9 及以上版本请参见我另外一篇博客:

Python 反编译:pycdc工具的使用

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 反编译:pyinstxtractor工具和uncompyle6库的使用

上期我们介绍了Pyinstaller库的使用方法,已经可以将.py文件编译成.exe文件运行了,这期博客,我们将教大家如何将一个Pyinstaller编译出的.exe文件反编译出源文件。

1.工具准备

本期我们主要用到三个工具:

  • pyinstxtractor.py
  • 任意一个Hex编辑器
  • uncompyle库

pyinstxtractor.py 工具的下载地址:https://download.csdn.net/download/qq_63585949/86509791?spm=1001.2014.3001.5503

Hex编辑器 笔者这里是使用的 wxMEdit,下载地址:
https://wxmedit.github.io/downloads.html
https://download.csdn.net/download/qq_63585949/86509705?spm=1001.2014.3001.5503

uncompyle库为第三方库,可以使用pip命令安装:

pip install uncompyle6

2.反编译步骤

首先,我们先将pyinstxtractor.py工具与我们要反编译的.exe文件放入同一个工作目录下:
文件夹1

然后在当前目录打开终端,输入python pyinstxtractor.py 文件名.exe
控制台1

回车运行:
控制台2

可以发现工作目录下多了一个名为文件名.exe_extracted的文件夹:
文件夹2

进入该文件夹,里面有许许多多后缀为.dll.pyd的文件,还有一个名为PYZ-00.pyz_extracted的文件夹,这个文件夹里放的是程序引入的依赖库,如果你引入过自己其他的.py文件,就可以用类似的方法将依赖的.py文件反编译出来。

目录中有两个带.pyc后缀的文件,我们要找到那个与你的.exe文件同名的文件:
文件夹3
pyinstxtractor.py工具在2.0以前的版本,会生成两个不带后缀的文件,我们仍然是要找到那个与自己的.exe文件同名的文件,手动为它添加.pyc后缀)

为它添加.pyc后缀并用Hex编辑器打开:
编辑器1

这个.pyc文件是没有Magic Number的,我们需要根据Python版本自行补全:
编辑器2

然后回到目录下,打开控制台,输入命令uncompyle6 文件名.pyc > 文件名.py回车执行,就可以看到目录下生成了.py文件了:
文件夹4

Python版本要是uncompyle6库支持的版本哦:
文件1

uncompyle6 现仅适用于 Python 2.4 到 3.8 版本:

在这里插入图片描述

Python 3.9 及以上版本请参见我另外一篇博客:
Python 反编译:pycdc工具的使用

目录
相关文章
|
6月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1480 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
6月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
574 0
|
6月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
7月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
286 92
|
5月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
591 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
5月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
480 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
6月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
509 3
|
7月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
491 18
|
7月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1330 1
|
6月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
1094 0

推荐镜像

更多