Immunity Debugger is a powerful new way to write exploits, analyze malware, and reverse engineer binary files. It builds on a solid user interface with function graphing, the industry's first heap analysis tool built specifically for heap creation, and a large and well supported Python API for easy extensibility. A debugger with functionality designed specifically for the security industry Cuts exploit development time by 50% Simple, understandable interfaces Robust and powerful scripting language for automating intelligent debugging Lightweight and fast debugging to prevent corruption during complex analysis Connectivity to fuzzers and exploit development tools
The Best of Both Worlds Immunity Debugger's interfaces include the GUI and a command line. The command line is always available at the bottom of the GUI. It allows the user to type shortcuts as if they were in a typical text-based debugger, such as WinDBG or GDB. Immunity has implemented aliases to ensure that your WinDBG users do not have to be retrained and will get the full productivity boost that comes from the best debugger interface on the market.
Commands can be extended in Python as well, or run from the menu-bar. Python commands can also be run directly from our Command Bar. Users can go back to previously entered commands, or just click in the dropdown menu and see all the recently used commands. Remote command bar From the command line menu, you can choose to start a threaded command line server. so you can debug remotely from another computer: Python Scripting Python scripts can be loaded and modified during runtime. The included Python interpreter will load any changes to your custom scripts on the fly. Sample scripts are included, as is full documentation on how to create your own. Immunity Debugger's Python API includes many useful utilities and functions. Your scripts can be as integrated into the debugger as the native code. This means your code can create custom tables, graphs, and interfaces of all sorts that remain within the Immunity Debugger user experience. For example, when the Immunity SafeSEH script runs, it outputs the results into a table within the Immunity Debugger window. Other scripts can ask for user input with dialogs and combo boxes: Having a fully integrated Python scripting engine means you can easily paint variable sizes and track variable usage, which in turn comes in handy when trying to automatically find bugs! Python Hooks Often you will want to run a Python script on certain program events, for example when a breakpoint is hit or an exception is caused. Immunity Debugger hook support includes many debugger events, and more are added with every release. Built in Graphing Another Immunity Debugger feature is the capability of creating function graphs. Our Python VCG library will create a window inside Immunity Debugger at the click of a button to graph your selected function. No third party software is required. Immunity Debugger is light Immunity Debugger strives to absorb as few resources on the system as possible. Being too CPU-heavy will cause heap overflows and other complex vulnerabilities to behave differently than they would under normal load. Likewise, fuzzing and other vulnerability analysis is only possible when the debugger is not causing undue system strain. Immunity Debugger exposes the information you need Most debuggers offer only one method to allow you to attach to a process of interest - the pid and the process name. Immunity Debugger offers the pid, process name, services within that process, TCP/UDP ports listened to by that process, complete binary name, and window name. This allows quick and easy access to the exact process you wish to analyze.
The number one request this month was "Please implement a Python shell so I can write scripts and play with immlib features on the fly!". This is now done. Enjoy! Next to that we continued our efforts to improve the overall debugging experience with two new libraries, libstackanalyze and Ero's Carrera pefile and two new scripts: searchcrypt and stackvar. The Immunity Debugger engine has also undergone changes to improve reliability issues, fix reported memleaks and remove some well-know bugs used for packers such as the printfloat format error (a.k.a the FLD bug).
1.1 Build 0 August 30, 2007 [quote]New Features: o Interactive Python Shell added o Lookaside enhanced output + Discovery option o libdatatype "Get" Function o Get OS information methods o Ero Carrera's pefile.py (http://code.google.com/p/pefile/) o Python engine rewritten to properly use thread locking/unlocking o Added ignoreSingleStep method for immlib (TRANSPARENT + CONVENTIONAL) o Attach process window is now dynamically searchable o Added clean ID memory methods inside immlib o Added Stack analyzation library (libstackanalyze) o Fixed some memleak on Disasm o Fixed wrong arguments on Disasm operand o Improved Patch command o Safeseh moved into a PyCommand
New Scripts: o searchcrypt PyCommand o stackvars PyCommand o search PyCommand
Bug Fixes: o Solved 'ij' issue inside attach window o Fixed VCG parser (Blocks display complete address now) o Fixed traceback error when trying to graph and not attached o Fixed printfloat() format error o Fixed ret value of Getaddrfromexp in case of non-existing expression