我有来自游戏中反作弊程序的所有SSDT钩子地址(来自内核侦探)。但是我的代码似乎不能改变地址十六进制的内容。请帮帮忙。谢谢。
挂接地址:
Address : 0x805D2C44
Location : ntkrnlpa.exe [PAGE]
Len : 5
State : Relative Call :: call 0x8931C5B0
Current Value : E8 67 99 D4 08
Original Value : E8 95 88 FE FF
Destination Module : 0x8931C5B0 :: -代码:
#define NTKRNLPA01 0x805D2C44
...
MemRelace((void *)(NTKRNLPA01), (void *)"\xE8\x95\x88\xFE\xFF", 5)MemReplace函数:
bool MemReplace(VOID *lpMem, VOID *lpSrc, DWORD len)
{
DWORD lpflOldProtect, flNewProtect = PAGE_READWRITE;
unsigned char *pDst = (unsigned char *)lpMem,
*pSrc = (unsigned char *)lpSrc;
if (VirtualProtect(lpMem,len,flNewProtect,&lpflOldProtect))
{
while(len-- >0) *pDst++ = *pSrc++;
VirtualProtect(lpMem,len, lpflOldProtect,&lpflOldProtect);
FlushInstructionCache(GetCurrentProcess(), lpMem, len);
return 1;
}
return 0;
}发布于 2012-07-16 15:00:38
该地址驻留在内核地址空间中,如果不在内核中,您将无法接触到它(即:没有ring0驱动程序,此任务是不可能的)。
https://stackoverflow.com/questions/11499184
复制相似问题