写游戏辅助需要知识。
1,精通C语言知识目前大部分的插件都是用BC或者vc编写的,精通C语言知识是编写插件的基本条件。2.拥有强大的汇编基础,一般的游戏是不可能有原代码的,所以需要通过反汇编或者追溯的方式来探索机制,所以拥有强大的汇编基础也是必备条件。3.具备以上两个条件,掌握一些工具也是必要的追踪工具。softice当然是最好的选择。至于反汇编工具,我推荐用IDAPRO反汇编,结构清晰,非常好读的代码。如果不具备以上条件,先打好基础,再写插件。没有付出,就没有收获。世界上没有馅饼。二、写插件面临的基本技术问题1。要修改进程的执行代码,必须首先获取进程ID。如果它是由插件启动的,返回值将包含进程ID。如果没有,需要使用findwindow找到窗口句柄,然后使用GetWindowProcessID获取进程ID。获得进程ID后,我们可以使用writeprocessmemory修改进程的执行代码,让程序按照我们的意愿执行。石头工具外挂就是这样遇到敌人的。2.通过修改包来实现对插件发送和接收的包的拦截。要修改数据包,我们必须首先能够拦截它。一个jmp语句,跳转到你的处理程序位置,处理完之后再跳回来。这种方法需要处理很多事情。还有一种方法是写一个可以引起那个位置异常的指令,比如int3,然后用DebugActiveProcess调试游戏进程,这样每当游戏在那个位置执行的时候,就会停下来,转到插件程序。处理完插件程序后,用ContinueDebugEvent继续运行程序。今天,我们来谈谈地址调查。地址调查是写插件最难最有挑战性的事情。很多朋友找我要插件的原程序。其实用外挂的原程序,查不到地址也没用。原程序和地址的关系就像武侠里招式和内功的关系,没有内功,只是一个摆设。内功深厚后,任何普通招式都有化腐朽为神奇的可能。插件有两种地址,一种是程序地址,一种是数据地址。像石器中的两个石器,本色,不与敌相遇,收发包等。,都属于第一类,而人的坐标和地位属于第二类。对于第一种地址,我们主要依靠softice来调查地址。对于第二种地址,我们可以使用一些游戏工具,比如fpe、gameexpert、gamemaster等。我一直用gameexpert,因为找不到2000以下能用的fpe。当你用fpe改变游戏的时候,你从来没有想过它也可以用来做这个。对于第二种数据的调查方法,大部分人都比较熟悉,我就不多说了。现在我主要说说第一类数据的详细调查过程。比如我们要调查发包的位置,怎么开始,客户端要发很多包给服务器,但是最简单的方法就是从会说话的包开始,先说一个长句子,最好是英文的,方便查。之后以任何方式进入游戏程序的进程空间(比如先用spy找出游戏程序的窗口句柄,然后切换到softice键入bmsg的窗口句柄wm_lbuttondown,让游戏程序鼠标一点就能进入他的进程空间),然后用S命令找出这句话放的内存地址,记下这个地址,在softice中键入刚才bpm调查的地址。这个指令的意思是,只要有任何动作访问这个内存,就会立即中断,然后切换到游戏。总之,你会发现softice自动中断到某个位置。如果按照这个位置走,发包的位置就不远了。以上都是针对一个全新的游戏程序。如果是老程序,有前辈做了很多工作,可以用一些其他的方法,比如反汇编,来调查。未来游戏版本的更新也是如此。只要把旧版本地址附近的代码写下来,在新版本的代码里搜索一下,就ok了。嗯,休息一下,休息一下。