This is a plugin to embed an IPython kernel in IDA Pro. The Python ecosystem has amazing libraries (and communities) for scientific computing. IPython itself is great for exploratory data analysis. Using tools such as the IPython notebook make it easy to share code and explanations with rich media. IPython makes using IDAPython and interacting with IDA programmatically really fun and easy.
You can just use IPython qtconsole for a better interactive python shell for IDA.
You can also use the QT console to graph things. This is an example creating a bar chart for the occurrences of each instruction mnemonic in a function (in notepad.exe).
Another useful case is using IPython notebooks.
More examples..soon...
IDA is predominantly single threaded application, so we cannot safely run the kernel in a separate thread. So instead of using another thread a hook is created on the QT process events function and the do_one_iteration
method of the ipython kernel is executed each frame.
I suggest using the Anaconda distribution of Python as it comes with all the required python libraries pre-built and installed. To get IDA to use Anaconda, simply set the PYTHONHOME enviroment variable. Alternatively you can install IPython and the dependencies separately.
This plugin should work on all 6.X x86 QT versions of IDA on Windows.
plugins
and python
directories under IDA's installation directory.ipython qtconsole --existing kernel-4264.json
idc
directory to your IDA directory. (the nothing.idc
script is used to pass command line parameters to the plugin)idaq.exe
and idaq64.exe
executables in the kernel.json
under the notebook\kernels\ida32
and notebook\kernels\ida64
directories respectivelyjupyter-kernelspec install
(e.g. jupyter-kernelspec install --user notebook\kernels\ida64
)IDA32
or IDA64
kernels, depending on your desired IDA version.mkdir build
cd build
cmake -G "Visual Studio 11" -DPYTHON_DIR="<YOUR_PYTHON_DIR>" -DIDA_SDK="<YOUR_IDASDK_LOCATION>" -DIDA_DIR="<YOUR_IDA_DIRECTORY>" ..
e.g.
cmake -G "Visual Studio 11" -DPYTHON_DIR="C:\Anaconda" -DIDA_SDK="C:\dev\IDA\idasdks\idasdk64" -DIDA_DIR="C:/Program Files (x86)/IDA 6.4" ..
cmake --build . --config Release
So far only tested with "Visual Studio 11" compiler.
0.5
0.4
0.3
0.2
0.1