一、实现原理
在早期的很多游戏中,相信很多人用过变速齿轮去实现游戏内的加速瞬移功能,它的原理就是针对QueryPerformanceCounter,GetTickCount,timeGetTime这几个API函数的HOOK。这里涉及到一个时钟的概念,当它们被HOOK API后,新的计算方法如下所示:
Clock = 上次时钟 + (当前返回时间 - 上次正常时间) * 倍数系数;
在扫雷程序中,会使用到SetTimer来设置定时器,所以我们进行HOOK后,它的计时器将放慢,示例代码如下:
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "stdafx.h"
#include "EasyHook.h"
// timeGetTime使用到的
#include <MMSystem.h>
#pragma comment(lib, "Winmm.lib")
typedef BOOL (WINAPI *fun_QueryPerformanceCounter)( LARGE_INT