能力值:
( LV12,RANK:320 )
|
-
-
2 楼
原理:B8 3E 00 00 00 mov eax, 3Eh
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
这个式子是通过ntoskerl.exe导出的Zw*函数的地址来获得相应的在SSDT表中Nt*函数的地址
所有Zw*函数都是以mov EAX,ULONG开始的,ULONG为对应在SSDT表中的索引号
(PUCHAR)FuncName是该Zw*函数在内存中的地址
(PUCHAR)FuncName+1就是那个对应的ULONG索引在内存中的地址
*(PULONG)((PUCHAR)FuncName+1)就是取出这个ULONG索引值,假设等于index
KeServiceDescriptorTable.ServiceTableBase[index]就是对应的SSDT表中对应的Nt*函数的地址
|
能力值:
( LV7,RANK:110 )
|
-
-
4 楼
要是这样的话FuncName不就应该是地址了吗,可是rootkit里面传入的好像不是地址啊。。
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
传入的是地址,你声明了一个导出函数Zw*,例如是
//导出函数声明
NTSYSAPI
NTSTATUS
NTAPI ZwQuerySystemInformation(
IN ULONG SystemInformationClass, // 该值为5时代表系统中所有的进程信息
IN PVOID SystemInformation, // 最终列举的信息
IN ULONG SystemInformationLength, // 大小
OUT PULONG ReturnLength);
声明之后 你在程序中使用ZwQuerySystemInformation作为变量,他代表的就是系统中该函数的地址
|
能力值:
( LV7,RANK:110 )
|
-
-
7 楼
谢谢各位热心的帮助,结贴了。。
|
|
|