IDA Pro: what an SDK shouldn't be

Greetings,





This article will be about how not to do it when developing an SDK for your product. And an example, one might even say, the most striking, will be IDA Pro. Those who at least once developed something for it and tried to support, while reading these lines, for sure, now they shuddered and became covered with cold sweat. Here I have gathered experience in supporting projects, starting with IDA v6.5, and ending with the latest version at the time of this writing - v7.5. In general, they drove.



Short description



The IDA Pro SDK allows you to develop the following types of applications:



  • Loaders of various formats
  • Processor modules
  • Plugins that extend the functionality (processor modules, interface, etc.)
  • IDC scripts (their own language) and Python scripts (use third-party development IDAPython, which has become an integral part of IDA)


Hex-Rays, SDK — 10000 USD. — , Support-, . , : , , ; , , . , (), .





, - IDA, SDK, , , , . :



1) , , , - doxygen- API, , , , , .., .



IDA API , — . , , IDA , .



2) callback-, , , ( NULL) — . — . , .. ( — -), , " ". , x64dbg/ollyDbg, — idaq.exe/ida.exe, , , , 0x00000000.



, , 200MB dmp-, IDA… .



3) IDA Pro — . , — , , .. :





legacy-, . . , , , / .



, : .. SDK, , , , , , .



Hex-Rays? , ! , , MS-DOS (, , - ). , , . , IDA , , (flat), MS-DOS "" ! IDA . , flat, ( ).



SDK . ( 6.x 7.x) - : , , API, , . .



- , , , . ! , : IDA 7.0 SDK: Porting from IDA 4.9-6.x API to IDA 7.0 API, . , , .. , , , , , . , C/C++ , - 5-6 SDK.



, , , — .





- - Motorola 68000 IDA. SDK (, , IDA Pro ), , . - — PS3, , , SDK.



, SDK , , , :





cpp-, #include? . , PS3, - — Sega Mega Drive.



: , , . , , , , ...





IDA, m68k, ( " IDA Pro. ").



, ! , SDK… debugger_t, , , , IDA. .



SDK… x64, x86! Gens, , x64, . , x64, SDK, , , .





SDK IDA Pro ; , — , , .



/ - SDK, , — , ! , IDAPython. , , , , , .



Github , IDA v7.x. , ? , , , API .



IDA Pro Book



I would also like to recall one invaluable book that once helped me a lot, but which is now absolutely useless for a developer of IDA plugins - IDA Pro Book by Chris Eagle . Everything described in it refers to version 6.x (approximately v6.5-v6.8). Almost everything has changed since then.



Thank.




All Articles