Welcome to Bip’s documentation!¶
Bip is a project which aimed to simplify the usage of python for interacting with IDA. Its main goals are to facilitate the usage of python in the interactive console of IDA and for writing plugins. In a more general way the goal is to automate the recurrent task done through the python API. Bip is also developxped for providing a more oriented object, a “python-like” API and a real documentation.
This code is not complete, and a lot of features are still missing. Development is prioritized on what people ask for and what the developers use, so do not hesitate to make PR, Feature Request and Issues (including for the documentation), see Contributions for more information.
This documentation is split in several parts. The General part should allow you to start with the project including the install (Installation steps) and an overview (Overview) which explain how to use it. The Bip Project architecture allows to get a better understanding of how the project works and was intended to be used.
The main part of the documentation is split in the three parts of bip: Base interface (bip.base) containing the basic interfaces, the Hexrays interface (bip.hexrays) for manipulating hexrays functions and the GUI & Plugins interface (bip.gui) containing interface with the graphics and explaining how to developed plugins. This is mainly autodocumentation of bip objects with precisions about usage and potentially internals when necessary.
Base interface (bip.base
)¶
This regroup the part about the base interface on top of the IDA basic API.
All classes in this part are regroup in the bip.base
module.
Hexrays interface (bip.hexrays
)¶
This regroup the interface on top of the IDA Hexrays API, in particular it allows to visit the AST generated for the functions. This module will be useful only if the decompiler for the binary exist and is installed.
- Hexrays Functions
- Local variables
- Ast Nodes & Visitors
- CNode
- CNode API
- CNodeExpr API
- CNodeStmt API
- Final Expression API
- MemAccess Expression API
- Unary Operation Expression API
- Double Operation Expression API
- Other leaf Expressions API
- Final Statement API
- Loop Statement API
- Other leaf Statement API
- Methods specific to CNode implementation
- Internal Hexrays Visitor API
- CNode generation and internals
- HxCItem
GUI & Plugins interface (bip.gui
)¶
This part regroup all the functions and classes made for interfacing with the
UI and events of IDA. The most important part of this module is probably the
BipPlugin
which allow to create plugins and to define actions in IDA.
While bip can be used in normal IDA plugin and scripts, the BipPlugin
is the central element for interfacing with the GUI using bip.