能力值:
( LV2,RANK:10 )
|
-
-
2 楼
ZwQuerySystemInformation 查询内核模块信息
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
ZwQuerySystemInformation
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
给你个函数吧:
ULONG xhGetLoadedFileBaseAddr(VOID)
{
ULONG kerBaseAddr;
KAFFINITY affinity;
//多核时,使当前线程运行在第一个处理器上
affinity = KeSetSystemAffinityThreadEx(1);
//通过KPCR获取内核基地址
_asm
{
push eax
mov eax,fs:[0x34]
and eax,0x18
mov eax,[eax]
mov eax,[eax]
mov eax,[eax+0x18]
mov kerBaseAddr,eax
pop eax
}
//回复之前的CPU状态
KeRevertToUserAffinityThreadEx(affinity);
return kerBaseAddr;
}
获取内核基地址有4种方法:
1,通过DRIVER_OBJECT
2,通过ZwQuerySystemInformation
3,通过KPCR
4,这个暂时不能告诉你!自己能想到,那可以干些别人不能干的事。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
驱动对象中的DriverStart函数不就是吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
ZwQuerySystemInformation
|
|
|