1 / 12
文档名称:

简单游戏外挂制作教程.doc

格式:doc   大小:53KB   页数:12
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

简单游戏外挂制作教程.doc

上传人:xxj16588 2017/2/21 文件大小:53 KB

下载得到文件列表

简单游戏外挂制作教程.doc

文档介绍

文档介绍:在几年前我看到别人玩网络游戏用上了外挂, 做为程序员的我心里实在是不爽, 想搞清楚这到底是怎么回事。就拿了一些来研究, 小有心得, 拿出来与大家共享, 外挂无非就是分几种罢了(依制作难度): 1、动作式, 所谓动作式, 就是指用 API 发命令给窗口或 API 控制鼠标、键盘等, 使游戏里的人物进行流动或者攻击,最早以前的“石器”外挂就是这种方式。(这种外挂完全是垃圾, TMD ,只要会一点点 API 的人都知道该怎么做,不过这种外挂也是入门级的好东东,虽然不能提高你的战斗力,但是可以提高你的士气^_^ ) 【 24 商城】超多外挂教程免费下载啦网址: http://24store./ 淘宝店铺: http://shop60541325./ 2 、本地修改式,这种外挂跟传统上的一些游戏修改器没有两样,做这种外挂在编程只需要对内存地址有一点认识并且掌握 API 就可以实现,“精灵”的外挂这是这种方式写成的, 它的难点在于找到那些地址码,找地址一般地要借助于别人的工具,有的游戏还有双码校验,正正找起来会比较困难。(这种外挂,比上一种有一点点难度,但是这种外挂做起来能够用, 也是有一定难度的啦~~ ,这种外挂可以很快提升你对内存地址的理解及应用,是你编程技术提高的好东东) 3、木马式, 这种外挂的目的是帮外挂制作者偷到用户的密码( TMD ,“烂”就一个字, 不过要知已知彼所以还是要谈一下啦~~ ),做这种外挂有一定的难度,需要 HOOK 或键盘监视技术做底子, 才可以完成, 它的原理是先首截了用户的帐号或密码, 然后发到指定邮箱。(我以前写过这样的东东, 但是从来没有用过, 我知道这种东东很不道德, 所以以后千万别用呀! ~~ ) 4 、加速式,这种外挂可以加快游戏的速度……(对不起大家,这种东东我没有实际做过, 所以不能妄自评,惭愧~~ ) 5 、封包式,这种外挂是高难度外挂,需要有很强的编程功力才可以写得出来。它的原理是先截取封包,后修改,再转发( Kao, 说起来简单,你做一个试试~~~~ )。这种外挂适用于大多数网络游戏,像 WPE 及一些网络游戏外挂都是用这种方式写成的, 编写这种外挂需要 apihook 技术, winsock 技术这几种外挂之中, 前三种可以用VB , DELPHI等语言比较好实现, 后两种则要用 VC等底层支持比较好的编程工具才好实现。现在就依次(制作难度)由浅到深谈谈我对外挂制作的一些认识吧~~~~ 首先, 先来谈一下动作式的外挂, 这也是我第一次写外挂时做的最简单的一种。记得还在“石器”时代的时候,我看到别人挂着一种软件(外挂)人物就可以四外游走(当时我还不知道外挂怎么回事^_^ ),于是找了这种软件过来研究(拿来后才听别人说这叫外挂),发现这种东东其实实现起来并不难, 仔佃看其实人物的行走无非就是鼠标在不同的地方点来点去而已,看后就有实现这功能的冲动,随后跑到 MSDN 上看了一些资料,发现这种实现这几个功能,只需要几个简单的 API 函数就可以搞定: VB 从零开始编外挂(一) ---------------------------------------------------------------------------------------------------------------------- ---------------------------------- 需要 VB API 函数: FindWindow ←寻找窗口列表中第一个符合指定条件的顶级窗口 GetWindowThreadProcessId ←获取与指定窗口关联在一起的一个进程和线程标识符---------------------------------------------------------------------------------------------------------------------- ---------------------------------- 相关 API 声明: FindWindow ↓ Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long GetWindowThreadProcessId ↓ Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long ------------