PDA

View Full Version : IDAQ: The result of 7 months at Hex-Rays


Daniel Pistelli
August 2nd, 2010, 23:44
It is not a mystery that Hex-Rays is preparing for the IDA 6.0 beta program. In this post I'll write a bit about my personal, behind the scenes, experience with the project.

It took me 7 months to port/rewrite the old VCL GUI of IDA Pro. The new GUI, as it had been already anticipated months ago on the official blog, is Qt based.

The main difficulties I have faced were mostly not of technical nature, although it was a complex task, but psychological ones. It took a lot of patience and it was very difficult every morning to go to work and to have to see an unfinished product with the old GUI reminding myself how much was still to do.

What follows is a rough roadmap of my work, I'll mention only the milestones and not the hundreds of smaller parts. It has to be noted that at least for what concerns the docking I wrote most of it before joining Hex-Rays to accelerate the development of the actual GUI once in the company. While Qt has a docking system, it is not as advanced as the one used by the VCL GUI, which is a commercial control. So, I wrote a docking system myself in order to offer all the advanced features the old GUI had.

January: first impact with the code. Took me a week to grasp the initial concepts to start. Basically at the end of the month I could display disassembly and graph mode of a file. Also, hints, graph overview and disassembly arrows were implemented.

February: implemented chooser and forms (which I actually completely changed internally, that's why I had to improve them again later on to obtain better backwards compatibility).

March: marathon month. Implemented every day one or more dialogs/views such as: hex view, cpu regs view, enum view, struct view, options, navigation band, colors, etc. etc. More than 30, some very easy, some advanced controls such as the hex view or the cpu regs view.

April: two weeks to finish the docking and smaller things.

May: two weeks to implement the desktop part (the ability to save/restore layouts and options) and smaller things.

June: fixes, help system and improved the forms implementation.

July: Hundreds of fixes for the beta.

While there will be still bugs to fix, I consider the project as completed and I wrote this post to close a chapter for myself.

Darkelf
August 3rd, 2010, 19:20
Sounds like a heavy piece of work!
Congrats Daniel.
I can hardly wait to see it.
One question: will the new GUI be available on Linux also?
That would be absolutely great.

Regards
darkelf

Daniel Pistelli
August 4th, 2010, 05:59
Yes, it will be available on Linux and OSX.

owl
August 4th, 2010, 09:33
Does the beta will be free for testing purpose?

disavowed
August 15th, 2010, 17:09
Keep up the great work!
Is there an ETA for Hex-Rays for x64?

Daniel Pistelli
August 16th, 2010, 15:36
disavowed: thanks!
There's no ETA for that. But it is on the todolist. It would be really nice to see the decompiler for x64. It's funny, I had so much things to do in these months (not only for IDA) that I didn't even have the time to play with the new arm decompiler.

owl: people with a valid license could require to be part of the beta program.