-
-
[求助]请教如何判断指针可访问权限
-
发表于:
2011-5-18 08:18
4139
-
小弟注入一个DLL到目标进程。读取其内部一个结构数组。
为什么通过AfxIsValidAddress判断了指针读写权限后。
有个别地址还是会抛C0000005权限异常呢?
代码如下:
__try
{
for (Index=ARRAYHEADER;Index<MAXADDRESS;Index+=4) //ARRAYHEADER MAXADDRESS 为自定义宏
{
Pointer=(PDWORD)Index;
if (*Pointer!=SIGIN) //SIGIN 为自定义宏
{
continue;
}
Target=(PDWORD)((DWORD)Pointer+OFFSET);//OFFSET 为自定义宏
if (AfxIsValidAddress(Target,sizeof(PDWORD),TRUE)==TRUE)
{
Debug.Format(_T("%x"),*Target);//为什么判断了指针读写权限后。还是会抛C0000005权限异常呢?
AfxMessageBox(Debug);
}
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
Debug.Format(_T("%x"),GetExceptionCode());
AfxMessageBox(Debug);
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)