
Ghidra MCP 7.0.0 工具整合遷移指南272→251工具的破壞性變更全解析【免費下載鏈接】ghidra-mcpGhidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.項目地址: https://gitcode.com/gh_mirrors/ghi/ghidra-mcpGhidra MCP Server 是一個面向 AI 逆向工程的開源 MCP 服務器GUI 插件 無頭服務器200 工具。它的7.0.0 大版本做了一次徹底的工具整合把冗余工具從272 個精簡到 251 個刪除全部舊接口、不留兼容別名屬于典型的破壞性變更。本文帶你用 10 分鐘看懂這次變更的來龍去脈并給你一份可執(zhí)行的遷移清單 ?為什么 Ghidra MCP 7.0.0 要做工具整合在動手刪工具之前項目先做了一輪完整的審計見 TOOL_AUDIT_AND_CONSOLIDATION.md結(jié)論有三文檔與實現(xiàn)一致README 的 API 參考由 tests/endpoints.json 自動生成零缺失、零幽靈工具大量近重復set_plate_comment/set_decompiler_comment/set_disassembly_comment與統(tǒng)一的set_comment行為被驗證完全相同batch_xxx系列與單數(shù)版互為冗余還挖出真 Bug如validate_data_type_exists對裸類型名int、DWORD全部誤報不存在。整合原則只有一條一個工具搞定一個或一批one-or-many能力零刪減——被刪工具能做的每件事存活工具都能做。因為 7.0.0 就是破壞性邊界所以采用干凈切割不保留任何向后兼容別名。 為什么用大版本號7.0.0而不是補丁版因為語義化版本的主版本號正是為會弄壞你的場景準備的。團隊曾考慮直接修訂已發(fā)布的 6.0.0但那樣會讓同一個 tag 含義漂移讀者無法分辨自己拉到的到底是哪個 6.0.0——詳見 TOOL_AUDIT_AND_CONSOLIDATION.md 的 §5。4 大類整合21 個工具去哪兒了完整的舊工具 → 新工具 → 調(diào)用改寫對照表在官方遷移契約 MIGRATION_7.0.0_TOOL_CONSOLIDATION.md 中共 23 條移除記錄。下面按四類速覽1?? 注釋類4 合 1CommentService被刪除存活工具改寫方式set_plate_commentset_commentset_comment(address, comment, typeplate)set_decompiler_commentset_commentset_comment(address, comment, typepre)set_disassembly_commentset_commentset_comment(address, comment, typeeol)get_plate_commentget_comment一次返回{plate, pre, eol, post}全部類型亮點set_comment/get_comment現(xiàn)在在任意地址上都有效舊工具僅限函數(shù)——數(shù)據(jù)全局變量的 plate 注釋不再需要繞道batch_set_comments的 workaround。2?? 單數(shù)/批量8 個 batch 工具并入可變參存活者batch_xxx家族被逐個吸收存活工具接一個也行接一批也行被刪除存活工具批量形式batch_add_function_tagsadd_function_tag(assignments[...])batch_remove_function_tagsremove_function_tag(assignments[...])batch_create_labels/batch_delete_labelscreate_label/delete_label(labels[...])batch_decompiledecompile_function(functionsa,b,c)batch_analyze_completenessanalyze_function_completeness(addresses[...])rename_variablerename_variables(variable_renames[{old,new}])batch_set_variable_typesset_variables(variables[{name,type}])?? 注意調(diào)用形態(tài)變化批量完整性打分從POST JSON 數(shù)組變成了GET 逗號分隔地址串調(diào)用方需要自己 join 地址列表。好處是批量打分從此跑在并發(fā)讀路徑上更快了。3?? 真重復3 刪 1 留被刪除存活工具備注get_data_type_sizeget_type_size嚴格超集多出對齊 路徑可直接替換validate_data_type_existsvalidate_data_typeaddress變可選順帶修復裸類型名解析 Bugrename_function_by_addressrename_functionold_name現(xiàn)在名字或地址都能傳值得一提的是mcp_health被評估后保留了它返回連接池統(tǒng)計、運行時長、內(nèi)存和活躍請求數(shù)和僅做存活探測的check_connection并不重復。4?? 語義統(tǒng)一變量類型 符號重命名Tier-3set_variable_type新名見 FunctionService.java統(tǒng)一set_local_variable_type、set_parameter_type、set_decompiler_variable_type三者作用在反編譯器高變量層本地變量和參數(shù)一次全覆蓋。rename_symbol(target, new_name, kindauto)新名見 SymbolLabelService.java統(tǒng)一 5 個符號重命名工具kind ∈ {auto, data, global, label, external}。auto會自動識別符號類型需要rename_data那種嚴格命名質(zhì)量攔截時請顯式傳kinddata。 隨遷移一起修掉的 Bug整合順帶消滅了幾個埋雷完整清單見 遷移契約 Bug fixes 一節(jié)BUG-1validate_data_type_exists對int、char *這類裸類型名全部返回exists: false——修復后復用get_type_size的解析器BUG-2create_struct會自動加匈牙利前綴b→cB但remove_struct_field只認變形后的名字。現(xiàn)在支持按原始詞干回退匹配且create_struct會返回最終字段名NITget_function_labels現(xiàn)在接受地址此前只認函數(shù)名缺參時報Function not found: null。? 遷移清單如何確認自己已跟上 7.0.0倉庫內(nèi)部的所有調(diào)用點Python bridge、tools/setup/部署冒煙測試、ghidra_scripts/腳本、測試套件、運維文檔已完成確定性重寫。倉庫外的 HTTP API 消費者需自行遷移步驟如下全局搜索舊工具名。23 個被刪名字現(xiàn)在只應出現(xiàn)在歷史文檔CHANGELOG.md、docs/releases/和存活工具我替代了誰的描述里核對工具目錄。權(quán)威計數(shù)永遠以 tests/endpoints.json 為準本地可運行 test_published_counts.py——它會把 6 處對外公布的工具數(shù)字全部釘死任何漂移直接失敗校驗遷移表。test_migration_guide_successors.py 會逐條檢查 23 條移除記錄是否都有遷移路徑驗證存活路線注冊。被刪的手動路由batch_set_variable_types、get_data_type_size已從 ManualToolDescriptors.java 中剪除ManualToolDescriptorsParityTest會抓出任何有描述、無路由的殘留部署后看/mcp/schema。確認存活工具數(shù)再跑集成測試層級pytest tests/ -m readonly、-m safe_write。 一個小彩蛋為什么發(fā)貨目錄是 253 而不是 251整合把公布面從 272 降到 251但同一版本周期里又新增了 2 個端點見 CHANGELOG.md v7.0.0 節(jié)/list_shadowed_globals— 找出被更大數(shù)據(jù)單元吞掉、在list_globals里結(jié)構(gòu)性不可見的匿名類型全局變量/batch_get_comments—batch_set_comments的讀側(cè)對應物一次取回多地址的五類注釋。所以最終目錄是253 個工具GUI 插件提供 239、無頭服務器 226、兩者都有 212。想深入了解每個數(shù)字怎么來的直接看 tests/endpoints.json 即可。總結(jié)Ghidra MCP 7.0.0 的工具整合是一次能力不減、表面更干凈的破壞性變更4 類 21 個凈減少換來更少的近重復 schema模型不再需要在rename_data和rename_label之間猜、更簡單的調(diào)用形態(tài)一個工具接一個或一批、以及 3 個順手修好的解析 Bug。遷移的唯一成本是把舊工具名全局替換為存活者——官方對照表已備齊跟著 MIGRATION_7.0.0_TOOL_CONSOLIDATION.md 抄作業(yè)即可。 延伸閱讀docs/project-management/ 目錄下還有工具審計提案、響應契約等配套 RFCtests/conformance/ 則存放了全部 140 工具的合規(guī)性快照可作為行為基線參考?!久赓M下載鏈接】ghidra-mcpGhidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.項目地址: https://gitcode.com/gh_mirrors/ghi/ghidra-mcp創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考