If you build C/C++ IDA Plugins with Qt you might have ran into this crash:
For a Windows executable exploratory data analysis project using IDA Pro I needed to display some graphs. As is my usual planed on doing this from a Windows IDA C/C++ plug-in.
I looked at doing this several ways. One idea was to just dump out a text file in the Graphviz DOT language and using a Graphviz viewer to see it. Couldn’t be much simpler than that, but then looking for possible Qt options I ran into the awesome QCustomPlot.
With a little work I got it going in IDA:
Back in Part 1 we did the Qt 5.4.1 install steps.
Part 2: Extension setup and update instructions
Now we need to configure the Visual Studio QT5 extension.
1) Startup Visual Studio 2015
2) Click on the QT5 menu to open it up and select “Qt Options”.
If it says something “You must install Template”, click on “Yes”.
This is a rough and dirty update for my series “Qt 4.8.4 on Windows for IDA Pro C/C++ plug-in development”.
With the Qt environment there is a build setup with it’s own tool-chain (located in your “C:\Qt\4.8.4\bin” folder).
I’ll briefly cover the key components here:
The most basic C++ object most everything is derived from is the “QObject” class, then from there the QWidget class is the base class of all user interface objects that you’ll see a lot of it. Another key one is QApplication but since we’re making plug-ins we’ll only need to occasionally reference IDA’s own instance of this class.
When you work with UIs with Qt you’ll want to use the Qt designer. It’s a UI design tool similar to what’s in VS (Visual Studio) with it’s dialog and forums editors.
Back in part 1 I showed you the first step in setting up Qt 4.8.4 with Visual Studio 2013 so you can add Qt to your IDA Pro plug-ins.
Unfortunately Visual Studio extensions are version specific. The one that comes with 4.8.4 is made for VS2010 and probably without doing some major work you won’t get it to build for VS2013.
Go to the page http://www.qt.io/download-open-source/#section-2 and under “Other Downloads”, download the the latest “Visual Studio Add-in 1.xx for Qt5”. Note just this add-in download, not the whole large Qt5 package.
Install it and now a “QT5” menu should be added to visual studio. From there you can launch the Qt designer to build custom UIs, etc.
(Note this an advanced article. It assumes you know advanced C++, IDA Pro and it’s plug-in environment, etc).
Now that IDA Pro has completely moved to Qt for it’s user interface you can really expand on it to make your own custom Qt user interfaces in IDA. You’re not locked in to using just IDA’s varied but basic UI system.
If you want to use Python for IDA there is already a featured setup using PySide but then maybe you want to use Qt from IDA’s C/C++ plug-in SDK (for speed and resource control, etc.)
The development environment for IDA Qt is version 4.8.4 and Visual Studio 2010.
You can clearly see this looking at the DLLs in the IDA Pro folder:
Today I present IDA WaitBoxEx:
A full featured IDA Pro SDK wait box replacement with progress bar and customization options.
Determinate style progress box:
Here is a little utility I wrote to list IDA Pro plugin information.
About 30 plugins come with the default IDA install (~60 if you count the .p64 versions), then you start adding your own and with others off the web it can get a little difficult to manage.
I’m putting my site back together here after I let it all go “404” last year.
I restored my old blog, put up a new clean forum, and I’m in the process of adding some other new stuff.
My old site was mainly centered around my Macromonkey scripting system.
I plan on bringing part of that back, but the site will mainly focus on my reverse engineering, and IDA Pro plugin development stuff.