IDA Disassembler and Debugger
IDA is an advanced programmable, interactive, multi-processor disassembler for Windows, Linux or Mac OS X that combined with a local and remote debugger and augmented by a complete plugin programming environment. IDA interactivity allows you to improve disassemblies in real time. IDA explores binary programs, for which source code isn't always available, to create maps of their execution.
The real interest of a disassembler is that it shows the instructions that are actually executed by the processor in a symbolic representation called assembly language. If the friendly screen saver you have just installed is spying on your e-banking session or logging your e-mails, a disassembler can reveal it. However, assembly language is hard to make sense of. That's why advanced techniques have been implemented into IDA to make that code more readable, in some cases, quite close to the original source code that produced the binary program.
The debugger in IDA complements the static analysis capabilities of the disassembler: by allowing to single step through the code being investigated, the debugger often bypasses the obfuscation and helps obtain data that the more powerful static disassembler will be able to process in depth. IDA can be used as a local and as a remote debugger on the 80x86 (typically Windows/Linux) and the ARM platform (typically Windows CE PDAs). Remote debuggers are very useful when one wants to safely dissect potentially harmful programs.
Download free IDA 5 Disassembler and Debugger for Windows (for no commercial use)