通过 MCP 使用 Ghidra 逆向工程 Go 二进制文件

最近,我遇到了一种情况:获得了一个 Golang HTTP 服务器二进制文件,需要对其进行反汇编以进一步研究,从而找到下一步的线索。任务:作者使用 Ghidra 配合 GolangAnalyzerExtension 和 GhidraMCP 分析了已剥离符号的 Golang HTTP 服务器二进制文件。AI 代理(Cursor)被提示识别函数、API 路由并将代码反编译回 Golang。人类提供了二进制文件,配置了 MCP 桥接,并审查了 AI 的输出准确性。;工具:Cursor。人工角色:源证据不可用;原始帖子未说明人员如何参与。;局限:该工作流仅在小型、已剥离的二进制文件上进行了测试;其在更大或更复杂二进制文件上的可扩展性未知。AI 输出包含事实错误和幻觉,需要人工验证。作者建议将静态分析结果与动态测试相结合进行验证。对特定 MCP 版本和 Ghidra 插件的依赖可能会引入兼容性问题。。

工具

Cursor

Agent Work Atlas 发布日期:

概述

最近,我遇到了一种情况:获得了一个 Golang HTTP 服务器二进制文件,需要对其进行反汇编以进一步研究,从而找到下一步的线索。

工作流程

作者使用 Ghidra 配合 GolangAnalyzerExtension 和 GhidraMCP 分析了已剥离符号的 Golang HTTP 服务器二进制文件。AI 代理(Cursor)被提示识别函数、API 路由并将代码反编译回 Golang。人类提供了二进制文件,配置了 MCP 桥接,并审查了 AI 的输出准确性。

原文报告的结果

AI 成功识别了库、API 路由和文件结构,并检测到了路径遍历漏洞。然而,它错误地“修复”了一个故意留下的 SQL 注入漏洞,并幻觉出了一些路由路径(例如 /my-messages 而不是 /me/messages)。作者指出,结果因模型而异,Composer 1.5 的准确性低于 Opus 4.6。

人工角色

源证据不可用;原始帖子未说明人员如何参与。

局限

该工作流仅在小型、已剥离的二进制文件上进行了测试;其在更大或更复杂二进制文件上的可扩展性未知。AI 输出包含事实错误和幻觉,需要人工验证。作者建议将静态分析结果与动态测试相结合进行验证。对特定 MCP 版本和 Ghidra 插件的依赖可能会引入兼容性问题。

试一试

我有一个位于 [replaceable input: path/to/binary] 的已剥离 Golang 二进制文件。我需要对其进行逆向工程以查找 API 路由和潜在漏洞。请使用 GhidraMCP 分析该二进制文件。首先,识别使用的库并列出所有 API 端点。然后,将主要处理函数反编译为可读的 Golang 代码。具体来说,查找数据库查询中的 SQL 注入模式和文件上传处理程序中的路径遍历问题。以结构化 JSON 格式输出发现结果,包含键:'libraries'、'routes'、'vulnerabilities' 和 'decompiled_code'。不要假设代码是安全的;即使看起来像标准做法,也要报告任何可疑模式。如果你无法通过 MCP 访问二进制文件,请让我提供反编译的 C 代码。

原始来源

来源报告未经独立核验。发布日期为本站案例发布日期,并非原始文章日期。

更多同类案例 · 安全与运维