Skip to content

Jszdk/CodePrism

Repository files navigation

💎 CodePrism

代码棱镜 - 看透每一行源码

一款支持 .NETJava 的双模式跨平台反编译工具,专为代码审计场景设计。

License Platform .NET


🎯 为什么选择 CodePrism

在代码审计工作中,我们经常需要分析各种语言编译后的二进制文件:

  • .NET 项目 → 需要反编译 DLL/EXE 文件
  • Java 项目 → 需要反编译 JAR/APK/CLASS 文件

CodePrism 将这两种需求统一在一个简洁的界面中,让你无需切换工具,高效完成审计任务。


✨ 功能特性

特性 描述
🎯 双模式支持 标签页切换 .NET 和 Java 反编译
📁 批量扫描 递归扫描目录,自动发现可反编译文件
📂 智能输出 每个文件输出到独立目录,源码结构清晰
🚀 一键反编译 选择文件 → 设置输出 → 开始
🎨 优雅界面 现代化 UI,支持 macOS/Windows/Linux
📊 实时进度 进度条 + 日志,反编译状态一目了然
🔄 自动安装依赖 首次启动自动检测并安装 ilspycmd/jadx

📦 支持的文件格式

.NET 模式

扩展名 说明
.dll 动态链接库
.exe 可执行程序

Java 模式

扩展名 说明
.jar Java 归档
.war Web 应用归档
.apk Android 安装包
.dex Dalvik 可执行文件
.class Java 字节码

🛠️ 安装

1. 安装 .NET 8 SDK

macOS

brew install dotnet@8

Windows

  1. 下载安装程序:https://dotnet.microsoft.com/download/dotnet/8.0
  2. 运行 dotnet-sdk-8.0.xxx-win-x64.exe
  3. 验证安装: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 --version

Linux (其他发行版)

# 使用官方脚本安装
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 ~/.bashrc

2. 安装反编译工具

ILSpy (.NET)

dotnet tool install --global ilspycmd

jadx (Java)

macOS

brew install jadx

Windows

  1. 下载:https://github.com/skylot/jadx/releases
  2. 下载 jadx-x.x.x.zip
  3. 解压到 C:\Program Files\jadx
  4. 添加到 PATH:
    • 右键「此电脑」→ 属性 → 高级系统设置 → 环境变量
    • 编辑 Path → 新建 → 输入 C:\Program Files\jadx\bin
  5. 验证: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

3. 运行 CodePrism

# 克隆仓库
git clone https://github.com/Jszdk/CodePrism.git
cd CodePrism

# 运行
dotnet run --project CodePrism

📖 使用指南

基本流程

  1. 选择模式

    • 点击顶部 .NET (ILSpy)Java (jadx) 标签
  2. 添加文件

    • 📁 扫描目录 - 递归扫描整个项目
    • 📄 添加文件 - 手动选择单个/多个文件
  3. 设置输出(可选)

    • 默认输出到桌面或上次选择的位置
    • 点击 浏览... 自定义输出目录
  4. 开始反编译

    • 勾选需要处理的文件
    • 点击 🚀 开始反编译

输出结构

输出目录/
├── 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/


🐛 常见问题

Q: 提示 "ilspycmd 未就绪"

确保已安装 ILSpy 命令行工具:

dotnet tool install --global ilspycmd
# 验证
ilspycmd --version

Q: 提示 "jadx 未安装"

# macOS
brew install jadx

# 验证
jadx --version

Q: 反编译后的代码可以编译吗?

  • .NET: 通常可以,但混淆过的代码可能需要手动修复
  • Java: jadx 会尽可能生成可编译的 Java 代码

Q: macOS 提示 "无法打开应用"

在「系统设置 > 隐私与安全性」中允许应用运行。


🤝 贡献

欢迎提交 Issue 和 PR!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

📄 许可证

MIT © 2024 CodePrism


🙏 致谢

项目 用途
ICSharpCode/ILSpy .NET 反编译
skylot/jadx Java/Android 反编译
Avalonia UI 跨平台 UI 框架

💡 小贴士: CodePrism 专为代码审计设计,如果你有复杂的反编译需求(如 .NET 混淆代码),可能需要配合其他专业工具使用。

About

代码棱镜

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages