vc ++ 实现检测变速齿轮,变速精灵, 变速类辅助工具
来源:互联网 发布:h3c acl 端口 编辑:程序博客网 时间:2024/04/28 08:09
因为项目需要,我需要检测出变速类辅助工具正在对项目程序进行加速。从网上找了很多资料,有很多高手提出HOOK API等解决方案。本人小菜一枚,看得不太明白,经过一番尝试,找到了另外一个方式来实现目的。
首先,我看了一位高手对变速齿轮的分析,原文地址:http://tieba.baidu.com/p/3127683095
他说变速齿轮主要对GetTickCount() 和 timeGetTime() 进行了修改,于是我想到Sleep函数是直接与操作系统打交道的(具体的原理我不清楚,有高手看到还请指教),它应该不会受到影响,也就是说Sleep(1000),基本上也就是挂起线程1000ms。于是我得到一个启发,在时间校验线程里首先通过GetTickCount()得到一个时间start,然后Sleep(1000),接下来再次通过GetTickCount()得到一个时间end,这两个时间相减(end-start)应该就是Sleep(1000)中过去的时间,单位毫秒。如果相减的结果超过了1100毫秒(我主要考虑到一个容错值)那么就可以判定启用了变速齿轮,我这里主要是检测加速,所以这样就行了。减速也是一样的,非常的容易。
这个方法我测试了Win7/8 和xp系统下的主流变速工具,都可以检测出来。如果有高手知道原理或者看出什么问题,请一定指教一下,谢谢!
附上时间校验线程函数的代码:
UINT TimeCheckThread(LPVOID lpParament){CMyDlg *pThis = (CMyDlg *)lpParament;DWORD dwStart = GetTickCount();Sleep(1000);DWORD dwEnd = GetTickCount();if(dwEnd-dwStart>1100) // 加速超过1.1倍{double *pTimes = new double;*pTimes = (dwEnd-dwStart)/1000.0;SendMessage(pThis->m_hWnd,UM_TIMEABNORMAL,(WPARAM)pTimes,0);// 校验不通过}return 0; }
运行效果:
1 0
- vc ++ 实现检测变速齿轮,变速精灵, 变速类辅助工具
- UGUI实现的变速摇杆
- SoundTouch实现音频变速变调
- 变速公式
- 变速练习
- 变速连点器
- 变速计时器
- 变速精灵试用 目前唯一支持Vista加速
- 用 JavaScript 实现变速回到顶部
- 实现变速回到当前顶部 JavaScript代码~!
- 用 JavaScript 实现变速回到顶部
- UGUI实现的变速摇杆 (转)
- FFmpeg + SoundTouch实现音频的变调变速
- FFmpeg + SoundTouch实现音频的变调变速
- cocos2d-x TestLua 之 CCEase 变速类
- 关于时间变速
- 变速滚动条说明书
- cocos2d-x 变速动作
- 条件注释判断IE浏览器,<!--[if IE]>条件注释区分非IE浏览器
- Oracle命令(一):Oracle登录命令
- node.js环境搭建
- 【悠然】mysql简单指令笔记
- 采用数据流而非CCUserdefault来读取数据,从而确保数据安全性
- vc ++ 实现检测变速齿轮,变速精灵, 变速类辅助工具
- 适配器设计模式
- vpn原理及实现--虚拟网卡构建vpn
- CAS学习笔记(一)--认识CAS
- Android 处理简单单击事件的监听方法
- silicon labs 的网站
- uva10887Concatenation of Languages
- HDU3746 Cyclic Nacklace
- WinXP/Win7/Win8通用shellcode