Pyc怎么转Py?PyLingual 部署教程
古有 uncompyle6 破码,今有 PyLingual 当家。
PyLingual 是一款基于深度学习的 Python 字节码(.pyc)反编译工具,
定位是解决传统反编译工具(如 uncompyle6)处理「损坏 / 加密 / 混淆字节码」时的失效问题,
同时兼顾普通字节码的快速反编译需求。
简单点说,把pyc转换成py,比uncompyle6更现代,(但也很慢,家用电脑10分钟起步)。
| 工具 | 反编译能力(针对哪个版本的 .pyc) |
|---|---|
| uncompyle6 | 1.0 —— 3.8(再往后不支持) |
| PyLingual | 3.6 —— 3.13(专注于现代版本) |
谁需要用?
普通开发者丢代码了,想还原。
安全研究员分析恶意代码。
部署教程
我平时用的是Anaconda来管理环境
想要和本教程完全一样操作,可以先去安装Anaconda,我往期有教程
一、用 Anaconda 准备基础环境
PyLingual 要求必须在 Python 3.12 下运行。
我们需要
- 打开 Anaconda Prompt (或终端)。
- 创建一个干净的 3.12 环境:
打开Anaconda,
创建一个干净的 3.12 环境:
conda create -n pylingual python=3.12 -y
激活该环境
conda activate pylingual
二、安装官方指定的 Poetry 2.0+
项目明确要求 poetry>=2.0。在激活的环境中安装它:
pip install "poetry>=2.0"
三、克隆代码与下载包
找放代码的地方,建一个新的文件夹,
进入文件夹:
下载源代码,然后进入文件夹
git clone https://github.com/syssec-utd/pylingual
cd pylingual
告诉 Poetry 不要自己再去创建虚拟环境,直接用当前的 Conda 环境
poetry config virtualenvs.create false
执行安装
poetry lock
poetry install
可能的问题
中间网络不好,下载pytorch出问题
换国内源下载
python - m pip install torch torchvision --index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果其它包安装也报错 ,就手动下载
pip install charset-normalizer==3.4.2 setuptools==80.9.0
最后执行
poetry install
成功安装
四、配置多版本支持 (pyenv)
这是 PyLingual 能跨版本反编译的“灵魂”。
作者在 README 中提到: “Some parts require the ability to compile bytecode in a different Python version.”
- Windows: 必须安装
pyenv-win。 - Linux/Mac: 必须安装
pyenv。 - 安装后必做:你需要安装几个目标版本,否则遇到对应的
.pyc时程序会报错。
Windows下载pyenv
管理员打开PowerShell
复制执行
invoke-webrequest -useb https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1 | iex
配置环境变量
在弹出的窗口里点击右下角的 “环境变量” 。
在 “用户变量” (上半部分) 中点击 “新建” :(27598换成你自己的名字)
- 变量名:
PYENV - 变量值:
C:\Users\27598.pyenv\pyenv-win
在同一个“用户变量”列表里找到 Path,双击它,点击右边的 “新建” ,分别添加以下两行:
%PYENV%\bin%PYENV%\shims
一直点“确定” ,把所有窗口都关掉。
重启你的 Anaconda Prompt
注意: 关闭你现在所有的命令行窗口(包括刚才那个蓝色 PowerShell 和你的 Anaconda Prompt),然后重新打开一个新的 Anaconda Prompt。
在新的窗口里输入:
pyenv --version
我的建议:先装“三巨头”
这三个版本覆盖了目前市面上 90% 以上的 Python 字节码:
-
3.8.10:很多老项目和稳定版工具仍在使用。
-
3.10.11:引入了 Match Statement(模式匹配),是很多现代库的分水岭。
-
3.11.9:性能大幅提升后的普及版本。
以后需要别的按需求再安装
pyenv install 3.8.10
pyenv install 3.10.11
pyenv install 3.11.9
pyenv rehash
查看 pyenv 已经安装的版本
pyenv versions
五、基本使用流程
工作流
1.打开 Anaconda Prompt
2.激活环境
conda activate pylingual
防止环境干扰(可选)
set PYTHONNOUSERSITE=1
3.进入想反编译的pyc目录
i:
cd i:\Users\27598\Desktop\xxx
4.执行反编译
基础用法:pylingual -o [输出文件夹] [目标文件.pyc]
这个是完整深度学习版,很慢,适合加密过的
pylingual -o ./restored_code ck.pyc
第一次先用这个,不行再用上面的
pylingual --trust-lnotab -o ./restored_code "ck.pyc"
常用参数详解(这几个最有用)
为了让你用得更顺手,这几个“开关”建议记一下:
| 参数 | 作用 | 什么时候用 |
|---|---|---|
-o | 指定输出目录 | 必带。不然你不知道代码飞到哪去了。 |
-v | 指定 Python 版本 | 自动检测失败时手动指定(如 -v 3.8)。 |
--trust-lnotab | 省 CPU 神器 | 如果你觉得电脑太卡,加上这个。它会跳过 AI 模型推理,直接用字节码里的行号。 |
-q | 安静模式 | 如果你不想看满屏的进度条和日志。 |
如果安装过程中遇到问题,可以在评论区留言。
如果需要远程操作,也可以主页找我。
如果这篇文章对你有帮助,记得点个赞。想看更多Python技术教程,也可以关注我。
我是悟空爬虫-马彪,我们下期再见。