游戏变速模型 原理
今天一个朋友问我一些游戏的变速器是怎么做的,我第一反应就是驱动,所以回答他的是WinIO中的驱动级系统变速。但经过测试发现变速器只改变指定进程的速度,其他进程包括时间都没有发生改变。看了一下变速器的文件目录,有个叫HOOK.dll的文件,所以立马就想到了APIHOOK。平时写程序比如线程休眠5秒Sleep(5000),那么我们只要APIHOOK掉Sleep函数,把传入的5000改成我们想要的值就达到了变速的效果。接下来我上网查了一些和时间相关的API,如SetTimer,TimeSetEvent,timeGetTime,QueryPerformanceCounter,GetTickTime,随便找了个加速为主流 的游戏,经测试,游戏在时间的计算上用到了其中的一个API,所以我们要做的就很简单的,注入一个DLL进入游戏后对API进行HOOK,把相关数据修改后并返回。很顺利的,一个加速 就写好了。
什么游戏就不说了,本来就是以研究为主,现在我将他简单化,模拟了一个游戏中放技能时的施法条。通过APIHOOK技术将施法速度提升至原来的20倍。当然为了方便,我把APIHOOK直接一起写进了程序内,和DLL注入后APIHOOK的效果是一样的。
贴上模型图:
大家下载下来测试下就很明显了,原先5秒读条足足快了20倍。
该技术适用的场合:网游都是通过客户端和服务端交互,如果相关的数据处理全在服务端上,那么APIHOOK的结果是本地可以看到效果,但技能却放不出去,因为服务器判断失败。所以当这些数据都在本地进行处理的时候,HOOK掉时间相关的函数进行游戏变速是再好不过的。
因此我很不厚道的拿XNF开了刀,测试效果W美。这里就不发了,开这贴是以技术为主,看懂了的朋友随便上游戏调试下,确定哪个API,然后做相关的处理就解决了。
怎么写加速某进程呢?求写法 前排支持下 正静,淡定,安静,都别吵了…… 我飘过一下 赚一个海币 回复一下 证明我来过 赚海币~~~~~~~~~~~ 再赚一个海币 硬实厉害啊 {:mad:}学习了
页:
[1]
2