Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dshikashio/idarest
Expose some basic IDA Pro interactions through a REST API for JSONP
https://github.com/dshikashio/idarest
Last synced: 3 months ago
JSON representation
Expose some basic IDA Pro interactions through a REST API for JSONP
- Host: GitHub
- URL: https://github.com/dshikashio/idarest
- Owner: dshikashio
- Created: 2015-03-03T04:49:53.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-03-21T02:07:22.000Z (over 9 years ago)
- Last Synced: 2024-05-27T12:01:38.302Z (6 months ago)
- Language: Python
- Size: 208 KB
- Stars: 19
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
IDA Rest
========
A simple REST-like API for basic interoperability with IDA Pro.Installing and Running
----------------------
Copy idarest.py to IDA Pro's plugin directory.Use the Edit menu in IDA Pro to start and stop the plugin
* Edit -> Start IDARest
* Edit -> Stop IDARestWhen starting the plugin you will be asked for the listening host and port.
Provide it in '''host:port''' format. `127.0.0.1:8899` is the default setting.Conventions
-----------
### Request Method
All APIs can be accessed with either GET or POST requests. Arguments in GET
requests are passed as URL parameters. Arguments in POST requests are passed as
JSON.### Status and Errors
HTTP status returned will always be 200, 400, or 404.404 occurs when requesting an unknown URL / API.
400 occurs for
* Bad POST arguments (must be application/json or malformed JSON)
* Bad QUERY arguments (specifying the same var multiple times)200 will be returned for everything else, including *invalid* API argument
values.### HTTP 200 Responses
All responses will be either JSON (`application/json`) or JSONP
(`application/javascript`) with JSON being the default format. To have JSONP
returned, specify a URL parameter `callback` with both POST and GET requests.All responses (errors and non-errors) have `code` and `msg` fields. Responses
which have a 200 code also have a `data` field with additional information.### Other conventions
* Numbers will be returned as hex formatted (0xABCD) strings.
* Input numbers must be provided in hex form
* `ea` is commonly used as address
* Color input is RRGGBB format in hexAPI
---
### info : Meta information about the current IDB**Example:**
curl http://127.0.0.1:8899/ida/api/v1.0/info
### cursor : Get and set current disassembly window cursor position
**Example:**
curl http://127.0.0.1:8899/ida/api/v1.0/cursor
curl http://127.0.0.1:8899/ida/api/v1.0/cursor?ea=0x89ab
### segments : Get segment information
**Example:**
curl http://127.0.0.1:8899/ida/api/v1.0/segments
curl http://127.0.0.1:8899/ida/api/v1.0/segments?ea=0x89ab
### names : Get name list
**Example:**
curl http://127.0.0.1:8899/ida/api/v1.0/names
### color : Get and set color information
**Example:**
curl http://127.0.0.1:8899/ida/api/v1.0/color?ea=0x89ab
curl http://127.0.0.1:8899/ida/api/v1.0/color?ea=0x89ab?color=FF0000
API To Do List
--------------
* queryAdding New APIs
---------------
### Registering handlers
* HTTPRequestHandler.prefn
* HTTPRequestHandler.postfn
* HTTPRequestHandler.route### Decorators for parameter checking
* @check_ea
* @require_params### Exceptions
* IDARequestError