-
-
[求助]我想练习HOOKmessagebox,但是vc6.0下通过,vs2008就hook不到,为什么?
-
发表于:
2009-9-3 23:02
6392
-
[求助]我想练习HOOKmessagebox,但是vc6.0下通过,vs2008就hook不到,为什么?
【求助】我想练习HOOKmessagebox,但是vc6.0下通过,vs2008就hook不到,为什么?
代码太长,附件中~~~其实不长就是贴出来看起来就多了~~~
一些如下:
if(*lpAddr == (DWORD)g_orgProc)
{
// 修改IAT表项,使其指向我们自定义的函数,相当于“*lpAddr = (DWORD)MyMessageBoxA;”
DWORD* lpNewProc = (DWORD*)MyMessageBoxA;
::WriteProcessMemory(::GetCurrentProcess(),
lpAddr, &lpNewProc, sizeof(DWORD), NULL);
return TRUE;
}
我想知道原因,请大虾帮忙解决了,顺便能说明下为什么~~~
补充以下,我发现在WriteProcessMemory的时候,返回了false~~·不知道什么原因
再补充,我在writeprocessmemory返回失败后,调用getlasterror返回998,查看MSDN,发现错误信息为:
ERROR_NOACCESS:998 Invalid access to memory location
既然没有noaccess,为什么vc6.0又可以?
补充,问题,已解决~~感谢(Fypher,leftup)
最简单,在writeprocessmemory之前加函数:
DWORD dwOld;
VirtualProtect(lpAddr,4,PAGE_READWRITE,&dwOld);
谢谢~~~
[课程]FART 脱壳王!加量不加价!FART作者讲授!