能力值:
( LV2,RANK:10 )
|
-
-
2 楼
大哥,取值啊*((PULONG)KeServiceDescriptorTable->pServiceTable+0x7A)
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
首先需要取值* 然后 应该是0x7A * 4
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
取出来的值和XT看到的值不一样,这是为什么?
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
404,你小子牛逼啊,啥时候请我吃鸡蛋灌饼啊
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
那就得看 KeServiceDescriptorTable你是定义成什么结构了
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
最简单的办法是
PULONG SSDT = (PULONG)KeServiceDescriptorTable->pServiceTable;
DbgPrint("NtOpenProcess地址是:%x",SSDT[0x7a]);
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
[QUOTE=遗失灵魂;1194775]最简单的办法是
PULONG SSDT = (PULONG)KeServiceDescriptorTable->pServiceTable;
DbgPrint("NtOpenProcess地址是:%x",SSDT[0x7a]);[/QUOTE]
这种方式好,受教了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
//KeServiceDescriptorTable(由ntoskrnl.exe导出)
typedef struct _KE_SERVICE_DESCRIPTOR_TABLE{
PVOID pServiceTable; //服务表
PULONG pServiceCounterTable; //服务表的函数计数表
ULONG NumberOfService; //服务函数的个数
ULONG ParamTableBase;
} KE_SERVICE_DESCRIPTOR_TABLE,*PKE_SERVICE_DESCRIPTOR_TABLE;
//手动添加到导入表:
__declspec(dllimport)
PKE_SERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable;
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
求设置为最佳回答~
|
|
|