关于单机内核调试.

先说下单机内核调试的模型:

单机内核调试,即在同一个系统中进行内核调试,这中间比较出名的调试工具有SoftICE和Syser.

而windbg的本地内核调试只是通过ZwSystemDebugControl()函数来实现相应的查看功能,

并不能进行下断点,跟踪,执行.并不属于严格意义上的单机内核调试.

一个单机内核调试模型图,大致如下:

+-----------------------------------------------------------------------------+

+ (目标机器 Target Computer)                                                                    +

+----------------------(调试程序)----------------(应用程序)------------------- +

++===============User-Mode====Kernel-Mode=============++

+(内核模块,操作系统内核,驱动程序等)                                                             +

+----------------------(显示设备驱动) (输入设备驱动)-------------------------- +

+---------------------(中断处理列程,主要是针对键盘鼠标,以及int1,int3之类的)----+

+---------------------(硬件和固件)--------------------------------------------+

@中断处理函数:

    接收和处理CPU的中断和异常,特别是与调试相关的异常(INT1,INT3等),以及与输入输出相关的异常.

@显示设备设备驱动和输入设备驱动:

   为了能在被调试系统被中断的时候,调试器能够与用户进行交互--接收输入,显示输出,所以调试器通常

要在系统中安装自己的输入输出驱动程序,包括鼠标,键盘和显卡.

PS 一点关于Kernel Debugger 调试的资源和链接(thanks for Robinh00d):

基于VT的hyperdbg
http://code.google.com/p/hyperdbg/

LINUX下的linice
http://www.linice.com

rr0d
http://rr0d.droids-corp.org/

bugchecker
http://bugchecker.com

基于硬件虚拟化的调试器
http://code.google.com/p/virtdbg/

Live Kernel-Mode Debugger 
http://code.google.com/p/ngdbg/

OpenDbg
http://code.google.com/p/opendbg/

MDB
http://code.google.com/p/merkeydebugger/

aphrodite-dbg 
http://code.google.com/p/aphrodite-dbg/

AADP反反调试插件
http://code.google.com/p/aadp/

虚拟机-恶意程式攻防的新战场
http://www.hitcon.org/hit2010/download/6_New%20Battlefield%20For%20Malware%20Game.pdf

反汇编引擎
disorm
http://code.google.com/p/distorm/

http://code.google.com/p/libdasm/
•Distorm64 
•BeaEngine 
•libdisasm 
•Hacker Disassembler Engine 
•libdisassemble 
•Udis86 

posted on 2011-08-10 18:57  coltor  阅读(1168)  评论(0编辑  收藏  举报