变速齿轮的原理
来源:互联网 发布:您的域名未授权 编辑:程序博客网 时间:2024/04/28 02:08
变速齿轮通过修改API函数GETTICKCOUNT和TIMEGETTIME骗过了游戏和程序的定时器导致游戏和程序速度看起来被改变。下面以GETTICKCOUNT为例进行分析:原本的GETTICKCOUNT汇编:
kernel32!gettickcount mov gs,[bffcaea18]
mov eax,gs:[00000000]
sub edx,edx
mov gs,dx
ret
变速齿轮修改后的GETTICKCOUNT汇编:
kernel32!gettickcount
这里是关键-->jmp 840500d9(840500d9并不是绝对的)
add [eax],al
add [ecx+00000000],ah
sub edx,edx
mov gs,dx
ret
可以看出变速齿轮修改了gettickcount的代码,当游戏和程序使用gettickcount时就会自动跳转到840500d9处执行。再看看840500d9处的代码汇编:
840500d9:CLI
push ebp
mov ebp,esp
push ebx
push ecx
push edx
push esi
push edi
call 840500e7
840500e7:pop edi
xor di,di
mov esi,edi
add esi,00402051
sub esi,00401f0b
push esi
call edi
call 84050101
84050101:pop edi
xor di,di
call [edi+0000fef0]
call 84050110
84050110:sub eax,[edi+0000ff30]
mul dword,ptr[edi+0000ff30]
mov ebx,00100000
div ebx
add eax,[edi+0000fe20]
push eax
mov eax,00402072
sub eax,00401f08
add eax,edi
push eax
call edi
pop eax
pop edi
pop esi
pop edx
pop ecx
pop ebx
pop ebp
sil
ret
以上正是变速齿轮变速的核心所在。(GETTICKCOUNT返回的是EAX的值你可以对EAX进行跟踪)
下面说一下变速齿轮挂接API的方法:首先变速齿轮在MMF区(WIN9X/ME)申请一块内存,把上面的代码从程序中移到该内存。使用修改描述符的方法从应用程序级跳到核心级(具体可查看《电脑编程技巧与维护》2000年第6期34页)修改GETTICKCOUNT开头的代码使之指向申请的内存的首地址实现挂接。 以上就是我对变速齿轮分析,如果有什么意见或想查看详细的原代码请与我联系,我的邮箱:rwjgpget@sohu.com我会尽快给你答复。
- 变速齿轮的原理
- 变速齿轮
- 变速齿轮,游戏加速的实现
- 变速齿轮研究
- 变速齿轮分析
- 防变速齿轮
- [转帖]变速齿轮的一种实现方法(内有中断门的创建与调用)
- “变速齿轮”再研究
- 网络游戏防变速齿轮外挂
- “变速齿轮”研究手记
- “变速齿轮”研究手记
- 变速齿轮”再研究-----(转帖)
- Windows游戏加速外挂-变速齿轮 学习笔记-【第一篇】
- Windows游戏加速外挂-【变速齿轮0.46】使用教程
- vc ++ 实现检测变速齿轮,变速精灵, 变速类辅助工具
- 数字证书的工作原理(加密原理)
- DNS劫持原理、DNS 污染的原理
- 搜索引擎算法原理 百度算法的原理 [
- 微软解决方案架构(模块九)(1)
- 微软解决方案架构(模块九)(2)
- 微软解决方案架构(模块十)
- ActiveX控件的开发
- 软件开发部配置管理方案
- 变速齿轮的原理
- 新病毒尼姆达的防御
- 有关TDataSet的研究
- 动态创建ClientDataSet的表定义
- 关于捕获VCL没有处理的Windows消息
- JavaScript实现在线编辑表格
- 如何处理连接数据库JavaBean的错误信息
- 窥豹国内企业的软件工程-我的求职经历
- 使用c++实现Format函数