首页
社区
课程
招聘
[求助]WIN7X64下如何进入新建的内核调试流程
发表于: 2017-9-7 11:30 3359

[求助]WIN7X64下如何进入新建的内核调试流程

2017-9-7 11:30
3359
抛开PG的前提条件下
问题1:
MSR寄存器0xC0000082里面存放的是KiSysCall64的地址,通过替换这个地址来进入自己的调试流程。
测试的时候VMware设置为多个处理器,64位调试器可以正常进入自己的调试流程。
但是如果VMware设置为1个处理器,64位调试器还是走的原来的KiSysCall64函数。大家有遇到过这样的问题吗?
多核的处理代码如下:
for (i = 0; i < KeNumberProcessors; i++)
     KeSetSystemAffinityThread ((KAFFINITY) ((ULONG_PTR)1 << i)); 
     __writemsr(0xC0000082, g_NewKiSysCall64); 
     KeRevertToUserAffinityThread ();
}
问题2:
测试的时候发现32位的调试器根本就不是从MSR寄存器0xC0000082里面读取KiSysCall64地址的,所以这种方法根本就不能用在32位的调试器上。
要兼容,32,64位调试器,我想到的方法有下面几种:
1.inline hook KiSysCall64
2.直接inline hook各个调试相关的函数。
3.在R3就HOOK各个调试相关的函数,通过自己的方式来调用内核相关调试函数。
感觉这些方法都不是很好,大家有没有其他好一点的方法?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
2
IA32_SYSENTER_EIP 
2017-9-7 13:37
0
游客
登录 | 注册 方可回帖
返回
//