
写过 Python 的朋友大概都遇到过这种事:辛辛苦苦写完脚本,用 PyInstaller 打包成 exe 发给别人用,图的是对方电脑没装 Python 也能跑。可时间一长,自己手头的源码不见了,或者想看看某个老程序到底怎么写的,面对那个几十上百 MB 的 exe,却一点办法都没有。
其实代码并没有真的消失,它只是被压成了字节码,藏在 exe 里面。今天就分享一款可视化工具,把原本要敲命令行的提取、反编译流程搬进了图形界面,点点鼠标就能完成"提取 → 反编译"全过程,把 PyInstaller 打包的 exe 还原成可读的 Python 源代码。
🎯 这个工具能干什么
一句话概括:把 exe 里的 Python 代码取出来,全程不用敲一行命令。
📦 把 PyInstaller 打包的 exe 提取出内部的 pyc 字节码文件
🔄 把 pyc 反编译回可读性不错的 py 源代码
🧩 把 pyc 反汇编成字节码文本,方便做更底层的分析
💡 小知识:pyc 本身就是编译后的字节码文件,用 python xxx.pyc 就能直接运行,和 py 在运行上没区别。只是用记事本打开看到的是乱码,所以才显得"神秘"。
🔍 先搞懂 PyInstaller 怎么打包的
想用好这个工具,得先明白 PyInstaller 到底把代码塞哪儿了。它的工作原理,简单说就是把一整套 Python 运行时加你的脚本加所有依赖,全部打包进一个可执行文件。运行时会先把内容解压到一个临时目录(常见命名是 _MEIPASS),再加载里面的字节码。所以体积大、代码可恢复,是这件事的一体两面。

📊 几个真实可查的数据
• PyInstaller 会把完整的 Python 解释器一起打进去,这部分基础开销大约 5 到 20MB
• 一个简单的 Hello World 打包后常常就有几十 MB;一旦引入 pandas、matplotlib 这类库,体积轻松突破 120MB
• 真正执行的 Python 源码并没有被删掉,只是以压缩字节码 pyc 的形式躺在 exe 里
换句话说,exe 体积那么大不是因为你的代码多,而是它把整个 Python 运行环境都搬了进去。代码就藏在那里面,想办法拆开就能拿出来。
📝 三步操作全流程
整个流程分成"提取 → 反编译 → 反汇编"三步,下面按顺序走一遍
📂 第一步:提取 PYC
🖱️ 点击"选择 EXE",挑中要处理的 exe 文件
📁 点击"提取 PYC",在弹出的对话框里选好保存目录
✅ 提取完成后,目录里会生成所有拆出来的 pyc 文件
🔄 第二步:反编译为 PY
🖱️ 点击"选择 PYC",选中想要还原的那个 pyc
💾 点击"反编译为 PY",在保存对话框里指定输出的 py 路径
📄 成功后,你就能拿到一份可读的 Python 源代码
🧩 第三步:反汇编为字节码
🖱️ 同样先"选择 PYC"
📝 点击"反编译为字节码",导出 txt 文本
🔢 输出内容是该 pyc 的详细字节码指令,适合做更底层的研究
📌 版本对照很关键:pyc 文件头前 4 字节的 magic number 标明了它是哪个 Python 版本编译出来的。反编译工具认版本,版本对不上就会直接失败,所以先看清目标用的是哪个版本的 Python。
🆚 反编译器怎么选(建议收藏)
不同 Python 版本要用不同的反编译器,下面这张表可以直接收藏,对照着选不会出错。
如果你的目标是 Python 3.9 及以上,首选 pycdc;3.7 到 3.8 之间,decompyle3 表现不错;3.8 以下的老程序,uncompyle6 依然是稳妥的选择。
⚠️ 这几个坑一定要提前知道
🚫 只认 PyInstaller:用 py2exe、Nuitka、Cython 编译出来的 exe 不在覆盖范围内,提取会失败或无效
📉 反编译不是百分百还原:pyc 转 py 的过程错误率偏高,复杂逻辑经常需要借助大模型或手工对照字节码来修
🆚 反编译工具挑版本:不同 Python 版本要用不同的反编译器,版本对不上直接失败
🔐 首跑要管理员:第一次运行建议右键"以管理员身份运行",避免写文件时因为权限不足而报错
⚡ 抢先安装
可视化还原 PyInstaller 打包的 exe
这款工具帮你把命令行流程搬进了图形界面
微信搜索公众号 「XiaoqiangClub」
发送 exetopy 👀 让我康康 →
解压密码:xiaoqiangclub
⚠️ 温馨提示:本文内容仅用于合法场景——找回自己丢失的源码、学习研究、安全审计。请严格遵守相关法律法规,不要将相关技术用于反编译他人受版权保护的作品。下载后建议先拿自己用 PyInstaller 打包的小程序练手,确认流程能跑通再考虑其他场景,由此产生的任何责任需自行承担。
📌 值得一读



