能力值:
( LV2,RANK:10 )
|
-
-
2 楼
不是导出函数,不能那样获取
mov edi, dword ptr [KeServiceDescriptorTable]
mov ebx, [edi]
mov esi, [ebx+(115h*4)]
mov ecx,9
mov NtWriteVirtualMemory_addr ,esi
mov edi,offset NtWriteVirtualMemory_oldbyte
rep movsb
mov ecx,9
mov esi, [ebx+(0bah*4)]
mov NtReadVirtualMemory_addr,esi
mov edi,offset NtReadVirtualMemory_oldbyte
rep movsb
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
你这个好象是从SSDT表获取哟。。。可以正确获取到么?
还有里面的115h*4这个115H是怎么来的。。115是他的序号。。可是H呢?
还有下面的0bah*4呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
当然可以
如果你要考虑平台
那就需要多写点代码
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
typedef struct _SystemServiceDescriptorTable
{
PVOID ServiceTableBase;
PULONG ServiceCounterTableBase;
ULONG NumberOfService;
ULONG ParamTableBase;
}SystemServiceDescriptorTable,*PSystemServiceDescriptorTable;
// KeServiceDescriptorTable为ntoskrnl.exe导出
extern PSystemServiceDescriptorTable KeServiceDescriptorTable;
OutNtAddr = (ULONG)KeServiceDescriptorTable->ServiceTableBase + 0x115 * 4
这样获取也可以么?好象这样又不对
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
ULONG Address;
Address = (ULONG)KeServiceDescriptorTable->ServiceTableBase + 0x115 * 4
XXX = *(ULONG*)Address
xxx为你要的地址
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
多谢。我用你之前说的汇编的办法成功获取到了
|
|
|