aiai101 发表于 2013-3-27 09:22:00

简单谈谈“游戏圈”所谓的神乎其技的行为检测(3)

第二篇中谈到了对纯CALL的辅助软件的一种检测手段,索性接着乱谈这种辅助的检测手段。
不过这里谈谈暗桩模式的检测,堆栈遍历逐层找返回的EIP相信很多人都会。
不过在某些Call的地方插入下面这样的代码,比如游戏逻辑的发包call的加密call里面
于是悲情又出来了

代码:
WCHAR wzCallerName;
PVOID dwRetArray;
DWORD dwRetCount;
BOOL bNeedLogStack = TRUE;
dwRetCount = RtlCaptureStackBackTrace(2,50,dwRetArray,0);//用api是不好的,可以自己实现的说~~
if (dwRetCount)
{
    for(DWORD xIndex=0;xIndex<dwRetCount;xIndex++)
    {
      if (CheckExcepAddr((DWORD)dwRetArray))//排除部分白地址
      {
      bNeedLogStack = FALSE;
      break;
      }
    }
    if (bNeedLogStack)
    {
      for(DWORD xIndex=0;xIndex<dwRetCount;xIndex++)
      {
      GetCallerModule((DWORD)dwRetArray,wzCallerName);//获取地址模块名称
      ReportToSrv((DWORD)dwRetArray,xIndex,wzCallerName);//把信息写入定时返回服务器的数据体里,嘿嘿~
      }
    }
}


第三篇内容就这些吧,还有几个有意思的检测和暗桩的方法等继续讲~~
页: [1]
查看完整版本: 简单谈谈“游戏圈”所谓的神乎其技的行为检测(3)