代码棱镜 - 看透每一行源码
一款支持 .NET 和 Java 的双模式跨平台反编译工具,专为代码审计场景设计。
在代码审计工作中,我们经常需要分析各种语言编译后的二进制文件:
- .NET 项目 → 需要反编译
DLL/EXE文件 - Java 项目 → 需要反编译
JAR/APK/CLASS文件
CodePrism 将这两种需求统一在一个简洁的界面中,让你无需切换工具,高效完成审计任务。
| 特性 | 描述 |
|---|---|
| 🎯 双模式支持 | 标签页切换 .NET 和 Java 反编译 |
| 📁 批量扫描 | 递归扫描目录,自动发现可反编译文件 |
| 📂 智能输出 | 每个文件输出到独立目录,源码结构清晰 |
| 🚀 一键反编译 | 选择文件 → 设置输出 → 开始 |
| 🎨 优雅界面 | 现代化 UI,支持 macOS/Windows/Linux |
| 📊 实时进度 | 进度条 + 日志,反编译状态一目了然 |
| 🔄 自动安装依赖 | 首次启动自动检测并安装 ilspycmd/jadx |
| 扩展名 | 说明 |
|---|---|
.dll |
动态链接库 |
.exe |
可执行程序 |
| 扩展名 | 说明 |
|---|---|
.jar |
Java 归档 |
.war |
Web 应用归档 |
.apk |
Android 安装包 |
.dex |
Dalvik 可执行文件 |
.class |
Java 字节码 |
macOS
brew install dotnet@8Windows
- 下载安装程序:https://dotnet.microsoft.com/download/dotnet/8.0
- 运行
dotnet-sdk-8.0.xxx-win-x64.exe - 验证安装:
dotnet --version
Linux (Ubuntu/Debian)
# 添加 Microsoft 包仓库
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
# 安装 SDK
sudo apt update
sudo apt install -y dotnet-sdk-8.0
# 验证
dotnet --versionLinux (其他发行版)
# 使用官方脚本安装
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 8.0
# 添加到 PATH
echo 'export PATH="$HOME/.dotnet:$PATH"' >> ~/.bashrc
source ~/.bashrcdotnet tool install --global ilspycmdmacOS
brew install jadxWindows
- 下载:https://github.com/skylot/jadx/releases
- 下载
jadx-x.x.x.zip - 解压到
C:\Program Files\jadx - 添加到 PATH:
- 右键「此电脑」→ 属性 → 高级系统设置 → 环境变量
- 编辑 Path → 新建 → 输入
C:\Program Files\jadx\bin
- 验证:
jadx --version
Linux
# Ubuntu/Debian
sudo apt install jadx
# 或手动安装
cd /opt
sudo wget https://github.com/skylot/jadx/releases/download/v1.4.7/jadx-1.4.7.zip
sudo unzip jadx-1.4.7.zip
sudo ln -s /opt/jadx/bin/jadx /usr/local/bin/jadx
# 验证
jadx --version验证 jadx 安装
jadx --version# 克隆仓库
git clone https://github.com/Jszdk/CodePrism.git
cd CodePrism
# 运行
dotnet run --project CodePrism-
选择模式
- 点击顶部
.NET (ILSpy)或Java (jadx)标签
- 点击顶部
-
添加文件
📁 扫描目录- 递归扫描整个项目📄 添加文件- 手动选择单个/多个文件
-
设置输出(可选)
- 默认输出到桌面或上次选择的位置
- 点击
浏览...自定义输出目录
-
开始反编译
- 勾选需要处理的文件
- 点击
🚀 开始反编译
输出目录/
├── Assembly1/ # .NET 项目
│ ├── Program.cs
│ ├── Services/
│ │ └── AuthService.cs
│ └── ...
├── MyApp/ # Java/Android 项目
│ ├── MainActivity.java
│ ├── utils/
│ │ └── Crypto.java
│ └── ...
无需安装 .NET Runtime,直接运行:
# Windows x64
dotnet publish ILSpyGUI/ILSpyGUI.csproj \
-c Release -r win-x64 --self-contained \
-p:PublishSingleFile=true
# macOS ARM64 (Apple Silicon)
dotnet publish ILSpyGUI/ILSpyGUI.csproj \
-c Release -r osx-arm64 --self-contained \
-p:PublishSingleFile=true
# Linux x64
dotnet publish ILSpyGUI/ILSpyGUI.csproj \
-c Release -r linux-x64 --self-contained \
-p:PublishSingleFile=true输出文件在 ILSpyGUI/bin/Release/net8.0/<runtime>/publish/
确保已安装 ILSpy 命令行工具:
dotnet tool install --global ilspycmd
# 验证
ilspycmd --version# macOS
brew install jadx
# 验证
jadx --version- .NET: 通常可以,但混淆过的代码可能需要手动修复
- Java: jadx 会尽可能生成可编译的 Java 代码
在「系统设置 > 隐私与安全性」中允许应用运行。
欢迎提交 Issue 和 PR!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
MIT © 2024 CodePrism
| 项目 | 用途 |
|---|---|
| ICSharpCode/ILSpy | .NET 反编译 |
| skylot/jadx | Java/Android 反编译 |
| Avalonia UI | 跨平台 UI 框架 |
💡 小贴士: CodePrism 专为代码审计设计,如果你有复杂的反编译需求(如 .NET 混淆代码),可能需要配合其他专业工具使用。