跳转至

给关键例程计时

如果反机器人开发者正在调试你的机器人,开发者可能会在机器人行为关键的部分代码上放置断点并单步执行。你可以通过测量代码执行时间来检测这种活动;有人单步执行代码,执行需要比平时长得多。

例如,如果函数只放置一些钩子,你可以确定内存保护代码不应该花超过十分之一秒。你可以借助 GetTickCount()Windows API 函数检查内存保护的执行时间,如下所示:

--snip--
auto startTime = GetTickCount();
protectMemory<>(...);
if (GetTickCount() - startTime >= 100)
    debuggerDetectedGoConfuseIt();
--snip--