一个内存读取的问题?
BOOL CompareAPage(DWORD dwBaseAddr, DWORD dwValue)
{
// 读取1页内存
BYTE arBytes[4096];
if(!::ReadProcessMemory(g_hProcess, (LPVOID)dwBaseAddr, arBytes, 4096, NULL))
return FALSE; // 此页不可读
// 在这1页内存中查找
DWORD* pdw;
for(int i=0; i<(int)4*1024-3; i++)
{
pdw = (DWORD*)&arBytes[i];
if(pdw[0] == dwValue) // 等于要查找的值?
{
.....
.....
}
}
return TRUE;
}
这个函数是在指定的地址空间中查找一个值 如1234,我的问题是:
在进程地址空间中,值1234是什么类型存放的?是占几个字节?
假如1234是占4个字节,与DWORD一样,那么查找可以成功。但是如果1234占2个字节呢,那么这个函数不就查找不到这个值吗?能不能具体解释一下,先谢谢了!