What is WinAppDbg?
The WinAppDbg python module allows developers to quickly code instrumentation
scripts in Python under a Windows environment.
It uses ctypes to wrap many Win32 API calls related to debugging, and provides
an object-oriented abstraction layer to manipulate threads, libraries and
processes, attach your script as a debugger, trace execution, hook API calls,
handle events in your debugee and set breakpoints of different kinds (code,
hardware and memory). Additionally it has no native code at all, making it
easier to maintain or modify than other debuggers on Windows.
The intended audience are QA engineers and software security auditors wishing to
test / fuzz Windows applications with quickly coded Python scripts. Several
ready to use utilities are shipped and can be used for this purposes.
Current features also include disassembling x86 native code (using the open
source diStorm project, see http://ragestorm.net/distorm/), debugging multiple
processes simultaneously and produce a detailed log of application crashes,
useful for fuzzing and automated testing.
Where can I find WinAppDbg?
Windows installer (32 bits)
Windows installer (64 bits)
What's new in this version?
In a nutshell...
* 64 bits support.
* Windows Vista and 7 support.
* Memory dumping support.
* Wait chain support.
* New tool: SelectMyParent (based on the tool by Didier Stevens).
* More code examples.
* Supports detecting the current processor architecture and Windows version.
* Crash logger works with SQLite databases in addition to the old DBM format.
It also has a smaller memory footprint now.
* Win32 API wrappers were refactored and improved. Many new definitions and
API calls were added, up to Windows 7.
* Many bugfixes as usual... :) also several improvements to make the code more
Here's the full changelog: