能力值:
( LV4,RANK:50 )
|
-
-
2 楼
你不知道索引号还HOOK个毛的SSDT
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
不懂叫个毛
我从0到400都hook了,我知道要调用的是哪个索引?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
如果hook函数少的话。直接在每一个hook函数里面写死索引即可。
如果多的话。而且共用hook函数可以根据返回地址。取上一条调用指令。解析出被hook函数的地址。根据这个地址得到原来的索引。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
跟我想的一样,还是得这样。。谢谢大神。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
要不还是你获得一下eax的值好了。这个就是在ssdt表中的索引。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
eax是我hook的函数地址。。。那样必须hook kifast才能得到索引
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
.text:0046A7C2 mov ebx, [edi+eax*4]
.text:0046A7C5 sub esp, ecx
.text:0046A7C7 shr ecx, 2
.text:0046A7CA mov edi, esp
.text:0046A7CC test byte ptr [ebp+72h], 2
.text:0046A7D0 jnz short loc_46A7D8
.text:0046A7D2 test byte ptr [ebp+6Ch], 1
.text:0046A7D6 jz short loc_46A7E4
.text:0046A7D8
.text:0046A7D8 loc_46A7D8: ; CODE XREF: sub_46A611+1BFj
.text:0046A7D8 cmp esi, ds:MmUserProbeAddress
.text:0046A7DE jnb loc_46A98C
.text:0046A7E4
.text:0046A7E4 loc_46A7E4: ; CODE XREF: sub_46A611+1C5j
.text:0046A7E4 ; DATA XREF: sub_42BD16:loc_42BD4Bo
.text:0046A7E4 rep movsd
.text:0046A7E6 call ebx
eax就是index
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
[QUOTE=丘比龙;1318878].text:0046A7C2 mov ebx, [edi+eax*4]
.text:0046A7C5 sub esp, ecx
.text:0046A7C7 shr ecx, ...[/QUOTE]
我是win7的不一样,反正我这里eax就是自己的函数地址
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
[QUOTE=丘比龙;1318878].text:0046A7C2 mov ebx, [edi+eax*4]
.text:0046A7C5 sub esp, ecx
.text:0046A7C7 shr ecx, ...[/QUOTE]
你这个情况是原始SSDT的情况,不具备通用性。
32位下很多时候SSDT是被HOOK的,你直接取EAX取到的不见得是Service Index
所以 要么硬编码,要么就去挂Ki
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
ki被检测
|
|
|