2024年4月4日发(作者:)

用户态完美实现"变速齿轮"

学习各种高级外挂制作技术,马上去百度搜索"魔鬼作坊",点击第一个站进入,

快速成为做挂达人。

1>变速齿轮原理:

变速齿轮利用HOOKAPI实现针对Windows主流应用程序的变速功能,

QueryPerformanceCounter,

GetTickCount,

timeGetTime

3个API实现的完美加速。

(有些程序如<扫雷>是通过timer计时的,Hook这三个函数还不能实现加速)

为了实现变速效果,按键精灵作者采用公式算法实现了加速减速效果,公式如下:

Result:=上次返回时间+Round((当前返回时间-上次正常时间)*Power(2,倍数));

根据这个分析,所以我们写变速齿轮的思路就出来了:

挂钩这三个函数,修改器返回值.完成~

2>逆向这三个Api:

kCount

代码:

复制代码

1

2

3

4

5

movedx,7FFE0000h

moveax,dwordptrds:[edx]

muldwordptrds:[edx+4]

shrdeax,edx,18h

retn

tTime

代码:

复制代码

6cmpdwordptrds:[76B30014],0

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

jnzGetTickCount

callFunc_1

subeax,dwordptrds:[76B30018]

push0

sbbedx,dwordptrds:[76B3001C]

push2710

pushedx

pusheax

callFunc_2

addeax,dwordptrds:[76B30020]

retn

Func_1:

movedi,edi

movedx,dwordptrds:[7FFE000C]

moveax,dwordptrds:[7FFE0008]

cmpedx,dwordptrds:[7FFE0010]

jnzshortwinmm.76B12B0B

retn

Func_2:

;//一堆废话,又臭又长...

;//从第一个"jnzGetTickCount"的跳转来看,

;//只要让timeGetTime的返回值跟GetTickCount一样即可~

erformanceCounter

代码:

复制代码

29

30

31

32

33

34

35

36

movedi,edi

pushebp

movebp,esp

pushecx

pushecx

leaeax,dwordptrss:[ebp-8]

pusheax

pushdwordptrss:[ebp+8]