关于 Argus
Argus 是一款仅支持 Windows 的 MCP 服务,用于分析运行中的进程,并返回运行时内存、反汇编、调用链和导入解析证据。它面向逆向工程师和程序分析人员,可与静态分析配合检查进程实际执行的内容。
主要功能
- 01附加到运行中的 Windows 进程
- 02读取和扫描进程内存
- 03反汇编运行时代码并分析函数
- 04解析导入并追踪调用链
- 05用支持证据记录假设
- 06自动选择 x86 或 x64 引擎
适用场景
- 01从旧游戏客户端还原协议
- 02检查解密缓冲区和运行时分发
- 03分析崩溃、数据损坏或恶意软件
- 04将运行时地址关联到 Ghidra 或 IDA
MCP 相关
Argus 的 argus-rs 组件实现 MCP 服务,提供进程检查、扫描、反汇编、追踪和证据账本工具。前端 argus-router 会为目标进程选择匹配的 x86 或 x64 引擎。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Argus
English · 繁體中文 · 简体中文 · 日本語 · 한국어
一款 MCP 服务,为 AI Agent 提供运行中进程的证据。
迄今为止,每款逆向工程 MCP 服务都只是连接到一个静态分析器——Ghidra、IDA、apktool。它们把磁盘上的文件交给你的 Agent。它们都无法告诉 Agent 程序此刻实际在做什么:那个缓冲区里解密出了什么、vtable 槽位在运行时解析到了哪个地址、哪个调用点发送了那个数据包。
Argus 补上了另一半。它会附加到正在运行的 Windows 进程,并返回运行时证据:真实地址上的真实字节、实际执行过的代码反汇编、已解析的 IAT 跳板、从实时内存中追踪出的调用者链,以及一份假设台账,记录哪些内容已经证实,哪些仍只是猜测。
它不会替模型得出结论。它会返回地址、模块/RVA 上下文、指令、调用者、被调用者和本地证据,然后不再干预。
为什么要做这个
游戏会消亡。发行商关闭服务器,工作室解散,游戏类型也逐渐过时。留存下来的是某人硬盘上的一个客户端,它再也无法连接任何东西——没有源码,没有协议文档,也没有服务器可供交互。只剩下一个仍记得如何使用某种语言的可执行文件,却再也没有人在听懂这门语言。
Argus 旨在让这些游戏重获新生。
为一款已停运的游戏重建服务器,意味着要还原其协议:数据包布局、加密、操作码分发,以及网络另一端的状态机。唯一留存的规范,就是客户端二进制文件本身。没人写过你需要的文档,而那些了解内情的人早已离开。
静态分析能帮你推进一部分工作。但一款二十年前的客户端可能经过加壳、字符串被加密,处理函数通过只有进程启动后才存在的表进行分发。所以你运行它,观察它如何工作——这正是下一节要讲的内容。
这就是这款工具的用途:不是闯入仍在运行的东西,而是让已死去的东西再次开口说话。
为什么要分析正在运行的进程
CPU 无法执行密文。
程序在磁盘上为保护自身而采取的任何措施——加壳、字符串加密、虚拟化指令、加载时解析导入——都必须先被还原,处理器才能运行代码。在执行的那一刻,真正的指令和数据都以明文形式驻留在内存中。它们必须如此。这不是某个特定保护器的缺陷,而是处理器工作方式的必然结果,任何程度的混淆都无法改变这一点。
因此,两种方法读取的是不同的内容:
- **静态分析读取文件。**也就是作者发布的内容。
- **运行时分析读取文件变成的内容。**也就是机器实际运行的内容。
两者不同时,后者才是事实。
| 情况 | 静态分析器 | Argus |
|---|---|---|
| 加壳代码 / 自解密代码 | 看到加壳器 | 反汇编内存中的解壳字节 |
| 通过 vtable 间接调用 | 看到 call [rax+0x18] | 将槽位解析为具体目标 |
| 运行时解析的导入 | 看到跳板桩 | 将跳板解析为真实 API |
| 解密后的缓冲区内容 | 无法读取 | 读取明文 |
| 40 个调用点中实际触发的是哪一个 | 猜测 | 记录实际执行的调用点 |
静态分析的优势
反过来也一样,值得直言不讳:静态分析器可以看到所有路径,包括从未执行过的路径。Argus 只能看到实际运行过的内容。未执行的分支不会留下任何运行时证据,而无人调用的函数就像不存在一样。
单独来看,这两种视角都不完整。这正是 correlate_addr 的用途——将运行时地址映射回模块和 RVA,在 Ghidra 或 IDA 中查找,并结合两方面的信息进行分析。Argus 的设计目标是与静态分析器协同工作,而不是取而代之。
工具
进程和内存
processes_list · processes_find · mem_attach · mem_modules · memory_regions
mem_read · mem_read_chain · mem_write
扫描
scan_bytes · scan_string · scan_regex · scan_pointers_to · scan_callers
scan_x86_call_sites · value_scan_start · value_scan_refine · value_explain · real_rate
反汇编和结构恢复
disasm_at · analyze_function · find_vtable · extract_dispatch_tables
analyze_send_call_sites · read_struct · diff_struct
导入和 API 解析
runtime_imports · runtime_exports · resolve_iat_thunks · resolve_api_targets
跟踪和关联
trace_call_chain · correlate_addr · locate
证据台账
record_hypothesis · verify_hypothesis · query_hypotheses · add_evidence
值得了解的两个设计决策
自动架构路由
将 64 位分析器附加到 32 位(WOW64)目标进程,常会导致指针运算悄无声息地出错,并产生无效的 PE 解析结果。Argus 提供了一个轻量级前端 argus-router,用于检查目标进程,判断其为 x86 还是 x64,然后分派给相应的 argus-rs 版本。你只需配置一个二进制文件;系统会为每个目标选择正确的引擎。
证据台账
Agent 擅长给出看似合理的解释,却不擅长察觉这些解释缺乏依据。record_hypothesis / verify_hypothesis / add_evidence 会强制区分两者:一项主张会作为假设保存,只有在附加证据且通过验证后,才会成为已确立的事实。query_hypotheses 可让后续会话接续上次中断的工作,而无需重新推导所有内容。
安装
预编译二进制文件
下载最新版本并解压到任意位置:
压缩包中包含 argus-router.exe 以及两个引擎版本
(argus-rs-x64.exe、argus-rs-x86.exe)。请将它们放在同一目录中。
从源代码构建
需要安装 Rust 工具链以及两个 Windows 目标:
rustup target add x86_64-pc-windows-msvc i686-pc-windows-msvc
git clone https://github.com/r0ptik/argus
cd argus
cargo build --release --target x86_64-pc-windows-msvc
cargo build --release --target i686-pc-windows-msvc
配置
Claude Code
claude mcp add argus -- C:\path\to\argus-router.exe
任意 MCP 客户端
{
"mcpServers": {
"argus": {
"command": "C:\\path\\to\\argus-router.exe"
}
}
}
范围和预期用途
Argus 是一款逆向工程和程序分析工具,适用于游戏和服务保存、网络协议分析、互操作性与洁净室重新实现、恶意软件分析、崩溃和数据损坏调试,以及安全研究等工作。
它明确不用于攻击在线服务。本仓库不接受任何作弊功能——请参阅 CONTRIBUTING.md。
该工具需要能够打开并读取其他进程,因此只能用于分析你拥有或获准分析的进程。未经许可分析软件,可能违反该软件的条款或你所在地的法律。对此负责的是你,而不是该工具。
平台支持
仅支持 Windows。内存访问层(argus-winmem)基于 Win32 进程和内存 API 构建;目前没有 Linux 或 macOS 后端。
支持 x86 和 x64 目标,包括在 WOW64 下运行的 32 位进程。
Crate
| Crate | 作用 |
|---|---|
argus-router | 前端二进制文件;架构检测和分发 |
argus-rs | MCP 服务;工具定义和请求处理 |
argus-engine | 分析引擎;反汇编、结构恢复、追踪 |
argus-winmem | Win32 进程和内存访问 |
argus-scan | 模式和数值扫描原语 |
evidence-core | 地址、模块、RVA 和证据数据模型 |
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。