IDA 5.2

Highlights

Improved iPhone support

IDA 5.2 handles iPhone executables out of the box.

Much improved ARM and PowerPC support

The updated ARM module supports 200 new instructions. This module started with mere 38 instructions: the ARM was a small and sleek processor; now it boasts 3 different instruction encodings [arm, thumb, thumb32], dsp, floating point, vector, simd, and even java instructions!

Much improved PowerPC module

The PowerPC module has ~40 new instructions.\

Easy debugger scripts in IDC

The debugger is finally available from IDC. There is no need to write complex plugins, install event handlers and express the logic in a finite state machine form. Simple and natural functions that allow to wait for the next debugger event and continue the script without yielding control to the ida kernel have been introduced.

Improved type support

The type system has been improved to support types of abitrary length and complexity (there was a limitation of 1024 bytes per type descriptor). The user interface offers a new window to display and manipulate local types. This allows for easy migration of types from one database to another. You can even export all local types in a compiler readable form!

Detailed list of changes\

Changelist

Processor Modules

  • 6811: the output is more conforming to Motorola freeware assemblers (thanks for Alex Bratovic)

  • 68xx: CodeWarrior and GNU output support have been added by Alex Bratovic

  • ARM: add/sub instructions are better emulated

  • ARM: added bxj insn (Igor Skochinsky)

  • ARM: added one more switch pattern (Igor Skochnisky)

  • ARM: added RealView v3.1 low-endian signatures

  • ARM: added recognition of rt_switch8() function (Igor Skochinsky)

  • ARM: added support for v6ZK instructions

  • ARM: added support for VFP (vector floating point) instructions

  • ARM: added thumb32 encodings and v7 instructions

  • ARM: analysis of some pc-relative addressing modes has been improved (notable difference for iphone executables)

  • ARM: armv6 instructions are supported

  • ARM: better propagation of thumb-bit; more glue code patterns are recognized

  • ARM: better recognition of thunk functions and flow detection

  • ARM: better register tracking in the thumb mode

  • ARM: BX LR is considered as a return instruction

  • ARM: more intelligent handling of immediate values in instructions; they are converted to offsets only in the second analysis pass and only if the kernel option permits it

  • ARM: more jump tables are recognized