逆向智能体的严父——MCP注入攻击
大部分人都配备了各种 Decompiler MCP,比如 IDA MCP、Ghidra MCP 以及 Jadx MCP,为大家分享一篇近期 arxiv 上的文章
Automatically Attacking Software Reverse Engineering AI Agents
Ghidra、IDA 这类反编译工具的 MCP 非常容易被提示词注入攻击,攻击者将恶意提示词写入 Binary 程序。当使用 Harness 全自动逆向工作流时,这些恶意的提示词可能通过 mcp 进入模型上下文,并引导模型产生非预期行为。

prompt 注入是怎么实现的?
注入三段字符串, prepend_string,target_code_string,append_string,这三段字符串合成为 adversarial string ,在 main 函数里面使用 adversarial string 字符串。诱导 AI ,使逆向分析的结果是 target_code_string 里面的代码。

Ghidra MCP 使用 decompile_function 工具来获取 main 函数的伪代码,自然就就得到了 adversarial string 字符串的内容。
• prepend_string、append_string 做遗忘 context 的诱导
• target_code_string 里面伪造一些工具调用结果误导 AI,目标意图在这里
如何自动化发现可以攻击的 adversarial string ?
使用 AutoDAN ,这是一个自动越狱算法,自动寻找 prepend_string、append_string 诱导模型相信 target_code_string 的内容,核心思想是通过不断对输入的提示词变异、测试打分来获得更容易越狱的提示词。
文章实际观察到的结果
显然,这个方法有很多限制。
1. Ghidra/IDA 反编译伪代码有字符串长度上限,超长字符串无法完整限制,短字符串很难诱导模型
2. 人一眼就能看出这类字符串诱导类的攻击
总之,猛蹬的时候小心一点。。。