2024年3月29日发(作者:)
教你如何编写游戏外挂
今天石器上不去,没法调程序,写篇文章给想学写外挂的朋友参
考 一、先说一下写一个外挂需要什么条件 1、熟练的C语言知识
目前的外挂大部分都是用BC或者是vc写的,拥有熟练的C语言
知识是写外挂的基本条件
2、具有很强的汇编基础
一般游戏都不可能有原代码的,必须靠反汇编或者跟踪的办法来
探索其中的机理
,所以有强的汇编基础也是必不可少的条件
3、熟练掌握跟踪和调试的工具
有了上面2个条件后,掌握一些工具也是很有必要的
跟踪的工具,softice当然是不二之选,至于反汇编的工具,我推
荐用IDA PRO
这个工具反汇编出来的代码结构清晰,非常好读
如果你不具有上面的条件,还是先把基础打好,再来写外挂吧,
一分耕耘,一分收获,天下没有白掉的馅饼的
二、写外挂面临的基本技术问题
1、修改进程的执行代码
要修改进程的执行代码,要先取得进程的ID,如果是由外挂程序启
动,返回值里就有进程ID,如果不是的话,
需要用findwindow找到窗口句柄,再用GetWindowProcessID
取得进程ID,取得进程ID以后,就可以用
writeprocessmemory来修改进程的执行代码了,使程序按照我
们的意愿来执行,石器外挂里的不遇敌、寸步遇敌
就是用这样的方法来实现的
2、截获外挂发送和接收的封包
除了通过修改代码来实现的功能以外,很多的功能都是通过修改
封包来实现的,要修改封包,首先要能截获它。
第一步是要跟踪出发和收的位置,至于怎么跟踪,我以后会提到,
找到位置以后,有2个办法,一是在那个位置加一
个jmp语句,跳到你的处理函数位置,处理完后,再跳回来,这
种方法要求比较高,需要处理好很多事情,另一种办法
是往那个位置写条能造成例外的指令,比如int 3,然后用
DebugActiveProcess调试游戏进程,这样每当游戏执行到那个
位置的时候,就会停下来,到外挂程序里面去,等外挂程序处理
完以后,用ContinueDebugEvent 继续运行程序。


发布评论