Euva-Project/EUVA

GitHub: Euva-Project/EUVA

一款面向逆向工程的轻量级静态分析环境,将高性能十六进制编辑与 AI 辅助语义恢复相结合,解决二进制文件分析中的效率与可脚本化问题。

Stars: 37 | Forks: 1

## 🔍 关于 EUVA EUVA 不仅仅是一个十六进制编辑器与反编译器——它是一个为现代逆向工程师设计的全面**静态分析环境**。诞生于对高性能、可脚本化与智能二进制分析的需求,EUVA 将传统图论算法与前沿 AI 辅助语义恢复相结合。 ## 免责声明 **本程序处于积极开发阶段。实验性构建可能包含错误或导致意外行为。请谨慎使用。** 本软件按“原样”提供,不附带任何形式的担保。EUVA 是一个用于教育目的与安全研究的高精度仪器。作者不对任何系统不稳定、数据丢失或因误用该工具而产生的法律后果负责。 使用 EUVA 即表示您承认自己需独自承担行为责任,理解修改二进制文件与进程内存的风险,并尊重所在司法管辖区的法律法规。 ## ✨ 核心工具集 ### 1. 🧬 高性能十六进制编辑器 借助硬件加速渲染引擎,以最原始级别体验二进制数据。EUVA 绕过标准 WPF 渲染管线以提供最高性能。 ### 2. ⚡ 反编译器引擎 将原始机器码提升为可读的 C/C++ 逻辑的流水线。 ### 3. 🔍 高级反汇编 用于精确低级分析的高性能逻辑列表。 ### 🧩 扩展与分析(其他) EUVA 被设计为“对新分析方法无所不包”。 Yara 规则等。 ### 4. 🤖 AI 代理语义重构 在**逻辑**与**语义**之间搭建桥梁。我们的实验性 AI 层帮助您识别在编译过程中传统上丢失的变量名与函数角色。 🟢 AI 处理(语义重构)后 ## 🛠 特性 spotlight - **内存映射文件引擎**:在零堆压力情况下可扩展至任意大型二进制文件 - **可写位图渲染器**:完全绕过 WPF 渲染管线,实现像素级输出并保持原生 DPI - **字形缓存子系统**:每个字符光栅化一次,随后通过直接内存复制进行块传输 - **脏跟踪系统**:支持零延迟变更可视化的无锁快照读取 - **事务式撤销系统**:既支持逐步撤销(`Ctrl+Z`),也支持全会话回滚(`Ctrl+Shift+Z`) - **结构化 PE 分解层**:将原始字节转换为可导航的语义树 - **DSL 语言**:一种用于在十六进制编辑器中用类似 Python 语法替换字节的独立语言 - **可脚本化修补 DSL**(`.euv` 格式)并支持实时文件监视执行 - **可插拔检测器流水线**用于打包器/保护器识别 - **全主题化渲染层**:支持跨会话持久化主题状态 - **新增 Yara-X 规则引擎**:支持对数千条预构建规则进行二进制文件匹配 - **字节缩略图**:让您能即时扫描二进制文件的十六进制网格,简化研究并即时识别可能的加壳代码或类似内容 - **反汇编器**:基于 Iced 的反汇编器将帮助分析二进制文件,并以可读逻辑呈现 - **反编译器**:反编译 x64、x86 二进制文件并输出 C/C++ 格式的伪代码 - **脚本化反编译器**:允许您编写自定义反编译器脚本与自定义反编译方法的 C# 脚本层 - **AI 代理反编译器**:通过云端或本地 Ollama 携带您的 API 密钥,即时还原可读的变量名与代码语义,且无需 UI 冻结 - **AI 解释**:现在 AI 可大致向您解释反编译代码,给出尽可能高质量的答案(实验性功能) ## 🚀 快速开始 ### 先决条件 在构建之前,请确保已安装以下内容: | 要求 | 版本 | 链接 | | :--- | :--- | :--- | | .NET SDK | 8.0+ | [下载](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) | | Windows 操作系统 | 10 / 11 | 必需(WPF) | ### 安装 ``` # 1. Clone the repository git clone https://github.com/pumpkin-bit/EUVA.git cd EUVA/EUVA.UI # 2. Restore dependencies dotnet restore # 3. Build in Release mode dotnet build -c Release # 4. Run (optional, or launch the compiled binary directly) dotnet run -c Release ``` ### 首次启动 1. 通过 **文件 → 打开** 打开二进制文件,或将其拖放到窗口中 2. 您可以在十六进制编辑器中使用内部 DSL 语言修改字节 3. 按 `Ctrl+D` 打开 **反汇编器**,`Ctrl+E` 打开 **反编译器** 4. (可选)在 **AI 设置** 中配置您的 AI 提供程序以启用语义重构 ## 📚 文档与深入 深入钻研其理论与机制: - 📖 [内存映射文件](docs/MemoryMappedFile.md) - 📖 [可写位图渲染](docs/WriteableBitmapRenderer.md) - 📖 [字形缓存](docs/GlyphCache.md) - 📖 [脏跟踪系统](docs/DirtyTrackingAndSnapshot.md) - 📖 [事务式撤销系统](docs/UndoSystem.md) - 📖 [结构化 PE 分解层](docs/PESemanticTree.md) - 📖 [DSL 语言](docs/DSL.md) - 📖 [可脚本化修补 DSL](docs/EuvFIleWatch.md) - 📖 [可插拔检测器流水线](docs/Detectors.md) - 📖 [全主题化渲染层](docs/Themes.md) - 📖 [新增 Yara-X 规则引擎](docs/EuvaUseYaraX.md) - 📖 [字节缩略图](docs/byteminimap.md) - 📖 [反汇编器](docs/Disassembler.md) - 📖 [反编译器](docs/Decompiler.md) - 📖 [脚本化反编译器](docs/Decompiler.md#19-glass-engine-c-scripting-integration) - 📖 [AI 代理反编译器](docs/Decompiler.md#20-ai-assisted-semantic-integration) ## ⌨️ 默认热键 | 命令 | 快捷键 | 描述 | | :--- | :--- | :--- | | `NavInspector` | `Alt+1` | 切换到 Inspector 标签页 | | `NavSearch` | `Alt+2` | 切换到 Search 标签页 | | `NavDetections` | `Alt+3` | 切换到 Detections 标签页 | | `NavProperties` | `Alt+4` | 切换到 Properties 标签页 | | `CopyHex` | `Ctrl+C` | 将选区复制为十六进制字符串 | | `CopyCArray` | `Ctrl+Shift+C` | 将选区复制为 C 字节数组 | | `CopyPlainText` | `Ctrl+Alt+C` | 将选区复制为纯文本 | | `Undo` | `Ctrl+Z` | 撤销上一次字节写入 | | `FullUndo` | `Ctrl+Shift+Z` | 回滚上一次完整脚本运行 | | `View byte` | `F3` | 查看最新的字节变更 | | `View Yara Matches` | `Shift+F3` | 查看 Yara 匹配结果 | | `View Disassembler` | `Ctrl+D` | 查看反汇编器 | | `View Decompiler` | `Ctrl+E` | 查看反编译器,使用 `F5` 在图形模式与文本模式间切换 | | `Highlight code` | `Ctrl+A` | 在反编译器中以文本形式选中代码 | | `Function table` | `Ctrl+R` | 在反编译器中显示函数表 | | `IAT Import` | `Ctrl+E` | 在反编译器中显示所有 IAT 导入 | | `Xrefs To` | `X` | 显示在反编译器代码中被调用的所有变量 | | `Xrefs From` | `X` | 查看当前指令在反汇编器中的引用位置 | | `Parent navigation` | `P/Enter` | 查看反汇编器指令的父级(反汇编器) | **您可以通过加载(通过程序菜单中的设置)并编辑 `.htk` 文件来重新分配热键。** ## ❓ 常见问题 **Q:为何使用 EUVA 内置的 AI 而不是 IDA Pro 或 Ghidra 的 AI 插件?** **A:** 在传统工具中,AI 往往是一个“附加脚本”,会在处理原始文本并等待响应时冻结 UI。EUVA 是一个本地 JIT 应用程序,其中 AI 是“一等公民”。我们的**零分配流水线**与直接 AST 级语义注入意味着重命名在毫秒内完成,且不会出现任何界面卡顿。 **Q:我能否在不将数据泄露到云服务器的情况下安全地逆向恶意软件或敏感代码?** **A:** 绝对。EUVA 遵循**本地优先**理念。您可以配置其使用 **Ollama** 或任何本地 OpenAI 兼容提供程序。您的代码保留在本地机器上,隐私得到保障。 **Q:LLM 经常产生幻觉。如何确认 AI 没有发明逻辑或破坏我的反编译器输出?** **A:** EUVA 与 LLM 在“信任但验证”循环中工作。AI 仅被允许对我们 AST 引擎检测到的现有变量提出重命名建议。每项变更都会明确标记为 `/* AI */` 注释,并且您可以使用**拒绝 AI** 按钮即时将任何函数回滚到其原始状态。 **Q:我能否强制 AI 使用特定的命名约定(例如 Linux 内核风格或自定义加密术语)?** **A:** 可以。**AI 设置**窗口允许您自定义**系统提示**。您可以精确定义 AI 应如何理解代码以及应优先考虑哪些命名标准。 **Q:为何在 IDA Pro、Ghidra 或 ImHex 已存在数十年的情况下要切换到 EUVA?** **A:** EUVA 不承载遗留代码。 - **IDA/Ghidra**:单体式环境,现代功能(如 LLM 集成)因复杂的 Python/Java 桥接而显得迟缓 - **ImHex**:出色的十六进制编辑器与模式解析器,但并非具备专用反编译器流水线的完整逆向工程环境 - **EUVA**:专为 AI 时代与高性能数据流分析而构建。它以现代 C# 本地应用的形式提供工业级能力与敏捷性 ## 🤝 贡献与社区 我们欢迎实战型网络管理员与企业级研究员共同参与。 我们同样欢迎实战型网络管理员与企业级研究员。 ### 快速开始 1. **先阅读:** 请在参与前阅读我们的 [行为准则](CODE_OF_CONDUCT.md) 2. **发现错误?** 提交 [问题](https://github.com/pumpkin-bit/EUVA/issues),附上详细描述与可能的示例二进制文件 3. **想编码?** 查看 [贡献指南](CONTRIBUTING.md) 获取构建说明与 PR 模板 **欢迎 PR:** 发现错误或优化流水线阶段?请提交 PR!🚀 ## 许可证 EUVA 在 **GNU 通用公共许可证 v3.0** 下发布。 ``` GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2026 pumpkin-bit (falker) & EUVA Contributors This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . --- EngineUnpacker Visual Analyzer (EUVA) Professional PE Static Analysis Tool Educational tool for reverse engineering research. Use responsibly and in accordance with applicable laws. ```

EUVA —— 为喜欢阅读十六进制的研究者而构建。

怀着 ❤️ 构建于逆向工程社区 | © 2026 EUVA 项目

标签:AI 辅助分析, C/C++ 反编译, URL提取, Wayback Machine, WriteableBitmap, YARA 规则, 二进制分析, 二进制文件查看器, 云安全监控, 云安全运维, 云资产清单, 内存映射文件, 函数角色识别, 反汇编, 反编译, 变量名恢复, 图形算法, 多人体追踪, 实验性工具, 扩展分析, 教育用途, 硬件加速渲染, 脚本化分析, 语义恢复, 逆向工程, 逆向工程工具, 静态分析, 高性能渲染