9ght-code/Oblivion

GitHub: 9ght-code/Oblivion

Oblivion 是一个基于 .NET 8 和原生 C 引擎的 Windows 桌面 PE 文件静态分析器,提供从结构解析、反汇编到安全启发式检测和报告生成的完整逆向分析能力。

Stars: 0 | Forks: 0

# Oblivion 一个用于静态分析 PE 文件(`.exe`、`.dll`)的 Windows 桌面应用程序。将二进制文件组织到工作区中,导入它们,通过原生的 C 引擎解析其结构,并通过现代化的 Fluent UI 探索结果。 ![.NET](https://img.shields.io/badge/.NET-8.0-512BD4?logo=dotnet&logoColor=white) ![C](https://img.shields.io/badge/Core-C-00599C?logo=c&logoColor=white) ![WPF](https://img.shields.io/badge/UI-WPF%20%2B%20WPF--UI-blue) ![Platform](https://img.shields.io/badge/platform-Windows-0078D6?logo=windows&logoColor=white) ![License](https://img.shields.io/badge/license-MIT-green) ## 功能 - **工作区** — 将分析过的文件组织到文件夹中,支持导入、重命名、移动和删除。 - **完整性追踪** — 基于哈希的验证,带有 `Verified`(已验证)/ `Modified`(已修改)/ `Deleted`(已删除)徽章,以及每个文件的修改备注。 - **原生 PE 解析器** — 低级别 C 引擎(`Oblivion.Core`)处理 MZ/PE 验证、节解析和导入目录遍历。 - **丰富的分析界面** — 包含以下内容的选项卡式分析窗口: - **Overview**(概览) — 架构、文件大小、入口点和关键头部字段 - **Sections**(节) — 节表,带有 R/W/X 权限徽章和每个节的熵值 - **Imports**(导入) — 导入库和已解析的函数,根据 WinAPI 函数数据库进行注释 - **Strings**(字符串) — 提取的 ASCII/Unicode 字符串 - **Disassembler**(反汇编器) — 由 [Iced](https://github.com/icedland/iced) 驱动的 x86/x64 反汇编,支持指令分类 - **Entry Point**(入口点) — 入口点附近的反汇编 - **Hex Editor**(十六进制编辑器) — 原始字节检查和编辑 - **Security**(安全) — 异常检测、加壳器/安装程序启发式分析和附加数据分析 - **Functions DB**(函数数据库) — WinAPI 函数查找 - **Tools**(工具) — RVA ↔ RAW 转换器和嵌入式 C 编译器辅助工具 - **熵值可视化** — 基于每个节的熵值,以识别加壳或加密区域。 - **PE 编辑** — 添加/编辑节并将更改写回磁盘。 - **PDF 导出** — 通过 QuestPDF 生成分析报告。 - **主题** — 五种内置调色板(GitHub Dark、Monokai、Nord、Solarized Dark、Light),带有实时的十六进制颜色编辑器;主题在不同会话间持久保存。 ## 架构 Oblivion 是一个多项目的 .NET 8 解决方案,具有原生的 C 核心: | 项目 | 角色 | |---|---| | **Oblivion.Core** | 原生 C DLL — 低级别的 PE 解析器(MZ/PE 验证、节、导入) | | **Oblivion.Interpop** | 针对 `Oblivion.Core.dll` 的 C# P/Invoke 封装 | | **Oblivion.Data** | EF Core + SQLite — 实体、存储库、快照、哈希处理 | | **Oblivion.GUI** | WPF 应用程序(WPF-UI Fluent),通过 CommunityToolkit.Mvvm 实现 MVVM | ``` GUI ──> Data + Interop ──(P/Invoke)──> Core.dll ``` GUI 遵循 **ViewModel 优先的 MVVM** 模式:导航由隐式的 `DataTemplate` 映射驱动,依赖注入通过 `Microsoft.Extensions.Hosting` 连接,可观察状态使用 CommunityToolkit 源生成器。 ## 技术栈 - .NET 8, C# 12, WPF + [WPF-UI](https://github.com/lepoco/wpfui) 4.1 - [CommunityToolkit.Mvvm](https://github.com/CommunityToolkit/dotnet) 8.4 (`[ObservableProperty]`, `[RelayCommand]`) - EF Core 8 + SQLite - [Iced](https://github.com/icedland/iced) 反汇编器,[QuestPDF](https://www.questpdf.com/) 报告,[WPFHexaEditor](https://github.com/abbaye/WpfHexEditorControl) - 原生 C (Oblivion.Core) ## 构建 需要 **.NET 8 SDK**,并且对于原生核心,需要**安装了 C++ 工作负载的 Visual Studio**(该 C 引擎构建为 `Oblivion.Core.dll`)。 ``` # 构建完整 solution dotnet build Oblivion.sln # 或者仅构建 GUI dotnet build Oblivion.GUI/Oblivion.GUI.csproj ``` 然后运行 `Oblivion.GUI`。首次启动时,应用程序会在 `%AppData%/Oblivion/` 下创建其 SQLite 数据库和主题文件。 ## 项目布局 ``` Oblivion.Core/ Native C PE parser (DLL) Oblivion.Interpop/ P/Invoke wrapper Oblivion.Data/ EF Core + SQLite, repositories, snapshots Oblivion.GUI/ WPF MVVM application ``` ## 许可证 [MIT](LICENSE) © Oblivion 贡献者
标签:.NET 8, PE文件解析, SNI设置, Wayback Machine, Windows桌面应用, 云安全监控, 云资产清单, 反汇编, 逆向工程, 静态分析