Adding Dynamic Analysis to IDA

In addition to being a disassembler, IDA is also a powerful and versatile debugger. It supports multiple debugging targets and can handle remote applications, via a “remote debugging server”.

Overview

Debugging files on the three platforms IDA natively runs on (i.e., Windows, Linux, Mac OS X) is straightforward, and thanks to the power of remote debugging servers, it is possible to enable debugging of any executable, from any platform!

Look at how easy we’ve made it:

There! How’s that for simplicity: from anywhere, you can debug anything!

You can be sitting at a Mac OS X machine, and get to debug Windows programs on another machine – or even in a virtual machine (that’s actually how we enable kernel debugging. See details below!)

This, of course, is just an overview. Below, you will find a detailed table describing exactly what is supported, as well as some additional notes.

Cross-Platform Debugging Is Powerful!

IDA’s Cross-Platform debugging features these characteristics:

  • Instant debugging, no need to wait for the analysis to be complete to start a debug session.
  • Easy connection to both local and remote processes.
  • Support for 64 bits systems and new connection possibilities.

Detailed Debugging Capabilities

Here are more details on how to debug specific platforms, from other platforms:

  IDA runs on Windows
IDA runs on Linux
IDA runs on Mac OS X
Additional Notes
Target Platform:
Windows 32/64-bit
Local/Remote Remote Remote On 32-bit Windows platforms, remote only.
Target Platform:
Linux 32/64-bit
Remote Local/Remote Remote On 32-bit Linux platforms, remote only.
Supported platforms: x86/x64/ARM32 Linux/ARM Android
Target Platform:
OS X x86/x64
Remote Remote Local/Remote On 32-bit Mac OS X platforms, remote only.
Target Platform:
iOS (iPhone and iPad)
Remote Remote Remote Supports remote debugging applications on iOS >= 9.0 and iPadOS >= 13.1, via Apple’s debugserver
Target Platform:
XNU
Hexley icon
Remote Remote Remote Darwin kernel debugger. OSX kernel mode debugging is supported via the builtin gdb stub for VMware Fusion (EFI firmware debugging is also supported). iOS kernel mode debugging supported via Corellium and ktrw.
Target Platform:
Bochs
Bochs Emulator Bochs Emulator Bochs Emulator
Target Platform:
GDB Server
GDB Server GDB Server GDB Server Debugger based on GDB Server. Particularly useful for windows or linux kernel debugging via VMWare, or even QEMU-based debugging.
Currently (IDA 7.4) supported processors: x86/x64, ARM/AArch64, PowerPC, MIPS, Motorola 68k, Infineon TriCore, and Renesas RH850.
Target Platform:
WinDBG 32/64-bit
Remote / / Both user-mode and kernel-mode debugging are available. 64-bit debugging is supported too. See the help page
This debugger is available only for the Windows version of IDA Pro
Target Platform:
Intel PIN
Intel PIN
Local Local / Based on Intel PIN. Especially useful for tracing but can be used as a regular debugger too.
Target Platform:
Android (Dalvik)
Remote Remote Remote Both DEX bytecode and source level debugging are available. Please note that our Linux debugger can handle native code as well.

Notes

  • All debuggers are scriptable. For more information, check out this page
  • Remote debugging tutorial is available here
  • iPhone v1.x debugger is discontinued in IDA v5.6
  • Bochs debugger is available under Linux and Mac OS X starting from IDA v5.7

Tutorials

We have written many tutorials to help get you started using the debuggers: