-
-
[求助]Shadow Walker 是不是无法隐藏 非分页内存(Non paged)?
-
发表于:
2009-6-1 22:32
6062
-
[求助]Shadow Walker 是不是无法隐藏 非分页内存(Non paged)?
这几天一直在研究Shadow Walker , 原本想利用Shadow Walker 的原理,做个程序,直接隐藏指定的EPROCESS,然后当是系统在调用的时候,就返回正确的EPROCESS,如果是其他模块的调用就返回假的,思路大概就是这样。
然后写代码测试的时候发现,
如果将 ERPOCESS 所在的页的PDE(因为是大页面,所以不用PTE)设为不存在后,下一步调用 Invlpg pEprocess 就直接蓝了,这种情况在之前我想 hook NT模块所在页的时候也出现过。
或者是设置了页不存在,调用 invlpg 也没蓝,但是就是不进入我的 NewInt0E,看上去就像Shadow Walker 没有起作用一样。
后面看到EPROCESS一般是放在 80000000-9FFFFFFF这段虚拟地址的,这段地址一般是驻留的系统空间的数据和代码,由此想到EPROCESS 可能是属于非分页内存(NonPaged)数据。
然后怀疑这条路走不通,所以上来这里问一下,两个问题
(1)请问我这个思路可行么?
(2)我的实验是否表明Shadow walker 存在这样一个问题。。。
那就是只能隐藏分页内存(PAGED),一旦某块内存是非分页的(NONPAGED)那么试图用shadow Walker 的方式去隐藏,就会造成系统崩溃?
还请牛牛们指点一下。。。
[课程]FART 脱壳王!加量不加价!FART作者讲授!