协议型外挂的制作一[3]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 zhangze 的 blog

       编程软件:这个无所谓吧,不过我这里用的是c++ builder 6,前段时间做cb 6相关的项目,而且cb 对于程序界面的编写是最方便不过的了,就是编译的有点慢和生成的程序有点大。(旁白:又不是做手机项目,担心容量吗?)我做受限程序做惯了,养成了不良习惯,没办法了。

       思路:我们的程序要干扰别的程序的运行,最好的办法是使用debug的办法,不过,我并没有打算使用debug的办法,我对程序的debug并不太熟悉,而且讨厌编写没用的代码。我准备采用线程注入的办法,至于线程注入,和为什么要线程注入才能干预,这方面的知识最好自己看看《windows 核心编程》里面讲的,否则这个教程要没完没了了。当我们的线程注入到目标程序之后就方便多了,就可以为所欲为了。因此我们的第一目的是将线程注入到目标程序中。

       预备活动:

       线程注入最简单的莫过于hook了,如果连这都不知道的话,最好赶快到网上查查或者翻翻《windows核心编程》。为了防止游戏内部存在反hook的存在和外挂的检测,我将用自己的程序来启动目标程序。由于网游的不定期更新,因此在启动程序的时候最好将升级跳过去,至少在大话这样的程序中我是这样做的,因为频繁升级和版本检测总让我等的时间太长。

       下面来进行具体的做法,我尽可能的弄出详细的步骤,如果你用的是vc或者其它的话,只要注意核心的代码就可以了。

       新建一个工程,在窗体上添加两个按钮(tbutton或者其它类型的按钮),一个将标题改为启动游戏,另一个标题改为启动外挂。再添加一个topendialog。对于默认的窗体那么大的界面有点浪费,因此将窗体弄得小点,别大大的怪吓人的。

       双点启动游戏的按钮就可以进行编写该按钮的事件了,默认的是onclick事件。下面就是事件的代码:

if(fileexists(extractfiledir(application->exename)+"\\path.ini")==false)

本文关键:协议型外挂的制作一
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top