看流星社区

 找回密码
 注册账号
查看: 2001|回复: 0

内核调试相关变量说明

[复制链接]

该用户从未签到

发表于 2017-6-1 17:26:06 | 显示全部楼层 |阅读模式
KdInitSystem
函数让内核调试引擎初始化




KiDebugRoutine
当系统分发异常时会调用KiDebugRoutine变量所指向的函数 KiDebugRoutine写入函数地址KdpStub(禁止调试) /KdpTrap(开启调试)




KeUpdateRunTime
系统的时间更新函数




KdCheckForDebugBreak
检查调试器是否发出了中断命令




KdpBreakpointTable
内核调试引擎使用一个数组来记录断点




KdEnterDebugger
将系统内核中断到调试器




KdExitDebugger
从调试器回到系统内核




KdEnableDebugger
启用内核调试器




KdDisableDebugger
禁用内核调试器




KdChangeOption
访问和修改内核中与内核调试器有关的状态。




KdReportTraceData
与ETW机制配合将追踪数据通过内核调试通信输出到调试器所在的主机上




KdSendPacket
KDCOM函数,发送数据包




KdReceivePacket
KDCOM函数,接收数据包




KeNumberProcessors
全局变量,标记CPU个数




KiSystemStartup
Ntoskrnl.exe的入口函数,调用KiSystemStartup




KiSystemStartup
KiSystemStartup为每个CPU调用HalInitializeProcessor和KiInitializeKernel


KiInitializeKernel
本函数在系统刚刚被启动而没有被完全初始化前被调用,它将初始化系统数据结构(KiInitSystem),初始化idle线程和进程结构体(KeInitializeThread),初始化CPU控制块(KeInitializeProcess),调用ExpInitializeExecute函数,开始阶段0的进一步初始化工作。本函数在系统发现新的CPU时也将被调用。
VOID
KiInitializeKernel (
IN PKPROCESS Process,
IN PKTHREAD Thread,
IN PVOID IdleStack,
IN PKPRCB Prcb,
IN CCHAR Number,
PLOADER_PARAMETER_BLOCK LoaderBlock
)

ExpInitializeExecute
本函数在主引导CPU上执行HalInitSystem(HalInitSystem为每个CPU准备中断控制器,并配置系统时钟中断,用于CPU的计时工作)。然后启动系统中断,接下来的函数调用顺序如下
CmpInitSystemVersion->ExInitSystem->KeNumaInitialize->DbgLoadImageSymbols->CmpInitSystemVersion->
ExInitializeHandleTablePackage->ObInitSystem->SeInitSystem->PsInitSystem->PpInitSystem->DbgkInitialize




PsActiveProcessHead
全局变量,指向系统中的所有进程结构链表




SMSS.EXE
会话管理器进程。创建windows子系统和登录进程WinLogon.EXE。




WinLogon.EXE
创建LSASS本地安全子系统和系统服务进程Services.EXE



KdpDebuggerDataListHead
全局变量,调试器数据链表




KdDebuggerDataBlock
数据结构,该结构包含了内核基地址、模块链表指针、调试器数据链表指针等重要数据,调试器需要读取这些信息以了解目标系统




KdComPortInUse
全局变量,HAL模块中所定义的全局变量,记录下已被内核调试使用的COM端口




KdPitchDebugger
KdDebuggerEnabled
全局变量,用来标识内核调试是否被启用
开启调试状态:*(PBYTE)KdDebuggerEnabled=0x01;
禁止调试状态:*(PBYTE)KdDebuggerEnabled=0x00;




KiDebugRoutine
函数指针,内核调试引擎的异常处理回调函数指针。当内核调试引擎活动时,它指向KdpTrap函数,否则指向KdpStub函数




KdpBreakpointTable
结构数组类型,用来记录代码断点,每个元素为一个BREAKPOINT_ENTRY结构,用来描述一个断点,包括断点地址。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-19 17:03

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表