# Pyc怎么转Py?PyLingual 部署教程

0 阅读4分钟

Pyc怎么转Py?PyLingual 部署教程

古有 uncompyle6 破码,今有 PyLingual 当家。

PyLingual 是一款基于深度学习的 Python 字节码(.pyc)反编译工具

定位是解决传统反编译工具(如 uncompyle6)处理「损坏 / 加密 / 混淆字节码」时的失效问题,

同时兼顾普通字节码的快速反编译需求。

简单点说,把pyc转换成py,比uncompyle6更现代,(但也很慢,家用电脑10分钟起步)。

工具反编译能力(针对哪个版本的 .pyc)
uncompyle61.0 —— 3.8(再往后不支持)
PyLingual3.6 —— 3.13(专注于现代版本)

谁需要用?

普通开发者丢代码了,想还原。

安全研究员分析恶意代码。

部署教程

我平时用的是Anaconda来管理环境

想要和本教程完全一样操作,可以先去安装Anaconda,我往期有教程

一、用 Anaconda 准备基础环境

PyLingual 要求必须在 Python 3.12 下运行。

我们需要

  1. 打开 Anaconda Prompt (或终端)。
  2. 创建一个干净的 3.12 环境:

打开Anaconda,

image-20260320180334074

创建一个干净的 3.12 环境:

conda create -n pylingual python=3.12 -y

image-20260320180438164

激活该环境

conda activate pylingual

image-20260320180614390

二、安装官方指定的 Poetry 2.0+

项目明确要求 poetry>=2.0。在激活的环境中安装它:

pip install "poetry>=2.0"

image-20260320180726426

三、克隆代码与下载包

找放代码的地方,建一个新的文件夹,

image-20260320181356365

image-20260320181513836

进入文件夹:

image-20260320181624958

下载源代码,然后进入文件夹

git clone https://github.com/syssec-utd/pylingual
cd pylingual

image-20260320181801433

告诉 Poetry 不要自己再去创建虚拟环境,直接用当前的 Conda 环境

 poetry config virtualenvs.create false

执行安装

poetry lock
​
poetry install

image-20260320182212054

可能的问题

中间网络不好,下载pytorch出问题

换国内源下载

python - m pip install torch torchvision --index-url https://pypi.tuna.tsinghua.edu.cn/simple

image-20260320182651957

如果其它包安装也报错 ,就手动下载

pip install charset-normalizer==3.4.2 setuptools==80.9.0

最后执行

poetry install

成功安装

image-20260320183518387

四、配置多版本支持 (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

image-20260320184631045

复制执行

invoke-webrequest -useb https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1 | iex

image-20260320184721458

配置环境变量

image-20260320185037115

image-20260320185115233

在弹出的窗口里点击右下角的 “环境变量”

“用户变量” (上半部分) 中点击 “新建” :(27598换成你自己的名字)

  • 变量名PYENV
  • 变量值C:\Users\27598.pyenv\pyenv-win

在同一个“用户变量”列表里找到 Path,双击它,点击右边的 “新建” ,分别添加以下两行:

  • %PYENV%\bin
  • %PYENV%\shims

一直点“确定” ,把所有窗口都关掉。

重启你的 Anaconda Prompt

注意: 关闭你现在所有的命令行窗口(包括刚才那个蓝色 PowerShell 和你的 Anaconda Prompt),然后重新打开一个新的 Anaconda Prompt

在新的窗口里输入:

pyenv --version

image-20260320185535505

我的建议:先装“三巨头”

这三个版本覆盖了目前市面上 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

image-20260320190136883

查看 pyenv 已经安装的版本

pyenv versions

image-20260320190325346

五、基本使用流程

工作流

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"

image-20260320191050553

image-20260320192943887

常用参数详解(这几个最有用)

为了让你用得更顺手,这几个“开关”建议记一下:

参数作用什么时候用
-o指定输出目录必带。不然你不知道代码飞到哪去了。
-v指定 Python 版本自动检测失败时手动指定(如 -v 3.8)。
--trust-lnotab省 CPU 神器如果你觉得电脑太卡,加上这个。它会跳过 AI 模型推理,直接用字节码里的行号。
-q安静模式如果你不想看满屏的进度条和日志。

抱拳了

如果安装过程中遇到问题,可以在评论区留言。

如果需要远程操作,也可以主页找我。

如果这篇文章对你有帮助,记得点个赞。想看更多Python技术教程,也可以关注我。

我是悟空爬虫-马彪,我们下期再见。