Added
- MCP Integration Refactor: Refactored the Python bridge for improved MCP integration. (337f89e)
- Introduced MCP resources for loading context (e.g., instances, functions, disassembly).
- Added namespaced tools (e.g.,
instance.*,function.*,data.*) for better organization and discoverability. - Implemented a "current working instance" concept to simplify commands by implicitly targeting the active Ghidra instance.
- Analysis Prompts: Added pre-defined prompts for common analysis tasks, including
reverse_engineer_binaryfor comprehensive analysis. (337f89e, 3134581) - String Data Listing: Added a new endpoint to list string data in the binary, with pagination and filtering by content. Python bridge support via
list_strings()function. (f71f4aa) - Comprehensive Data Manipulation: Added tools/endpoints for creating (
create_data), deleting (delete_data), renaming (rename_data), changing type (set_data_type), and combined updates (update_data) for data items. Supports common types (byte, word, dword, string, etc.). (6c28553, 5797fb3, 28870e9) - Enhanced Cross-Reference (Xrefs) Analysis: Implemented accurate xref tools (
get_references_to,get_references_from) using Ghidra's ReferenceManager. Features include detailed info, bi-directional search, type filtering, and simplified bridge output. (96788f3) - Memory Operations: Added tools/endpoints for reading (
read_memory) and writing (write_memory) to program memory. (454c739) - Function Addressing Flexibility: MCP bridge now supports addressing functions by name or address. (4f3042f)
- API Version Check: Bridge script now verifies compatibility with the Java plugin (expects API v2). (fedd2d0)
- Enhanced Decompiler Controls: Added options for raw vs. clean pseudocode output and multiple simplification styles. (454c739)
Changed
- Bridge Refactor & Namespacing: Reorganized bridge tools into namespaces (e.g.,
instance.list_instances,function.get_function_details) as part of the MCP integration refactor. (337f89e) - Breaking: HATEOAS API v2 & Bridge Update: Migrated fully to a HATEOAS-driven API (v2). The Python bridge (
bridge_mcp_hydra.py) now exclusively uses this API, removing legacy support. Responses are simplified for AI agents, including text representations for structured data (e.g., disassembly). All endpoints require HATEOAS compliance (e.g.,_links). (4bc2267, 4f3042f) - Optimized Variable Listing: Improved performance of the
/variablesendpoint with efficient pagination and aglobalOnlyfilter. (6c865c4) - Standardized Responses: Unified all endpoints to use structured JSON and standardized HATEOAS links. (454c739, 4bc2267)
- Improved Error Handling: Enhanced error reporting and parameter validation across the API and bridge. (454c739, 4f3042f, 3df129f)
- API Documentation: Updated documentation to reflect the HATEOAS v2 API and new features. (28870e9, 3fd0cf4)
Fixed
- Real Instruction Disassembly: The
/disassemblyendpoint now provides actual instruction disassembly instead of placeholders. (3df129f) - Ghidra 11+ Compatibility: Resolved various API compatibility issues, particularly for cross-references (
XrefsEndpoints). (5dc59ce, 2b1fe6c, 0eaa19a, 9443101) - Data Operations: Fixed issues with HTTP request body consumption, parameter naming (
typevsdataType), and name preservation during type changes. (28870e9) - Function Commenting: Corrected
set_decompiler_commentto apply comments at the function level. (2a1607c) - Call Graph Parameter Handling: Updated the CallGraph endpoint to properly accept both function name and address parameters for flexibility. (fa8cc64)
- Endpoint Functionality: Addressed various issues including endpoint registration, handling of program-dependent endpoints, URL encoding, transaction management, and inconsistent response formats. (various commits, e.g., 4bc2267)