Interactive Disassembler

From Wikipedia, the free encyclopedia

The Interactive Disassembler, more commonly known as simply IDA, is a commercial disassembler widely used for reverse engineering. It supports a variety of executable formats for different processors and operating systems. It also can be used as a debugger for Windows PE executables.

Although IDA performs a large degree of automatic code analysis to a certain extent, leveraging cross-references between code sections, knowledge of parameters of API calls, and other information, it is focused on being interactive. A typical IDA user will begin with an automatically generated disassembly listing and then rename, annotate, or otherwise add information to the listing, until it becomes clear what it does, creating an effective reverse-engineering.

Created as a shareware application by Ilfak Guilfanov, it was later turned into a commercial product by DataRescue, a Belgian company, who currently maintains and supports an improved version called IDA Pro. Along with the Professional version, DataRescue has constantly made a freeware version available.

Ilfak is the main author of IDA (Interactive Disassembler Pro).

Contents

[edit] Scripting

"IDC scripts" make it possible to extend the operation of the disassembler. Some helpful scripts are provided, which can serve as the basis for user written scripts. Most frequently scripts are used for extra modification of the generated code. For example, external symbol tables can be loaded thereby using the function names of the original source code. There are websites devoted to IDA scripts and offer assistance for frequently arising problems.

Users have created plugins that allow other common scripting languages to be used instead of, or in addition to, IDC. IdaRUB supports Ruby and IDAPython adds support for Python.

[edit] Supported systems/processors/compilers

  • Operating Systems
    • Windows
    • Linux
    • Netware
    • OS/2
    • Geos
  • Processors
    • Intel 80x86 family
    • ARM Risc
    • Motorola 68xxx/h8
    • Zilog Z80
    • MOS Technology 6502
    • Intel i860
    • DEC Alpha
    • Analog Devices ADSP218x
    • Angstrem KR1878
    • Atmel AVR series
    • DEC series PDP11
    • Fujitsu F2MC16L/F2MC16LX
    • Fujitsu FR 32-bit Family
    • Hitachi SH3/SH3B/SH4/SH4B
    • Hitachi H8: h8300/h8300a/h8s300/h8500
    • Intel 196 series: 80196/80196NP
    • Intel 51 series: 8051/80251b/80251s/80930b/80930s
    • Intel i960 series
    • Intel ia64 series
    • Jave virtual machine
    • MIPS: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
    • Microchip PIC: PIC12Cxx/PIC16Cxx/PIC18Cxx
    • Microsoft Visual Studio .NET: cli/net
    • Mitsubishi 7700 Family: m7700/m7750
    • Mitsubishi m32/m32rx
    • Mitsubishi m740
    • Mitsubishi m7900
    • Motorola DSP 5600x Family: dsp561xx/dsp5663xx/dsp566xx/dsp56k
    • Motorola ColdFire
    • Motorola HCS12
    • NEC 78K0/78K0S
    • PA-RISC
    • PowerPC
    • SGS-Thomson ST20/ST20c4/ST7
    • SPARC Family
    • Samsung SAM8
    • Siemens C166 series
    • TMS320Cxxx series
  • Compiler
    • Borland C++ 5.x for DOS/Windows
    • Borland C++ 3.1
    • Borland C Builder v4 for DOS/Windows
    • GNU C++ for Cygwin
    • MS C (16 bit) for DOS/Windows
    • MS Visual Studio .NET
    • MS Visual C++ v6
    • Watcom C++ (16/32 bit) for DOS/OS2
    • ARM C v1.2
    • GNU C++ for Unix/common

[edit] References

This article or section needs sources or references that appear in reliable, third-party publications. Alone, primary sources and sources affiliated with the subject of the article are not sufficient for an accurate encyclopedia article. Please include more appropriate citations from reliable sources.
This article has been tagged since March 2007.

[edit] External links