逆向工程开源平台。
EUVA 不仅仅是一个十六进制编辑器和反编译器;它更是一个你可以自行定制的逆向工程平台,而不是让它来定制你。它是一个你可以插入任何内容的平台,并且它不会反对。我们致力于社区的利益,支持最大的工具灵活性,并快速与其他分析器集成——也许是您自己的,或者也许是工业级的?我们不想把这个工具变成另一个反编译器,因为反编译并不有趣;IDA、Binja 等可以做到。但我们在构建更好的东西,试图构建一个更好的架构,这大概就是我们的主要目标。 EUVA 不会独自进化,而是与社区一起进化。
本程序正处于活跃开发阶段。实验性构建可能包含错误或导致意外行为。请谨慎使用。
本软件按“原样”提供,不提供任何形式的保证。EUVA 是一款为教育目的和安全研究设计的高精度工具。作者不对因误用此工具而导致的任何系统不稳定、数据丢失或法律后果负责。
使用 EUVA,即表示您承认您对自己的行为承担全部责任,您了解修改二进制文件和进程内存的风险,并且您将遵守您所在司法管辖区的法律法规。
查看我们的十六进制编辑器的功能,它还包括用于替换值的 DSL。这使得分享补丁变得容易,不是吗?假设您正在创建需要补丁的内容,并希望与他人分享。非常简单:只需发送给他们我们的 .euv 脚本,程序就会将补丁应用到二进制文件,然后完成,无需头疼。
也许我们工作中最重要的部分之一是反编译器——它被设计并且正在被设计,目标是尽可能好地传达程序行为的含义。我们努力使其用户友好,因为翻阅其他反编译器很痛苦,它们像翻译器一样工作,而你在疯狂中寻找某种意义。用我们的反编译器,情况也不简单,但我们降低了入门门槛,并尝试将反编译后的代码重构得尽可能符合人类理解。当然,我们并非盲目行事,一切都有局限性,但这仍然比阅读连完整翻译都算不上的原始 C 语言好得多。这并不总是很方便,所以我们在这里尝试将 C++ 抽象应用于反编译代码,并对结果感到满意。
示例输出:
如果您对反编译器的参数不确定,请通过查看反汇编器来双重检查其结果。
如果我们完美地处理这个问题,我们不仅仅是在谈论添加像 Themida 这样的保护器检测功能,还包括反编译器本身。顺便说一句,由于使用了 Roslyn 动态编译的 C# 脚本,它也支持您的补丁。这些可以被称为反编译器的插件,某种程度上根据您的需求对其进行校准。 这也适用于 Yara 规则。也许是我们最近完成的 Virustotal 集成?我们不打算止步于此;我们将继续在这一领域发展。
所以,我们有一个双系统:AI 重构程序中的内置函数,您在其中指定您的 API 密钥。要点也必须符合 OpenAI 标准。这是一个快速干预按钮,如果您不打算深入研究过程,或者需要在不使用云的情况下使用本地 AI 模型进行隐秘分析。 我们还有与 MCP 的集成,这非常方便,因为模型可以访问它需要的一切。它可以读取反编译代码并根据您的意愿修改它,帮助您学习和理解。您可以通过简单地配置所需的配置文件,开始使用任何支持 MCP 的服务。 MCP 适合那些想要更深入并且习惯使用云的人。一切由您选择。 我认为我们会保持这种灵活的方法。
[!NOTE] 您的选择,您的控制:AI 智能体是一个“自带密钥”系统。它支持云端 LLM(OpenAI, Claude, Groq)和本地 LLM(Ollama, LocalAI)。隐私至上。
🟢 AI 处理后(语义重构)
示例输出:
Ctrl+Z),也支持完整会话回滚(Ctrl+Shift+Z).euv 格式),支持实时文件监控执行从发布页面下载,或通过 winget 安装 EUVA
winget 使用:
winget install Euva-Project.EUVA
或者按照以下指南从源代码构建程序。
构建前,请确保已安装以下内容:
| 需求 | 版本 | 链接 |
|---|---|---|
| .NET SDK | 8.0+ | 下载 |
| Windows 操作系统 | 10 / 11 | 必需(WPF) |
[!NOTE] EUVA 是一个基于 WPF 的 仅 Windows 应用程序。目前不支持 Linux/macOS。
# 1. 进入主目录
cd EUVA/EUVA.UI
# 2. 恢复依赖项
dotnet restore
# 3. 以 Release 模式构建
dotnet build -c Release
# 4. 运行(可选,或启动编译后的二进制文件)
dotnet run -c Release
Ctrl+D 打开 反汇编器,按 Ctrl+E 打开 反编译器深入了解理论与机制:
您可以通过加载(通过程序菜单中的设置)和编辑 .htk 文件来重新分配快捷键。
问:为什么使用 EUVA 内置的 AI,而不是 IDA 或 Ghidra 的 AI 插件?
答: 在传统工具中,AI 只是一个“螺栓固定”的拐杖,在脚本推送文本时冻结 UI。在 EUVA 中,AI 是核心的一部分。我们的管线快速注入语义级别的更改。它不是“插件”,而是一种共生关系:反编译器提供事实,而 AI 提供含义。零卡顿。
问:我的代码会泄露到云端吗?
答: 只有在您希望的情况下才会。EUVA 遵循 本地优先 的原则。连接 Ollama 或任何本地服务器,即可完全离线工作。您的逆向工作是您的秘密。
问:如果 AI 开始产生幻觉并虚构代码怎么办?
答: 当然,这并不排除。我们遵循“信任但验证”的原则。AI 不能凭空创造逻辑,它只能为代码中实际存在的变量建议名称。所有更改都会标记 /* AI */ 注释。如果您不满意,一键或一个快捷键即可将一切回滚到原始状态。
问:EUVA 的灵活性如何?我可以为自己定制吗?
答: 这就是主要特点。EUVA 是一个平台。
问:如果我已经有 IDA、Ghidra 或 Binary Ninja,为什么还要使用 EUVA?
答: 因为这些都是笨重的单体程序。
我们欢迎街头聪明的网络奔跑者和学院派的研究者。
欢迎 PR: 发现 bug 或优化了管线阶段?提交 PR!🚀
我也会对星星表示感激——星星是项目的未来 ⭐。
EUVA 是根据 GNU 通用公共许可证 v3.0 发布的自由软件。
GNU 通用公共许可证
版本 3,2007 年 6 月 29 日
版权所有 (C) 2026 EUVA 贡献者
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 <https://www.gnu.org/licenses/>.
---
EngineUnpacker Visual Analyzer (EUVA)
专业 PE 静态分析工具
用于逆向工程研究的教育工具。
请负责任地使用,并遵守适用法律。
EUVA – 为以阅读十六进制为乐的研究者而构建。
为逆向工程社区 ❤️ 打造 | © 2026 EUVA 项目
| 命令 | 快捷键 | 描述 |
|---|
NavInspector | Alt+1 | 切换到检查器标签页 |
NavSearch | Alt+2 | 切换到搜索标签页 |
NavDetections | Alt+3 | 切换到检测标签页 |
NavProperties | Alt+4 | 切换到属性标签页 |
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 | 查看反汇编器指令的父级(反汇编器) |