首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我有反作弊程序SSDT钩子地址,但我如何恢复它们?

我有反作弊程序SSDT钩子地址,但我如何恢复它们?
EN

Stack Overflow用户
提问于 2012-07-16 14:36:06
回答 1查看 1.3K关注 0票数 1

我有来自游戏中反作弊程序的所有SSDT钩子地址(来自内核侦探)。但是我的代码似乎不能改变地址十六进制的内容。请帮帮忙。谢谢。

挂接地址:

代码语言:javascript
运行
复制
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 :: -

代码:

代码语言:javascript
运行
复制
#define NTKRNLPA01 0x805D2C44
...
MemRelace((void *)(NTKRNLPA01), (void *)"\xE8\x95\x88\xFE\xFF", 5)

MemReplace函数:

代码语言:javascript
运行
复制
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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-16 15:00:38

该地址驻留在内核地址空间中,如果不在内核中,您将无法接触到它(即:没有ring0驱动程序,此任务是不可能的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11499184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档