首页
社区
课程
招聘
[求助]请问如何理解KeServiceDescriptorTable.ServiceTableBase[*(PULONG)((PUCHAR)_function+1)]
发表于: 2008-4-10 10:57 8601

[求助]请问如何理解KeServiceDescriptorTable.ServiceTableBase[*(PULONG)((PUCHAR)_function+1)]

2008-4-10 10:57
8601
#define SYSTEMSERVICE(_function)KeServiceDescriptorTable.ServiceTableBase[*(PULONG)((PUCHAR)_function+1)]
他这样调用OldNtCreateFile=(NTCREATEFILE)(SYSTEMSERVICE(ZwCreateFile));
也就是变成了
KeServiceDescriptorTable.ServiceTableBase[*(PULONG)((PUCHAR)ZwCreateFile+1)]
我是这样理解的

ServiceTableBase[index]
index=ZwCreateFile函数地址+1后得到的新地址中的内容
相当于
mov eax,ZwCreateFile
add eax,1
mov index,[eax]
难道那个位置中的内容正好是ServiceTableBase的一个index?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2559
活跃值: (176)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
http://www.3800hk.com/news/w31/6643.html

:u ZwOpenKey
  ntoskrnl!ZwOpenKey
  0008:80400E2A B867000000       MOV     EAX,00000067            
                |                       |_ServiceID
                |_机器码(其中第二字节即ZwOpenKey线性地址加一处就是ServiceID)
  0008:80400E2F 8D542404         LEA     EDX,[ESP+04]
  0008:80400E33 CD2E           INT     2E
  0008:80400E35 C20C00         RET     000C
2008-4-10 13:37
0
雪    币: 2559
活跃值: (176)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
这篇文章讲的也很清楚了
     http://bbs.pediy.com/showthread.php?t=42422&highlight=%E5%BF%85%E5%A4%87+%E5%A4%87%E7%BB%9D+%E7%BB%9D%E6%8A%80
2008-4-10 13:53
0
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢
|_机器码(其中第二字节即ZwOpenKey线性地址加一处就是ServiceID)
没想到还真是这样。。。。
2008-4-10 14:12
0
雪    币: 2559
活跃值: (176)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
ZwCreateFile(...) disassembled

      mov eax, 17h         // system call # is 0x17 for NT (0x20 for 2k, 0x25 for XP)
      lea edx, [esp+4]           // make edx point to function params (user-mode stack)
                           // lea : loads edx with address of user args
      int 2Eh                   // execute sys call trap for NT, 2k on x86
                           // (SYSENTER is used for XP,2003 on x86)
      ret 2Ch
主要是这种函数的实现决定的,它的第一条指令是mov eax,id,看看原始数据就更清楚了!
2008-4-10 14:19
0
游客
登录 | 注册 方可回帖
返回
//