打造自己的游戏修改器和内存补丁
泉源:http://www.juntuan.net/
信赖许多人打游戏的时候都用修改器,这里我先容怎样用VB编写修改器。
1、其实修改器原理很简单,一般来说,在游戏运转的时候我们对游戏内存空间中须要的数据举行修改就可以了。举个例子来说,一款拳皇模拟器里游戏人物的“血”地点是&H567DC0,当这小我私家物挨打的时候,这个地点的数据就要淘汰,只要我们把这个数据再改归去,人物的“血”就有了。要是我们作一个循环,不停地连结这个地点得数不变化,这小我私家就“百战不殆”了。 :)
2、但是我们怎么查找这个关键的地点哪?可以用游戏修改器嘛,好比金山游侠,GM之类。至于要改的数据也异样啦。
3、程序的流程: 起首用FindWindow函数查找到游戏窗口,再用GetWindowThreadProcessId获得历程标识符,然后用OpenProcess函数获得游戏历程句柄,最后WriteProcessMemory把数据写到相应的地点。要是需要读数据,用ReadProcessMemory函数就可以了。 我在这里以修转变脸王为例来阐明。具体进入下面的链接。
值得注意的2个问题:
1、无法利用FindWindow函数怎么办? FindWindow函数需要提供窗体的标题才可以利用,但是有些游戏很难做到这一点。好比抢滩登陆,它的窗口标题很难查找到,还有一款日本鸟游戏,窗口标题是日本话,基础打不出来。遇到这种环境怎么办哪? 比力正式且罕见的方法是逐条查找当前全部的历程,找出来游戏历程就找到游戏历程句柄了。这种方法另外中央都有先容。我这里先容一种比力笨但比力简单的方法。 由于GetForegroundWindow可以找到桌面最上方的窗口,以是我们只要设定一个工夫,好比在程序中设定3秒钟,让用户在3秒钟以内进入游戏界面,我们在3秒当前在调用这个函数,获得的自然就是游戏历程了。呵呵.... 下面有一个例子来演示这个原理。
2、查出的地点不停变化怎么办? 有些游戏数据的保存地点是随机变化的,好比红色警惕的款项,这次查出来的地点是这个,下次不晓得是什么,这种问题遇到后你就不晓得应该修改的内存地点。遇到这种环境怎么办哪? 这种问题需要利用静态调试来解决。我这里拿红色警惕来阐明一下原理,其他环境也雷同。红色警惕的款项存放的地点是不停变化的,但是这个地点是由一个确定的中央产生的,就是说程序中有一个确定的中央,这个中央每次随机产生一个地点,程序就把款项放到这个中央。我们只要找到那个地点泉源就好办了。 但怎么找那个中央哪?先辈入游戏,用金山游侠查出来钱的地点,好比说是c16a0450H。然后F5调入TRW2000,下下令bpm c16a0450 w ,就是说当程序写c16a0450H内存地点的时候中断。在这个中断的中央好比说有一个包罗[eax]的下令(具体下令我忘记了,你再查一下吧),然后检察d [eax] ,要是看到这里是c16a0450,那就阐明找到地点泉源了。把这个地点记下来,但是我们编写程序的时候仍旧无法读取[eax],这就需要利用SMC(self modify code)技术,可以编写一个补丁,在这个地点处写一个跳转,跳到另外一个中央,把[eax]的内容写入一个牢固的内存地点,好比说 mov 005a627b,[eax] ,这样写游戏修改器的时候就可以用ReadProcessMemory间接读005a627b的内容,这个内容就是钱的地点了。当前的修改方法就根据下面先容的方法修改就可以了。 我没写过这样的程序,只不过静态调试了一下,理论证明这种方法是可行的。你要是不晓得SMC之类的,可以去www.pediy.com的论坛里问一问,并不是太贫苦。
关于内存补丁的问题:
内存补丁和游戏修改是一样的。用这种方法编写的内存补丁有许多利益:
1、可以摆脱一些加壳软件的干扰,好比Asprotect加密过的软件没法作内存补丁,因为它有一个anti-debug功效;
2、对付一些光盘上的文件有用,通用的内存补丁一般都要求把补丁程序和软件放在同一个目录中,但是要是从光盘上安装软件,你就无法把补丁放入光盘中,但是自己编写补丁就不存在这个问题了;
3、当然是锻炼自己的本领了,呵呵。我的表达本领欠好,有什么不懂得中央可以和我探讨一下,不过一般来说我可以给你表明一下,但我不会看你的代码,因为我现在着实没工夫了。下面我给出一些代码,一个是变脸王的内存补丁,还有一个修改窗口标题的程序,都是用VB写的。不要说我没有把所用的控件列出来,要是你连这都不晓得也就不用看了。 :)
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|