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

这篇具有很好参考价值的文章主要介绍了Python 反编译:pyinstxtractor工具和uncompyle6库的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

Python 反编译:pycdc工具的使用

pyinstxtractor,Python,python,开发语言

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



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

工具准备

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

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

pyinstxtractor.py 工具的下载地址:https://sourceforge.net/projects/pyinstallerextractor/
或https://download.csdn.net/download/qq_63585949/86509791

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

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

pip install uncompyle6

反编译步骤

首先,我们先将pyinstxtractor.py工具与我们要反编译的.exe文件放入同一个工作目录下:
pyinstxtractor,Python,python,开发语言

然后在当前目录打开终端,输入python pyinstxtractor.py 文件名.exe
pyinstxtractor,Python,python,开发语言

回车运行:
pyinstxtractor,Python,python,开发语言

可以发现工作目录下多了一个名为文件名.exe_extracted的文件夹:
pyinstxtractor,Python,python,开发语言

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

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

为它添加.pyc后缀并用Hex编辑器打开:
pyinstxtractor,Python,python,开发语言

这个.pyc文件是没有Magic Number的,我们需要根据Python版本自行补全:
pyinstxtractor,Python,python,开发语言
Magic Number补全相关的详细操作,请见:Python Uncompyle6 反编译工具使用 与 Magic Number 详解

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

Python版本要是uncompyle6库支持的版本哦:
pyinstxtractor,Python,python,开发语言

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

pyinstxtractor,Python,python,开发语言

Python 3.9 及以上版本请参见我另外一篇博客:
Python 反编译:pycdc工具的使用文章来源地址https://www.toymoban.com/news/detail-596784.html

到了这里,关于Python 反编译:pyinstxtractor工具和uncompyle6库的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python语言在线编译器,python 在线编程工具

    大家好,小编来为大家解答以下问题,python语言在线编译器,python 在线编程工具,今天让我们一起来看看吧! 1.python在线编译器的解决方案 方案一:vscode web版(vscode online) 大名鼎鼎的vscode 推出了web版,也就是说可以在网页上进行编程了。 github地址:https://github.com/microsoft/v

    2024年04月26日
    浏览(40)
  • [开源库的使用]libModbus编译及使用

    目录 前言 库介绍 libModbus下载及编译 下载 编译 1.进到libmodbus/src/win32目录中,实际路径看使用者具体情况 2.运行 configure.js,依次生成必要文件 3.使用vs2019打开 modbus-9.sln,确认升级 4.Win32下的Debug、Release可以直接编译 5.X64编译 5.1进配置管理器增加X64 5.2进入项目属性编辑器 5

    2024年04月10日
    浏览(34)
  • libcurl开源库的编译与使用全攻略

    libcurl 是一个广泛使用的、支持多种协议的、开源的客户端URL传输库,提供了许多用于数据传输的API,例如文件传输、FTP、HTTP、HTTPS、SMTP等。 libcurl 的主要特点包括 支持多种协议:libcurl 支持多种协议,如 HTTP、FTP、SMTP 等,方便开发者在不同的场景下使用。 易于使用:libc

    2024年02月01日
    浏览(41)
  • 关于不同版本VS编译获得的静态库、动态库的兼容性

    看了上一篇博客还是在6月13号,一直想着写一些东西,也准备了很多内容,没想到一直拖到了现在。今天终于掀开了我的笔记本盖子,按下了开机按钮,双击浏览器图标打开了博客页(浏览器图标都差点找不到了~~),赶紧写完一篇睡觉,明晚还要给我的小可爱做饭呢。。。

    2024年02月05日
    浏览(36)
  • 【Linux】Linux编译器 gcc 的使用 | 动静态库的初步认识

    👑作者主页:@安 度 因 🏠学习社区:StackFrame 📖专栏链接:Linux

    2024年01月15日
    浏览(36)
  • Android-音视频学习系列-(二)-交叉编译动态库、静态库的入门学习

    gcc -S test.i -o test.s//-S 的作用是编译结束生成汇编文件。 汇编阶段 汇编阶段把 .S 文件翻译成二进制机器指令文件 .o ,这个阶段接收.c ,.i ,.s 的文件都没有问题。 下面我们通过以下命令生成二进制机器指令文件 .o 文件: gcc -c test.s -o test.o 链接阶段 链接阶段,链接的是函数库。

    2024年04月09日
    浏览(100)
  • iMX6ULL 库移植 | Libgpiod 库的交叉编译及使用指南(linux)

    GPIO口的操作,是很常见的功能。传统的GPIO sysfs接口已被弃用。自Linux 4.8起,内核提供了全新的操作gpio的方式libgpiod(C library and tools for interacting with the linux GPIO character device),当然也更高效,推荐使用。 libgpiod - 用于与Linux GPIO字符设备进行交互的C库和工具(gpiod代表GPIO设备

    2024年02月10日
    浏览(36)
  • visual studio编译出的exe执行时找不到vcrunime140d.dll库的解决办法

    有visual studio环境是不会出现这个异常的(我换电脑试过了),没有这个环境的,把vs的dll复制进C:WindowsSysWOW64的路径,会报新的异常。如果继续复制解决新异常 最后出现了这个报错 这个dll我自己库里都没有(当然可能路径没有找对),所以不推荐硬来,对用户体验很不友好

    2024年02月13日
    浏览(45)
  • 带wiringPi库的交叉编译 ---宿主机x86Ubuntu,目标机ARMv8 aarch64(香橙派)

    带wiringPi库的交叉编译如何进行 先交叉编译wiringPi库,编译出的库适合香橙派,这时候交叉编译可执行程序的平台和链接库的格式也是正确的 ,然后通过-I和-L来指定链接的wiringPi库的头文件和库的位置,但是现在还没有学习过,后面学了补上 此时如果把wiringPi库拿到Ubuntu上进

    2024年02月15日
    浏览(43)
  • 【Linux系统编程】Linux下的编译器——gcc/g++的使用 及 动态库和静态库的认识

    这篇文章我们继续学习Linux中的开发工具,今天要学的是: Linux下的编译器——gcc/g++ 我们先来简单了解一下它们的概念: gcc (GNU Compiler Collection) 和 g++ 是 Linux 系统上最常用的编译器。它们是 GNU 组织开发的一套开源编译器工具集。 gcc: gcc 是 GNU 编译器集合中的 C 语言编译器。

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包