NT6动态开启本地内核调试

两个未导出变量 位置在KdSystemDebugControl下
本地内核调试需要用到KdSystemDebugControl函数 要动态的内核调试就需要来看看它干了什么
PAGE:00000001404D9C00
PAGE:00000001404D9C00                 mov     [rsp+arg_0], rbx
PAGE:00000001404D9C05                 mov     [rsp+arg_8], rdi
PAGE:00000001404D9C0A                 push    r12
PAGE:00000001404D9C0C                 sub     rsp, 170h
PAGE:00000001404D9C13                 mov     r10, rdx
PAGE:00000001404D9C16                 and     [rsp+178h+var_134], 0
PAGE:00000001404D9C1B                 and     qword ptr [rsp+178h+var_130], 0
PAGE:00000001404D9C21                 and     [rsp+178h+P], 0
PAGE:00000001404D9C27                 cmp     cs:KdpBootedNodebug, 0
PAGE:00000001404D9C2E                 jnz     loc_1404DA4B7
PAGE:00000001404D9C34                 cmp     cs:KdPitchDebugger, 0
PAGE:00000001404D9C3B                 jnz     loc_1404DA4B7
PAGE:00000001404D9C41                 cmp     cs:KdDebuggerEnabled, 0
PAGE:00000001404D9C48                 jz      loc_1404DA4B7
PAGE:00000001404D9C4E                 cmp     ecx, 0Eh
PAGE:00000001404D9C51                 jg      loc_1404DA1D1
PAGE:00000001404D9C57                 cmp     ecx, 0Eh
PAGE:00000001404D9C5A                 jz      loc_1404DA112
PAGE:00000001404D9C60                 sub     ecx, 7
PAGE:00000001404D9C63                 jz      loc_1404DA0EB


比较了KdpBootedNodebug KdPitchDebugger KdDebuggerEnabled
据我的了解KdpBootedNodebug非调试为1 此值是调试模式得代表之一
KdPitchDebugger 非调试也为1
KdDebuggerEnabled 不用多说 调试为1 非调试为0
而loc_1404DA4B7是返回失败
那么不用多说了
KdpBootedNodebug = FALSE;
KdPitchDebugger = FALSE;
KdDebuggerEnabled = TRUE;


Win8/8.1:KdLocalDebugEnabled = TRUE;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值