OllyDbg is a 32-bit assembler-level analyzing debugger for Microsoft Windows with an intuitive interface. Emphasis on binary code analysis makes it particularly useful in cases where source is unavailable.
It predicts contents of registers, recognizes procedures, API calls, switches, tables, constants and strings, locates routines from object files and libraries, allows custom labels and comments in disassembled code, writes patches back to executable file and more.