sjkim1127/Fission

GitHub: sjkim1127/Fission

基于 Rust 的逆向工程与反编译工作区,致力于从二进制文件中实现项目级别的软件结构、行为和意图复原。

Stars: 1 | Forks: 0

# Fission ![Fission logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/24e2645924154901.png) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/6a3dd547c7154912.svg)](https://github.com/sjkim1127/Fission/actions/workflows/ci.yml) [![Rust](https://img.shields.io/badge/Rust-1.85%2B-orange.svg)](https://www.rust-lang.org/) [![License: AGPL-3.0-or-later](https://img.shields.io/badge/license-AGPL--3.0--or--later-blue.svg)](https://www.gnu.org/licenses/agpl-3.0.html) Rust 逆向工程与反编译工作区,专注于**静态分析**、**p-code 驱动的重构**以及**桌面分析工作流**,其长期目标是构建一个集静态、动态和网络分析于一体的统一平台。 本仓库仍是一个**早期阶段**且**不成熟的公开代码库**。方向是明确的,核心引擎进展迅速,但项目仍在大力开发中,部分仓库内容尚显粗糙,面向公众的文档仍在整理中。 Fission 正逐步形成简洁的架构: - **Ghidra 作为提升服务 (lift service)** - **Rust 作为反编译器的核心大脑** - **CLI 和 Tauri 作为基于同一核心的产品界面** 其长期方向超越了单一功能的伪代码。Fission 旨在实现**项目级别的软件复原**:从编译产物中恢复结构、行为和意图,同时向统一平台发展,结合静态、动态和网络分析,将传统上分散的逆向工程工具的优势吸收到一个工作流中。AI 旨在作为与工具深度耦合的工作流层置于该技术栈之上。 本仓库目前包含: - 位于 [`ghidra_decompiler`](./ghidra_decompiler) 和 [`crates/fission-ffi`](./crates/fission-ffi) 的原生 Ghidra 支持的反编译器桥接 - 位于 [`crates`](./crates) 的 Rust 分析/反编译技术栈 - 位于 [`crates/fission-pcode/src/nir`](./crates/fission-pcode/src/nir) 的 Rust 自有的预览版反编译核心 - 位于 [`crates/fission-cli`](./crates/fission-cli) 的可构建 CLI - 位于 [`crates/fission-tauri`](./crates/fission-tauri) 的 Tauri 桌面前端 当前引擎状态: - `legacy`:原生 Ghidra 反编译 + Rust 后处理,目前仍是稳定路径 - `mlil-preview`:Ghidra p-code -> Rust NIR/HIR -> 结构化 -> 打印器,即前瞻架构路径 预览版目前支持真实的 PE x64 工作、选定样本上的引导级 PE x86 覆盖、栈槽恢复、多块控制流重构、短路折叠 以及 Rust 自有的伪代码打印。它仍处于实验阶段,该仓库仍应被视为一个不断演进的基础代码库,而非成熟的终端用户产品。 许可证:AGPL-3.0-or-later。贡献需根据 [`CLA.md`](./CLA.md) 中的贡献者许可协议接受。 ## Fission 存在的原因 Fission 源于一个非常个人的逆向工程问题。多年前,我沉迷于一款名为 Everplanet 的 Nexon MMORPG。服务关闭后,我开始寻找恢复它的方法。那次探索让我在没有任何严肃编程背景之前就接触了逆向工程。 我屡战屡败。游戏有保护,引擎不熟悉,我尝试的每一种方法——从脱壳和静态分析到后来的 AI 辅助工作流——最终都碰壁了。Fission 诞生于那种挫败感:不是想构建另一个反编译器前端,而是渴望构建一个工具,帮助恢复程序的行为方式、它试图做什么,以及它的各个部分如何重新组合在一起。 这就是这里“项目复原”的含义。Fission 并不试图逐位重建确切的原始源代码。它试图恢复一个可用的等价物:原始软件的结构、行为、意图和工作流,即使最终重构的项目在文本上与最初编写的内容不完全相同。 ## 截图 主桌面工作区: ![Fission main screen](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5bf418444e154921.jpg) 反编译视图: ![Fission decompile view](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/2c1c991284154931.jpg) ## 当前可用功能 如果您今天正在评估 Fission,最准确的简短版本是: - 仓库是真实的、可构建的,且处于活跃开发中 - CLI 和分析 crates 是工作区中最成熟的部分 - Tauri 桌面应用是真实的,并已接入同一引擎技术栈 - `legacy` 仍是严肃用途的稳定默认路径 - `mlil-preview` 是前瞻架构路径,在已覆盖的函数上已具备实用价值 - PE x64 目前拥有最强的预览覆盖率 - PE x86 预览版已存在,但覆盖率仍然有限且依赖种子驱动 - 更广泛的动态分析、网络分析和 AI 工作流层属于长期方向的一部分,而非当前已完全实现的状态 ## 快速开始 首先构建原生反编译器,然后构建 CLI: ``` git clone https://github.com/sjkim1127/Fission.git cd Fission cd ghidra_decompiler cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build cd .. cargo build --release --bin fission_cli ``` 基本 CLI 用法: ``` # Binary 信息 ./target/release/fission_cli --info # 一次性反编译 ./target/release/fission_cli --decomp
# 交互式 REPL ./target/release/fission_cli ``` 有关详细的构建步骤,请参阅 [`docs/build/BUILD.md`](./docs/build/BUILD.md)。 有关 CLI 示例,请参阅 [`docs/cli/CLI_ONE_SHOT_MODE.md`](./docs/cli/CLI_ONE_SHOT_MODE.md)。 ## 引擎模式 | 引擎 | 当前角色 | 备注 | |---|---|---| | `legacy` | 稳定默认 | 原生 Ghidra 反编译配合 Rust 端清理和增强 | | `mlil-preview` | 前瞻架构路径 | Ghidra p-code 提升到 Rust 自有的 NIR/HIR,结构化、规范化和打印 | 实际上: - 当您想要目前最安全的路径时,请使用 `legacy` - 当评估未来 Rust 自有反编译器方向时,请使用 `mlil-preview` - 预期这两条路径在类型呈现、可读性和大函数覆盖面上会有所不同 ## 首先看哪里 如果您是第一次接触本仓库,请从这里开始: 1. [`docs/architecture/ARCHITECTURE.md`](./docs/architecture/ARCHITECTURE.md) 架构的权威来源。 2. [`docs/ROADMAP.md`](./docs/ROADMAP.md) 当前方向和优先领域。 3. [`docs/build/BUILD.md`](./docs/build/BUILD.md) 如何构建原生核心和 Rust 工作区。 4. [`docs/cli/CLI_ONE_SHOT_MODE.md`](./docs/cli/CLI_ONE_SHOT_MODE.md) 实用 CLI 用法。 5. [`docs/changelog/CHANGELOG.md`](./docs/changelog/CHANGELOG.md) 近期技术里程碑。 ## 社区 - Discord: [Fission community server](https://discord.gg/dgzqGwBpcE) - LinkedIn: [Sung Joo Kim](https://www.linkedin.com/in/sung-joo-kim-718a93303/) ## 项目愿景 Fission 并不想成为 Ghidra 的一个薄 UI 层,也不只是另一个反编译器前端。 长期目标是**项目级复原**:不是逐位重建确切的原始源代码,而是恢复对程序结构、功能及其试图实现的系统类型的可用理解。 这一长期方向也意味着将 Fission 视作不仅仅是一个反编译器。该项目正致力于打造一个集成式逆向工程平台,能够结合**静态分析**、**动态分析**和**面向网络的分析**,同时将通常分散割裂的工具中最强大的部分吸收到单一工作流中。 这意味着超越诸如“这个函数做什么?”之类的问题,转向: - 应用程序作为一个整体是如何组织的 - 它向用户暴露了哪些行为和工作流 - 二进制文件内部存在哪些领域概念、协议和状态机 - 运行时行为和网络行为如何回溯到该静态结构 - 如何将这些重构成一个有意义的项目 当前架构正趋向于: - Ghidra/原生 C++ 作为提升、CFG 和硬故障遏制后端 - Fission 自有的 Rust IR 作为高级控制流、数据抽象、类型呈现和伪代码清理的发生地 - CLI/Tauri 作为基于同一分析核心的产品界面 - AI 作为未来的工作流层,与反编译、分析产物和项目级上下文紧密集成,而非作为旁边的通用聊天机器人 实际上: - `legacy` 引擎仍是稳定的默认路径 - `mlil-preview` 引擎是前瞻架构路径 - [`crates/fission-pcode/src/nir`](./crates/fission-pcode/src/nir) 下的 `nir` 代码不是字符串后处理器;它是一个独立反编译器核心的开端 ## 当前快照 截至 2026 年 3 月 14 日,仓库有两条真实的反编译路径: ### 1. `legacy` 这是成熟路径: - 原生 Ghidra 反编译 - Fission 后处理和清理 - 目前最广的类型表面覆盖 - 当前的回归守卫和稳定默认 ### 2. `mlil-preview` 这是 Fission 自有的实验路径: - 原生 Ghidra p-code 提取 - Rust 端 NIR/HIR 重构 - Rust 端 CFG 结构化 - Rust 端规范化和惯用语识别 - Rust 端类型提示呈现 - Rust 端伪代码打印器 此路径现在支持: - PE x64 直接预览 - 选定种子函数上的引导级 PE x86 直接预览 - 栈槽恢复 - 直线下 lowering - 多块 `if`、`if/else`、`while` 和 `do-while` - 规范 `&&` / `||` 的短路折叠 - 类型转换规范化 - `PIECE` / `SUBPIECE` 重组 - 槽/表呈现 - 槽族恢复基础工作 - 仅限预览的伪内部函数,如 `WRITE_BITS`、`FLUSH_BITS` 和 `EMIT_CODE` 它仍处于实验阶段。重要的区别在于,它现在是在 CLI 和桌面 UI 中暴露的真实产品路径,而不是孤立的演示路径。 ## 已验证的近期里程碑 仓库已通过多个近期的内部里程碑。详细的历史记录位于 [`docs/changelog/CHANGELOG.md`](./docs/changelog/CHANGELOG.md)。简短版本如下: - v14 恢复了 legacy 路径的基准稳定性,并消除了该轮中最后已知的基准 `type` 失败 - v15 扩大了预览版采用率,并使覆盖集上的预览回退/goto/临时表面指标保持为零 - v16 改进了预览版类型呈现,并使 [`samples/windows/x64/putty.exe`](./samples/windows/x64/putty.exe) `0x140006260` 预览输出直接呈现: - `LPRECT param_2` - `RECT local_3c` - `*param_2 = local_3c;` - v24 再次恢复了代表性 x64 目标上的直接预览,并在至少一个 x86 种子上引导了直接预览 - v25 将 `nir` 实现重构为真正的模块树以提高可维护性 当前的重要细节: - 预览覆盖率现在已高到足以成为有意义的工程目标 - 预览输出质量不再仅受控制流结构化阻碍 - 下一个主要前沿是数据抽象和大函数体可读性 ## 当前实际状态 如果您今天试图使用 Fission,最准确的状态是: - CLI 和分析 crates 是仓库中最成熟的部分 - Tauri 前端是真实的、可构建的,并连接到同一引擎技术栈 - `legacy` 仍是严肃用途的稳定默认 - `mlil-preview` 是正在积极投入的架构路径 - `nir` 已经足够大,应被视为一个反编译器子系统,而非便捷辅助工具 当前 `mlil-preview` 优势: - 许多真实函数上的结构化多块输出 - 积极移除表面临时变量 - 覆盖函数上 goto 使用的减少 - 对打印器输出控制的改进,因为 Rust 路径拥有最终渲染 当前 `mlil-preview` 弱点: - 更广泛的现实世界类型呈现仍落后于 `legacy` - 大函数直接预览覆盖率尚未完成 - 内存槽、数组/表访问和状态机风格代码的数据抽象仍在进行中 - 输出可能在机械上正确,但在大函数上视觉上比预期更低级 ## 工作区布局 工作区成员在 [`Cargo.toml`](./Cargo.toml) 中声明。重要的 crates 如下: - [`crates/fission-core`](./crates/fission-core) - 共享核心类型和实用程序 - [`crates/fission-loader`](./crates/fission-loader) - PE/ELF/Mach-O 加载 - [`crates/fission-disasm`](./crates/fission-disasm) - 反汇编支持 - [`crates/fission-pcode`](./crates/fission-pcode) - p-code 模型、转换、NIR/HIR 预览核心 - [`crates/fission-signatures`](./crates/fission-signatures) - WinAPI/类型/签名数据 - [`crates/fission-static`](./crates/fission-static) - 静态分析和反编译编排 - [`crates/fission-dynamic`](./crates/fission-dynamic) - 调试器/运行时/插件基础设施 - [`crates/fission-analysis`](./crates/fission-analysis) - 覆盖分散分析 crates 的兼容性外观 - [`crates/fission-ffi`](./crates/fission-ffi) - 进入原生反编译器的 Rust/C++ 桥接 - [`crates/fission-cli`](./crates/fission-cli) - CLI 入口点 - [`crates/fission-tauri/src-tauri`](./crates/fission-tauri/src-tauri) - Tauri 后端 重要的顶层目录: - [`ghidra_decompiler`](./ghidra_decompiler) - 原生反编译器源码和树 - [`crates/fission-automation`](./crates/fission-automation) - 规范 Fission NIR 质量运行器和报告生成器 - [`docs`](./docs) - 架构、构建、基准、变更日志和分析笔记 - [`vendor`](./vendor) - 参考代码库和用于学习及比较的第三方树 实际的所有权指南: - 新的静态/反编译工作属于 [`crates/fission-static`](./crates/fission-static) - 新的预览版 IR/lowering/规范化/打印器工作属于 [`crates/fission-pcode/src/nir`](./crates/fission-pcode/src/nir) - 新的运行时/调试/插件工作属于 [`crates/fission-dynamic`](./crates/fission-dynamic) - `fission-analysis` 应被视为兼容层,而非新功能的默认归宿 ## `nir` 模块树 预览版反编译器核心现在拥有真实的目录布局: - [`crates/fission-pcode/src/nir/mod.rs`](./crates/fission-pcode/src/nir/mod.rs) - 公共入口点和模块连接 - [`crates/fission-pcode/src/nir/builder`](./crates/fission-pcode/src/nir/builder) - 从 p-code 降级到 HIR/NIR 构建块 - [`crates/fission-pcode/src/nir/normalize`](./crates/fission-pcode/src/nir/normalize) - 算术规范化、清理、槽/表、比特流辅助工具 - [`crates/fission-pcode/src/nir/structuring`](./crates/fission-pcode/src/nir/structuring) - 控制流重构 - [`crates/fission-pcode/src/nir/cfg.rs`](./crates/fission-pcode/src/nir/cfg.rs) - CFG 辅助工具和条件操作 - [`crates/fission-pcode/src/nir/piece.rs`](./crates/fission-pcode/src/nir/piece.rs) - piece/subpiece 重构支持 - [`crates/fission-pcode/src/nir/printer.rs`](./crates/fission-pcode/src/nir/printer.rs) - 预览版伪代码打印器 - [`crates/fission-pcode/src/nir/types.rs`](./crates/fission-pcode/src/nir/types.rs) - IR 类型和错误 - [`crates/fission-pcode/src/nir/tests`](./crates/fission-pcode/src/nir/tests) - 按功能区域划分的测试套件 这很重要,因为 Fission 不再只是在原生输出周围附加小型辅助工具。代码组织现在反映了实际的子系统边界: - lowering - normalization - structuring - printing - testing ## 反编译架构 宏观上看,反编译技术栈如下所示: 1. 加载二进制文件 2. 初始化原生后端和分析上下文 3. 选择引擎 4. 反编译或提升 5. 应用特定引擎的高级重构 6. 渲染伪代码 ### `legacy` 路径 `legacy` 路径大致如下: 1. C++ 中的原生 Ghidra 反编译 2. [`crates/fission-static/src/analysis/decomp`](./crates/fission-static/src/analysis/decomp) 中的 Rust 编排 3. 用于类型提升、表达式清理、goto 清理等的后处理遍 4. 最终的 legacy C 风格输出 此路径在广泛的类型恢复和默认稳定性方面仍然是最强的。 ### `mlil-preview` 路径 预览路径大致如下: 1. 原生 p-code 提取 2. 通过 [`crates/fission-pcode/src/nir/builder`](./crates/fission-pcode/src/nir/builder) 构建 HIR 3. 通过 [`crates/fission-pcode/src/nir/normalize`](./crates/fission-pcode/src/nir/normalize) 规范化 4. 通过 [`crates/fission-pcode/src/nir/structuring`](./crates/fission-pcode/src/nir/structuring) 结构化 5. 应用预览类型提示 6. 通过 Rust 打印器渲染 重要的设计规则: - 预览版不是一个 legacy 字符串重写层 - 预览版不会 wholesale 地复用 legacy 后处理 - 预览版拥有自己的 IR、规范化和打印器行为 ## 构建先决条件 最低实际要求: - Rust 1.85+ - CMake 3.16+ - 可用的 C++17 工具链 - 用于 Tauri 前端的 Node.js/npm 平台注意事项: - Windows: - `zlib` 预期通过 `vcpkg` 获取 - macOS: - Tauri 应用需要完整的 Xcode,而不仅仅是 Command Line Tools - Linux: - GUI 构建需要常规的 GTK/WebKit/Tauri 依赖项 有关更多详细信息,请参阅 [`docs/build/BUILD.md`](./docs/build/BUILD.md)。 ## 构建 ### 原生后端 + CLI ``` git clone https://github.com/sjkim1127/Fission.git cd Fission cd ghidra_decompiler cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build cd .. cargo build --release --bin fission_cli --features native_decomp ``` ### Tauri 桌面应用 ``` cd crates/fission-tauri npm install npm run tauri dev ``` 不启动桌面应用的快速验证: ``` cargo check -p fission-tauri cd crates/fission-tauri && npm run build ``` ## CLI 快速入门 一次性 CLI 位于 [`crates/fission-cli`](./crates/fission-cli)。 常用命令: ``` # Binary 元数据 ./target/release/fission_cli -i # 函数列表 ./target/release/fission_cli -l # 字符串 ./target/release/fission_cli --strings 8 # 反编译单个函数 ./target/release/fission_cli --decomp 0x140001160 # 反汇编单个地址或整个函数 ./target/release/fission_cli --disasm 0x140001160 ./target/release/fission_cli --disasm-function 0x140001160 # 批量反编译 ./target/release/fission_cli --decomp-all --decomp-limit 20 --json ``` 有用的反编译标志: - `--profile balanced|quality|speed` - `--engine legacy|mlil-preview|auto` - `--compiler-id auto|windows|gcc|clang|default` - `--timeout-ms ` - `--ghidra-compat` - `--benchmark` 示例: ``` # 稳定路径 ./target/release/fission_cli --decomp 0x140001160 --engine legacy # 强制预览 ./target/release/fission_cli --decomp 0x140001160 --engine mlil-preview # 首先尝试预览,然后回退 ./target/release/fission_cli --decomp 0x140001160 --engine auto ``` ## 桌面 GUI 当前的桌面 UI 是位于 [`crates/fission-tauri`](./crates/fission-tauri) 的 Tauri 项目。 目前已有功能: - 函数列表和过滤 - 汇编和反编译视图 - 字符串/导入/导出 - 注释/书签/函数重命名管道 - 反编译器选项对话框 - UI 中的引擎选择器 - 反编译视图中的已用引擎和回退标记 重要策略: - `legacy` 是稳定的默认 - `mlil-preview` 是实验性的 Fission 自有路径 - `auto` 存在,用于先尝试预览版并安全回退 [`docs/gui/GUI_GUIDE.md`](./docs/gui/GUI_GUIDE.md) 中的旧 GUI 指南记录了较早的基于 egui 的 UI,并非当前 Tauri 前端的权威指南。 ## 基准和比较工作流 Fission 使用两种基准风格: ### 1. 规范的通道式质量运行 驱动程序: - [`crates/fission-automation`](./crates/fission-automation) 目的: - 基于 sentinel 的 Fission NIR 质量跟踪 - 一次性完成清单/诊断/语料库细化 - 在 `artifacts/fission-automation/` 下生成本地 Markdown/JSON 报告 典型入口点: - `cargo run -p fission-automation -- nir-check --lane pdb` - `cargo run -p fission-automation -- nir-check --lane preview` - `cargo run -p fission-automation -- nir-check --lane regression` - `cargo run -p fission-automation -- nir-check --lane full` 这种区分很重要: - `pdb` 告诉您 PDB 检测和摄取是否确实正在呈现行 - `preview` 告诉您预览阶段的块签名是否正在减少 - `regression` 提供紧凑的混合样本稳定性通过 - `full` 在存在本地工件时将 sentinel 集与对齐/高优先级源结合 仓库基准文档: - [`docs/benchmark/grand_finale_summary.md`](./docs/benchmark/grand_finale_summary.md) - [`docs/benchmark/grand_finale_summary.json`](./docs/benchmark/grand_finale_summary.json) ## 开发期间使用的代表性二进制文件 项目经常针对混合的合成和真实世界二进制文件集验证更改。 ### 真实世界 x64 - [`samples/windows/x64/putty.exe`](./samples/windows/x64/putty.exe) - WinAPI 类型、GUI 风格代码、中/大函数 - [`samples/windows/x64/everything.exe`](./samples/windows/x64/everything.exe) - 大函数覆盖、比特流/状态机风格循环、表访问 - [`samples/windows/x64/notepad++.exe`](./samples/windows/x64/notepad++.exe) - 大型真实世界 GUI 应用程序,风格与 PuTTY 不同 - [`vendor/x64dbg-development/cmake/cmkr.exe`](./vendor/x64dbg-development/cmake/cmkr.exe) - CLI/中等函数回退和预览稳定性守卫 ### 真实世界 x86 - [`samples/windows/x86/7zr.exe`](./samples/windows/x86/7zr.exe) - x86 引导、拆分寄存器模式、32 位栈/指针假设 ### 合成二进制文件 位于 [`samples/windows/x64`](./samples/windows/x64) 下,包括: - `test_control_flow_*` - `test_arithmetic_idioms_*` - `test_structs_classes_*` - `test_string_memory_*` - `test_real_world_algorithms_*` - `test_advanced_patterns_*` 这些用于孤立地验证特定的重构和规范化行为。 ## 预览类型呈现策略 预览类型呈现有意保持保守。 当前策略: - 优先选择安全的别名呈现,而非猜测的字段名 - 在置信度高的地方使用已知签名和已知结构提示 - 不猜测成员名 - 参数优先选择指针别名,如 `LPRECT` - 当整个对象模式可靠时,局部变量优先选择聚合别名,如 `RECT` 代表性直接预览接受案例: - [`samples/windows/x64/putty.exe`](./samples/windows/x64/putty.exe) `0x140006260` - `LPRECT param_2` - `RECT local_3c` - `*param_2 = local_3c;` ## 当前工程优先级 当前的预览工作不再受基本启用功能的阻碍。实际路线图现在看起来如下: 1. 恢复更多大函数的直接预览 2. 改进数据抽象 3. 改进大函数体可读性 4. 将 x86 覆盖范围扩大到引导级之外 5. 在预览版成熟时保持 `legacy` 稳定 具体而言,最重要的活跃领域是: - 大函数覆盖恢复 - 内存槽和数组/表呈现 - 比特流/状态机惯用语识别 - 循环体压缩 - 更广泛的预览类型质量 ## 已知限制 目前最重要的限制是: - `legacy` 仍是唯一应被视为稳定默认的引擎 - `mlil-preview` 的大函数覆盖仍然不完整 - x86 预览版已存在,但属于引导级支持,与 x64 不对等 - 预览版体可读性在大型状态机/表驱动代码上仍落后于期望的最终状态 - 预览版类型呈现超出当前提示集的部分仍比 legacy 狭窄 另请注意: - 基准工件和本地样本二进制文件通常在开发期间使用,但无意作为规范仓库交付物提交 - 活跃开发期间引用的某些基准/数据路径可能仅限本地或在内部运行期间生成 ## 开发说明 仓库正朝着更清晰的所有权边界发展。 编辑前值得了解的近期结构变化: - `nir` 现已按子系统拆分,而非保留在单个巨大文件中 - 基准工作流现在使用 `fission-automation` 通道作为规范的本地运行器 - 当前开发通常按以下顺序进行: - 先进行合成测试 - 接着检查代表性真实世界函数 - 最后关闭基于通道的自动化 如果您要在预览路径中添加工作: - 优先选择 IR/HIR 转换而非字符串重写 - 优先选择保守的正确性而非激进的美化 - 使用合成测试进行精确的惯用语恢复 - 使用 `cargo run -p fission-automation -- nir-check --lane preview` 进行预览端质量检查 - 使用 `cargo run -p fission-automation -- nir-check --lane regression` 进行更广泛的回归关闭 ## 关键文档 - [`docs/README.md`](./docs/README.md) - 文档索引 - [`docs/build/BUILD.md`](./docs/build/BUILD.md) - 构建说明 - [`docs/architecture/ARCHITECTURE.md`](./docs/architecture/ARCHITECTURE.md) - 架构说明 - [`docs/changelog/CHANGELOG.md`](./docs/changelog/CHANGELOG.md) - 变更历史 - [`docs/analysis/PASS_SYSTEM.md`](./docs/analysis/PASS_SYSTEM.md) - legacy 后处理系统 - [`docs/analysis/POSTPROCESS_MODULES.md`](./docs/analysis/POSTPROCESS_MODULES.md) - 后处理模块说明 - [`docs/cli/CLI_ONE_SHOT_MODE.md`](./docs/cli/CLI_ONE_SHOT_MODE.md) - CLI 行为 - [`docs/ROADMAP.md`](./docs/ROADMAP.md) - 路线图 ## 状态 Fission 正处于活跃开发中。 总结当前状态最清晰的方式是: - `legacy` 稳定且有用 - `mlil-preview` 是真实的且能力日益增强 - `nir` 现在是一个有组织的子系统,而非实验性的代码块 - 项目方向明确:Fission 应随时间推移拥有更多高级反编译器技术栈
标签:Amass, AST重建, Bash脚本, Fission, Ghidra, MITM代理, P-Code, Rust, Tauri, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码重构, 反编译器, 可视化界面, 可配置连接, 恶意代码分析, 情报收集, 桌面应用, 漏洞研究, 程序分析, 网络安全, 网络流量审计, 软件恢复, 逆向工程, 配置文件, 隐私保护, 静态分析