xp下用户措施空间分派(8):MEM_MAPPED
当前位置:以往代写 > C/C++ 教程 >xp下用户措施空间分派(8):MEM_MAPPED
2019-06-13

xp下用户措施空间分派(8):MEM_MAPPED

xp下用户措施空间分派(8):MEM_MAPPED

副标题#e#

在去除前面的那些对象之后,我们的内存块内里尚有一堆MEM_MAPPED的内容,就像这样的块:

xp下用户法子空间分配(8):MEM_MAPPED

MSDN内里这样表明MEM_MAPPED这种范例:

Indicates that the memory pages within the region are mapped into the view of a section.

很自然地我们想用GetMappedFileName来看看映射到这些 内存区域的文件名,于是发明白下面几个块简直是做了文件映射:

xp下用户法子空间分配(8):MEM_MAPPED

那么其它对象是那边来的?

利用GetLastError取错误信息:“error: 000003ee : 文件地址 的卷已被外部改变,因此打开的文件不再有效。”,诡异得很!一怒之下利用UnmapViewOfFile将 这些内存块给Unmap了,不幸的是措施就这样挂掉了!

写段代码查询一下当前打开的句柄,看看有没 有file mapping的内容:

void enum_handles(HANDLE hProcess)
{
// 列举已经打 开的句柄,取其名称
HMODULE hNtDll = NULL; // nt.dll句柄
ZWQUERYSYSTEMINFORMATION ZwQuerySystemInformation = NULL;
NTQUERYOBJECT NtQueryObject = NULL;
SYSTEM_HANDLE_INFORMATION *hInfo = NULL;
int nNumHandle = 0, i;      // 句柄数 量
NTSTATUS Status;
ULONG nSize, nCount;
char cBuffer[0x40000], cInfoBuffer [0x1000];
OBJECT_ALL_INFORMATION *pInfo;
OBJECT_NAME_INFORMATION* pName;
DWORD nId = GetProcessId(hProcess);

// 取导出函数
hNtDll = GetModuleHandle( "ntdll.dll" );
ZwQuerySystemInformation = ( ZWQUERYSYSTEMINFORMATION )GetProcAddress( hNtDll, "ZwQuerySystemInformation" );
NtQueryObject = ( NTQUERYOBJECT )GetProcAddress( hNtDll, "NtQueryObject" );

// 查询句柄信息
Status = ZwQuerySystemInformation (SystemHandleInformation,
cBuffer,
0x40000,
&nSize);

if (NT_SUCCESS(Status))
{
nNumHandle = *(PULONG)cBuffer;
hInfo = (SYSTEM_HANDLE_INFORMATION*)(cBuffer + 4);
nCount = 0;
for(i = 0; i < nNumHandle; i++)
{
if(hInfo[i].ProcessId != nId) continue;
Status = NtQueryObject(hInfo[i].Handle, ObjectAllInformation, cInfoBuffer, 0x1000, &nSize);
if(NT_SUCCESS(Status))
{
pInfo = (OBJECT_ALL_INFORMATION*)cInfoBuffer;
nCount++;
……………………….
}
}
}
}


#p#副标题#e#

网上有资料说NtQueryObject会让措施挂掉,可是没有发明有此现象,奇怪! 上面的代码可以获得下面的句柄列表:

xp下用户法子空间分配(8):MEM_MAPPED

xp下用户法子空间分配(8):MEM_MAPPED

xp下用户法子空间分配(8):MEM_MAPPED

xp下用户法子空间分配(8):MEM_MAPPED

xp下用户法子空间分配(8):MEM_MAPPED

xp下用户法子空间分配(8):MEM_MAPPED

可以看到,系统映射过来的section工具着实不少!至于这些section工具与内存块的对应干系,限于 程度,感受无从下手,暂且做个暗号。

    关键字:

在线提交作业