-
-
[讨论]关于V大POOL驱动的梗疑问~
-
发表于:
2014-5-14 08:15
5541
-
看了V大的那个老文章帖子
也看了虾总原来的帖子
V大原帖:http://bbs.pediy.com/showthread.php?t=187402
但是我自己产生了疑问
测试环境 WIN7 x86 SP1
PELoader重载NT内核
然后NtOpenProcess(0x55555555,,,)
故意触发SEH
理论上这时候应该蓝了。。。但是SEH正常执行。。这是为什么。。。
按照V大和虾总的文章意思 应该必蓝。。。
我尝试了3次结果一样。。所以很无解。。。
WINDBG跟过去 确实无法读写。。但是SEH却正常处理了。。。求解 Why?
==================================2014.5.14 8:56笔记
写了个Demo又WINDBG仔细跟了下 应该是我重定位完全用旧内核的地址原因 上面的问题就解决了
83cb2cdf 8b4304 mov eax,dword ptr [ebx+4]
83cb2ce2 e8a9a5ffff call nt!RtlIsValidHandler (83cad290)
RtlIsValidHandler的ControlPC是原内核的。。。传参居然用的EAX。。。
kd> bl
0 e 95b2e40f 0001 (0001)
1 e 83cc1f95 0001 (0001) nt!RtlLookupFunctionTable
2 e 83cc2051 0001 (0001) nt!RtlLookupFunctionTable+0xbc
3 e 83cad290 0001 (0001) nt!RtlIsValidHandler
这样的话RtlLookupFunctionTable肯定能正确返回。。。
这里产生个新问题:这样的话异常不就没问题么 那为什么V大说 很多人内核重载蓝屏因为POOL驱动
但是如此看来 如果我重定位的时候全部使用旧内核的地址 不就不存在这个问题了么(导致流程走原旧内核,但是影响不大啊)
那么 完全把地址重定位到旧内核 到底还会不会导致出现V大说的这个问题呢?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课