我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

Python 反编译:pycdc工具的使用

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


Python 反编译


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

工具准备

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

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

pyinstxtractor.py 工具的下载地址:https://sourceforge.net/projects/pyinstallerextractor/
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

反编译步骤

首先,我们先将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
Magic Number补全相关的详细操作,请见:Python Uncompyle6 反编译工具使用 与 Magic Number 详解

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

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

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

在这里插入图片描述

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

来源地址:https://blog.csdn.net/qq_63585949/article/details/126706526

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

常用的delphi反编译工具有哪些

常用的Delphi反编译工具包括:IDA Pro:一款功能强大的反汇编和反编译工具,支持多种平台和编程语言,包括Delphi。DeDe:一款专门针对Delphi程序的反编译工具,可以将Delphi程序反编译为可读的源代码。PE Expl
2023-10-21

常用的android反编译工具有哪些

常用的Android反编译工具有以下几种:1. APKTool:一个用于反编译和重新打包Android APK文件的开源工具。2. Dex2jar:将Dex文件转换为Java可执行的JAR文件的工具。3. JD-GUI:一个Java反编译器
2023-09-28

好用的android反编译工具有哪些

以下是一些常用的Android反编译工具:1. jadx:一款开源的Java反编译工具,可以将apk文件转换为java源代码。2. Apktool:一款开源的反编译和重新打包工具,可以将apk文件解压成资源文件和smali代码。3. dex
2023-08-19

Java 反编译工具的对比以及使用方法

今天就跟大家聊聊有关Java 反编译工具的对比以及使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作
2023-06-15

Ubuntu中怎么安装和使用编译器和开发工具

在Ubuntu中安装和使用编译器和开发工具非常简单,通过apt包管理器可以轻松安装所需的工具。以下是一些常用的编译器和开发工具的安装方法:gcc编译器:sudo apt-get updatesudo apt-get install gcc
Ubuntu中怎么安装和使用编译器和开发工具
2024-03-05

Android Spider JDAX-GUI 反编译工具下载使用以及相关技术介绍

文章目录 前言一、JDAX下载二、基本使用2.1 解压zip2.2 Java环境2.3 进入Dos命令窗口启动Jdax-Gui2.4 正常使用 三、常见的反编译工具以及简单分析介绍1.Android Killer2.Dex2
2023-08-24

Python使用dis模块把Python反编译为字节码的用法详解

dis — Disassembler for Python bytecode,即把python代码反汇编为字节码指令. 使用超级简单:python -m dis xxx.pyPython 代码是先被编译为字节码后,再由Python虚拟机来执
2022-06-04

golang函数在面向对象编程中工具和库的使用

go 语言函数在面向对象编程中扮演着以下角色:作为工具函数,可用于验证输入、执行计算和处理错误。作为面向对象编程库,提供特定领域的预构建功能,例如数学、字符串和网络操作。Go 语言函数:面向对象编程中的工具和库在 Go 语言的面向对象编程
golang函数在面向对象编程中工具和库的使用
2024-05-03

C/C++程序链接与反汇编工具objdump的使用介绍

这篇文章主要介绍了C/C++程序链接与反汇编工具objdump的使用,程序构建过程的第二个阶段就是链接,链接过程输入的是目标文件的集合。每个目标文件可以被看作单个源代码文件的二进制存储版本
2023-02-03

使用golang进行Select Channels Go并发式编程的最佳工具和库

使用Golang进行并发式编程时,可以使用以下工具和库来处理Select Channels:1. Goroutines:Goroutines 是 Golang 中的轻量级线程,可通过 go 关键字创建。Goroutines 可以并发执行,通
2023-10-20

Python开发建议:合理选择和使用第三方库和工具

Python作为一种多功能、易用的编程语言,在开发过程中广泛使用第三方库和工具来提高效率和开发质量。然而,随着Python生态系统的不断扩大,选择和使用第三方库和工具也变得更加复杂和困难。因此,本文将探讨Python开发过程中合理选择和使用
Python开发建议:合理选择和使用第三方库和工具
2023-11-22

Python自动化工具tidevice的安装和使用

本篇内容介绍了“Python自动化工具tidevice的安装和使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1. 前言最近,阿里内部开
2023-06-15

Golang技术在机器学习中使用的库和工具

go语言中适用于机器学习的库和工具包括:tensorflow:流行的机器学习库,提供构建、训练和部署模型的工具。golearn:一系列分类、回归和聚类算法.gonum:科学计算库,提供矩阵操作和线性代数功能。Go 中用于机器学习的库和工具
Golang技术在机器学习中使用的库和工具
2024-05-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录