Flag: Tornado! Hurricane!

OpenRCE Article Comments: Windows User Mode Debugging Internals

Article Abstract The internal mechanisms of what allows user-mode debugging to work have rarely ever been fully explained. Even worse, these mechanisms have radically changed in Windows XP, when much of the support was re-written, as well as made more subsystem portable by including most of the routines in ntdll, as part of the Native API. This three part series will explain this functionality, starting from the Win32 (kernel32) viewpoint all the way down (or up) to the NT Kernel (ntoskrnl) component responsible for this support, called Dbgk, while taking a stop to the NT System Library (ntdll) and its DbgUi component.

The reader is expected to have some basic knowledge of C and general NT Kernel architecture and semantics. Also, this is not an introduction on what debugging is or how to write a debugger. It is meant as a reference for experienced debugger writers, or curious security experts.

Full Article ...    Printer Friendly ...

Article Comments
AlexIonescu Posted: Tuesday, October 31 2006 18:10.46 CST
A PDF is also available in my repository and on the TinyKRNL site at http://www.tinykrnl.org/dbgk-1.pdf.

Part 2 will be released next week, and Part 3 the week after.

Best regards,
Alex Ionescu

JasonGeffner Posted: Tuesday, October 31 2006 23:57.37 CST
Great article! I'm looking forward to Parts 2 and 3!

anonymouse Posted: Wednesday, November 1 2006 04:13.46 CST
Neat and Simple Explanation ! looking forward to part two and part three and may be many more in the series

mugg Posted: Wednesday, November 1 2006 10:45.07 CST
Thanks for the great article!

mxatone Posted: Friday, November 10 2006 02:29.04 CST
I start making userland tracer using PaiMei framework and this article is a really good explanation of userland part of the debug system. I'm waiting next parts.

chip Posted: Monday, November 20 2006 01:07.46 CST
Thanks, It's great

tinybyte Posted: Friday, December 8 2006 15:25.33 CST
Nice stuff! Waiting for the sequels :)

NeOXQuiCk Posted: Tuesday, April 3 2007 17:55.47 CDT
Nice,thx for sharing.. its helped me a lot..


bye

shijiaoan Posted: Monday, May 4 2009 21:48.06 CDT
great

Civa Posted: Tuesday, March 9 2010 05:07.34 CST
Great article Alex!
I wonder If you can explain how can I get call stack when debugee is suspended?

Thanks alot.

Best regards,

Civa

securex0 Posted: Sunday, April 15 2012 21:55.51 CDT
Awesome jobs! I am waiting next instruction.


Add New Comment
Comment:










There are 31,311 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
hi!
Jul/01
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit