- Added comprehensive GHIDRA_HTTP_API.md documenting the Java plugin's endpoints - Improved bridge_mcp_hydra.py with better docstrings and type hints - Updated port range calculations to use DEFAULT_GHIDRA_PORT - Cleaned up comments and simplified code - Improved error handling and response formatting - Standardized API response structure across all endpoints
74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
# Ghidra HTTP API Documentation
|
|
|
|
## Base URL
|
|
`http://{host}:{port}/` (default port: 8192)
|
|
|
|
## Endpoints
|
|
|
|
### Instance Management
|
|
- `GET /instances` - List active instances
|
|
- `GET /info` - Get project information
|
|
- `GET /` - Root endpoint with basic info
|
|
|
|
### Program Analysis
|
|
- `GET /functions` - List functions
|
|
- Parameters:
|
|
- `offset` - Pagination offset
|
|
- `limit` - Max items to return
|
|
- `query` - Search string for function names
|
|
|
|
- `GET /functions/{name}` - Get function details
|
|
- Parameters:
|
|
- `cCode` - Return C-style code (true/false)
|
|
- `syntaxTree` - Include syntax tree (true/false)
|
|
- `simplificationStyle` - Decompiler style
|
|
|
|
- `GET /get_function_by_address` - Get function by address
|
|
- Parameters:
|
|
- `address` - Memory address in hex
|
|
|
|
- `GET /classes` - List classes
|
|
- `GET /segments` - List memory segments
|
|
- `GET /symbols/imports` - List imported symbols
|
|
- `GET /symbols/exports` - List exported symbols
|
|
- `GET /namespaces` - List namespaces
|
|
- `GET /data` - List data items
|
|
- `GET /variables` - List global variables
|
|
- `GET /functions/{name}/variables` - List function variables
|
|
|
|
### Modifications
|
|
- `POST /functions/{name}` - Rename function
|
|
- Body: `{"newName": string}`
|
|
|
|
- `POST /data` - Rename data at address
|
|
- Body: `{"address": string, "newName": string}`
|
|
|
|
- `POST /set_decompiler_comment` - Add decompiler comment
|
|
- Body: `{"address": string, "comment": string}`
|
|
|
|
- `POST /set_disassembly_comment` - Add disassembly comment
|
|
- Body: `{"address": string, "comment": string}`
|
|
|
|
- `POST /rename_local_variable` - Rename local variable
|
|
- Body: `{"functionAddress": string, "oldName": string, "newName": string}`
|
|
|
|
- `POST /rename_function_by_address` - Rename function by address
|
|
- Body: `{"functionAddress": string, "newName": string}`
|
|
|
|
- `POST /set_function_prototype` - Update function prototype
|
|
- Body: `{"functionAddress": string, "prototype": string}`
|
|
|
|
- `POST /set_local_variable_type` - Change variable type
|
|
- Body: `{"functionAddress": string, "variableName": string, "newType": string}`
|
|
|
|
## Response Format
|
|
All endpoints return JSON with standard structure:
|
|
```json
|
|
{
|
|
"success": boolean,
|
|
"result": object|array,
|
|
"error": string, // if success=false
|
|
"timestamp": number,
|
|
"port": number
|
|
}
|