能力值:
( LV9,RANK:610 )
|
-
-
2 楼
1.因为KeServiceDescriptorTable是被ntosXX.exe导出的,所以声明之后就可以用。包括其它已导出但无文档的函数,只要有正确的原型都可以使用。
2.这个函数对应的ID是由当前版本的系统决定的,在ntdll.dll中就决定了~
所以通常做法就是从ntdll.dll中取得ID,然后在SSDT中读取
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
首先感谢achillis。。。
既然KeServiceDescriptorTable是被ntosXX.exe导出的,可以理解为ntosXX.exe将这个函数导入到内存中去了吗?那么编译器或者是其他什么东西,它是怎么道KeServiceDescriptorTable的地址的呢????
重NTDLL里面读取ID号,原来是这样,谢谢 如果能在具体说一下怎么重NTDLL读取ID号,或者什么工具,那就完美了
|
能力值:
( LV9,RANK:610 )
|
-
-
4 楼
1.地址定位这个工作是在PE加载到内存的时候的完成的,就像一个程序使用了MessageBox,那么它所调用的这个函数的地址是在MessageBox所在的user32.dll加载之后确定的~
2.这个你在ntdll.dll中随便找个Native API反汇编一下,可以看到类似这样的代码:
MOV EAX,00000029 //这个0x29就是你要的ID了,其它类推~
...
SYSENTER//进入核心态
RET 0020
具体做法请自己找一份SSDT HOOK代码参考
|
能力值:
( LV9,RANK:610 )
|
-
-
5 楼
一个例子:
http://bbs.pediy.com/showthread.php?t=63629
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我想我已经差不多明白了。。再次感谢achillis。。。
|
能力值:
( LV12,RANK:240 )
|
-
-
7 楼
ntoskrnl.lib 导出
|
|
|