能力值:
( LV5,RANK:68 )
|
-
-
2 楼
你说的东西,也许火哥知道
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
大黄狗知道
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
华哥知道,不过他正在西瓜摊买瓜
|
能力值:
( LV5,RANK:71 )
|
-
-
5 楼
ntquerysysteminfromation
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
ZwQuerySystemInformation +SystemModuleInformation NTSTATUS nStatus = STATUS_SUCCESS;
ULONG ulBytes = 0;
PRTL_PROCESS_MODULES pMods = nullptr;
std::unique_ptr<char[]> pBuffers = nullptr;
do
{
nStatus = ZwQuerySystemInformation(SystemModuleInformation, 0, ulBytes, &ulBytes);
if (ulBytes == 0)
{
break;
}
pBuffers = std::make_unique<char[]>(ulBytes);
RtlZeroMemory(pBuffers.get(), ulBytes);
pMods = (PRTL_PROCESS_MODULES)pBuffers.get();
nStatus = ZwQuerySystemInformation(SystemModuleInformation, pMods, ulBytes, &ulBytes);
if (!NT_SUCCESS(nStatus))
{
break;
}
PRTL_PROCESS_MODULE_INFORMATION pMod = pMods->Modules;
for (ULONG i = 0; i < pMods->NumberOfModules; i++)
{
PCHAR pFileName = strrchr((char*)(pMod[i].FullPathName), '\\');
if (NULL != pFileName)
{
if (0 == _stricmp("\\ntoskrnl.exe", pFileName) ||
0 == _stricmp("\\ntkrnlmp.exe", pFileName) ||
0 == _stricmp("\\ntkrnlpa.exe", pFileName) ||
0 == _stricmp("\\ntkrpamp.exe", pFileName)
)
{
std::cout << pMod[i].FullPathName << "-->0x" << std::hex << pMod[i].ImageBase << std::endl;
break;
}
}
else
{
if (0 == _stricmp("ntoskrnl.exe", (char*)pMod[i].FullPathName) ||
0 == _stricmp("ntkrnlmp.exe", (char*)pMod[i].FullPathName) ||
0 == _stricmp("ntkrnlpa.exe", (char*)pMod[i].FullPathName) ||
0 == _stricmp("ntkrpamp.exe", (char*)pMod[i].FullPathName)
)
{
std::cout << pMod[i].FullPathName << "-->0x" << std::hex << pMod[i].ImageBase << std::endl;
break;
}
}
}
} while (0);
|
能力值:
( LV9,RANK:280 )
|
-
-
7 楼
saloyun
ZwQuerySystemInformation +SystemModuleInformation NTSTATUS nStatus = STAT ...
经典审题不仔细
|
能力值:
( LV10,RANK:163 )
|
-
-
8 楼
NtSystemDebugControl SysDbgReadPhysical if ( KdPitchDebugger && !KdLocalDebugEnabled && ((a1 - 0x1D) & 0xFFFFFFF7) != 0 ) return;
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
yimingqpa
NtSystemDebugControl SysDbgReadPhysical
if ( KdPitchDebugger && !KdLocalDebugEnabled && ...
这个函数是直接读物理内存吗,你下面的判断貌似和调试器标志有关?看不懂
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
saloyun
[em_10][em_10][em_10],物理地址,这是想干啥。。。。
猜测是有个漏洞驱动,暴露的ioctl没有vtop,只有写物理内存,他想利用下
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
crackcc
猜测是有个漏洞驱动,暴露的ioctl没有vtop,只有写物理内存,他想利用下
哈哈,被你猜到了.不能映射页表只能直接读写物理内存,只要能定位到nt的物理地址,别的啥都解决,目前暴力搜索.观察了一些电脑,发现w11以前的物理地址是4字节,w11后就是8字节了,还有跟物理内存容量也有些关系,不好确定
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
saloyun
ZwQuerySystemInformation +SystemModuleInformation NTSTATUS nStatus = STAT ...
可以参考下枚举楼上回复的枚举内核模块地址,大小那个。那个枚举出来的是虚拟地址例如说0xFFFFF8000545B000,但是大多数情况这个地址的低32位就是物理地址
|
|
|