-
-
[求助]WaitForSingleObject逆向求助
-
发表于: 2022-4-1 21:45 5407
-
背景:我想做一个模拟WaitForSingleObject + 逆向Windows Xp SP3
视频问题复现:
以下是文字复现地址:
*问题一:WaitForSingleObject有一个参数是TimeOut(超时),会在内核中准备一个Timer插入到全局定时器链表,然后顺着这条路,我去找了下,什么时候去访问这个全局定时器链表,原来是每次时钟中断的时候,这么去拿到定时器
KeTickCount++;
KTIMER Timer1 = KiTimerTableListHead[(KeTickCount & 0xFF) 8];
KTIMER Timer2 = KiTimerTableListHead[((KeTickCount - 1) & 0xFF) * 8];
于是乎,我就在windbg下了两个条件断点
bp /w "@eax == 0x6a" nt!KeUpdateSystemTime+0x95
bp /w "@eax == 0x6a" nt!KeUpdateSystemTime+0x95+0x20
(注:0x6a是由WaitForSingleObject插入到KiTimerTableListHead链表的下标
,由KiComputeTimerTableIndex计算出来的)
然后我本想着它最终会插入Dpc链表(KiTimerExpireDpc)到当前处理器DpcQueue中,结果KiTimerExpireDpc这个Dpc的Lock一直是被占用的,导致插入不了Dpc并且请求不了软中断
问题二:
0FFFE0080h,这个是TPR所存的值,为什么一直显示0xFF
请各位大佬帮帮忙!!!!**
赞赏
他的文章
- [讨论]关于APIC与时钟中断 4562
- [求助]WaitForSingleObject逆向求助 5408
- Windows异常记录 7012
看原图
赞赏
雪币:
留言: