我是靠谱客的博主 追寻豆芽,最近开发中收集的这篇文章主要介绍内核调试相关变量说明,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

image011

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结构,用来描述一个断点,包括断点地址。



转载于:https://blog.51cto.com/whatday/1382201

最后

以上就是追寻豆芽为你收集整理的内核调试相关变量说明的全部内容,希望文章能够帮你解决内核调试相关变量说明所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部