变速大师软件(以下简称"本软件")
原理:
本软件的原理很简单:即更改系统运行频率(或者说是系统时间转动速度)以达到系统运行速度加快或者减慢.
软件核心代码均为驱动代码,代码在Ring0下作业,主要核心函数KeQueryPerformanceCounter和KeUpdateSystemTime,
由于Ring0下相关资料较少,所以在互联网上搜索到的资料也寥寥无几.
检验方案及代码:
由于时代的发展,网络上已存在很多网络游戏程序,但是由于其开发团队开发时并未考虑到系统频率更改可能会导致一系列问题,所以他们并没有装载校验系统频率的相关措施.
而且本软件也曾在某论坛发布过本软件的大部分源代码以及近期由于在网络上发现有多个与本软件原理大致同样类型的同类软件,还有很多以本软件名义出现的假冒软件出现,
本软件考虑到以上综合因素,本软件特别提供可以检测此类及类似软件通用的检测方法及源代码以提供有需要的组织使用.代码简洁有效,全部方案及代码如下:
(因该原理的唯一特性:就是修改系统的运行频率,所以直接检测系统运行频率是否被更改即可):
//特别注意:本函数为通用检测方法,并不限于检测本软件,也同样适用于检测其他类似的更改系统运行频率的软件.
//检查改变系统运行频率的函数如果返回结果为TRUE则频率已经被修改;本函数为C语言Windows驱动代码,点此可下载,解压密码为本站网址(www.bsds.net).其适用windows xp至windows10的全部windows系统;
BOOLEAN IsTimeFunctionHooked()
{
PUCHAR pfnKeQueryPerformanceCounter = (PUCHAR)GetNtosFunctionAddress(L"KeQueryPerformanceCounter");
PUCHAR pfnKeUpdateSystemTime = (PUCHAR)GetNtosFunctionAddress(L"KeUpdateSystemTime");
if(pfnKeQueryPerformanceCounter && MmIsAddressValid(pfnKeQueryPerformanceCounter))
{
#ifdef AMD64
if(*pfnKeQueryPerformanceCounter==0xFF && *(pfnKeQueryPerformanceCounter+1)==0x25)
{
return TRUE;
}
#else
if(*pfnKeQueryPerformanceCounter==0xE9)
{
return TRUE;
}
#endif
}
if(pfnKeUpdateSystemTime && MmIsAddressValid(pfnKeUpdateSystemTime))
{
#ifdef AMD64
if(*pfnKeUpdateSystemTime==0xFF && *(pfnKeUpdateSystemTime+1)==0x25)
{
return TRUE;
}
#else
if(*pfnKeUpdateSystemTime==0xE9)
{
return TRUE;
}
#endif
}
return FALSE;
}
//另外提供一种检查任何客户端更改运行频率类软件的措施:即通过服务器与客户端的时间差校验;
服务端储存客户端上线时间;
客户端给服务端传输数据时附带上运行经过时间(秒),
假如客户端被加快或减慢运行,那么经过时间(秒)会大于或小于服务端中记录客户端时间差.
从而可检查任何客户端更改运行频率类软件.
(以上仅为在互联网搜索到提供的简单思路,具体代码实现要根据开发者思路自行编写)
从互联网90%以上的网络游戏们看来,大部分都是采用此类方案,因为其确实稳定,有效.
以上由变速大师软件提供