前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 反编译:pyinstxtractor工具和uncompyle6库的使用

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

作者头像
小嗷犬
发布2022-11-15 15:33:07
3.5K1
发布2022-11-15 15:33:07
举报
文章被收录于专栏:小嗷犬的CSDN文章

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

Python 3.9 及以上版本请参见我另外一篇博客:

Python 反编译:pycdc工具的使用

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


Python 反编译


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

1.工具准备

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

  • 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.htmlhttps://download.csdn.net/download/qq_63585949/86509705?spm=1001.2014.3001.5503 uncompyle库为第三方库,可以使用pip命令安装:

代码语言:javascript
复制
pip install uncompyle6

2.反编译步骤

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

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

回车运行:

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

进入该文件夹,里面有许许多多后缀为.dll.pyd的文件,还有一个名为PYZ-00.pyz_extracted的文件夹,这个文件夹里放的是程序引入的依赖库,如果你引入过自己其他的.py文件,就可以用类似的方法将依赖的.py文件反编译出来。 目录中有两个带.pyc后缀的文件,我们要找到那个与你的.exe文件同名的文件:

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

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

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

Magic Number补全相关的详细操作,请见:Python Uncompyle6 反编译工具使用 与 Magic Number 详解

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python 反编译
  • 1.工具准备
  • 2.反编译步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档