忆困血馆闻 发表于 2024-3-5 09:20:33

游戏中是如何检测变速齿轮,也就是封加速的?


变速齿轮的原理是hook了GetTickCount()和timeGetTime()两个函数。

那么,也就是说,GetTickCount的地址的内容就变成了 JMP XXXXXX。被变速齿轮给替换掉了。

那么,只要开一个线程,专门定时检测GetTickCount开始的第一个字节是不是0xE9就行了。

DWORD WINAPI CheckSpeeder(LPVOID lpParameter)
{
   for(;;)
   {
    if(*((unsigned char *)GetTickCount) == 0xB9 || *((unsigned char *)timeGetTime) == 0xB9)
    {
   ExitProcess(-2);
   return NULL;
    }
    Sleep(1000);
   }
   return NULL;
}
CreateThread(NULL, 0, CheckSpeeder, NULL, 0, NULL);

页: [1]
查看完整版本: 游戏中是如何检测变速齿轮,也就是封加速的?