变速齿轮通过修改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
mo