游戏外挂制作基础(适合入门)

上传人:博****1 文档编号:511155467 上传时间:2022-08-22 格式:DOC 页数:11 大小:37.50KB
返回 下载 相关 举报
游戏外挂制作基础(适合入门)_第1页
第1页 / 共11页
游戏外挂制作基础(适合入门)_第2页
第2页 / 共11页
游戏外挂制作基础(适合入门)_第3页
第3页 / 共11页
游戏外挂制作基础(适合入门)_第4页
第4页 / 共11页
游戏外挂制作基础(适合入门)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《游戏外挂制作基础(适合入门)》由会员分享,可在线阅读,更多相关《游戏外挂制作基础(适合入门)(11页珍藏版)》请在金锄头文库上搜索。

1、游戏外挂制作基本(适合入门)一、 前言 所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用至少的时间和金钱去完毕功力升级和过关斩将。虽然,目前对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此刊登任何个人意见,让时间去阐明一切吧。 不管游戏外挂程序是不是“合法”身份,但是它却是具有一定的技术含量的,在这些小小程序中使用了许多高品位技术,如拦截Sock技术、拦截API技术、模拟键盘与鼠标技术、直接修改程序内存技术等等。本文将对常用的游戏外挂中使用的技术进行全面剖析。二、结识外挂 游戏外挂的历史可以追溯到单机版游戏时代,

2、只但是当时它使用了另一种更通俗易懂的名字?游戏修改器。它可以在游戏中追踪锁定游戏主人公的各项能力数值。这样玩家在游戏中可以达到主角不掉血、不耗费魔法、不消耗金钱等目的。这样减少了游戏的难度,使得玩家更容易通关。 随着网络游戏的时代的来临,游戏外挂在原有的功能之上进行了新的发展,它变得更加多种多样,功能更加强大,操作更加简朴,以至有些游戏的外挂已经成为一种体系,例如石器时代,外挂品种达到了几十种,自动战斗、自动行走、自动练级、自动补血、加速、不遇敌、原地遇敌、迅速增长经验值、按键精灵几乎无所不包。 游戏外挂的设计重要是针对于某个游戏开发的,我们可以根据它针对的游戏的类型可大体可将外挂分为两种大类

3、。 一类是将游戏中大量繁琐和无聊的袭击动作使用外挂自动完毕,以协助玩家轻松搞定袭击对象并可以迅速的增长玩家的经验值。例如在龙族中有一种工作的设定,玩家的工作级别越高,就可以驾驭越好的装备。但是增长工作级别却不是一件有趣的事情,毋宁说是反复枯燥的机械劳动。如果你想做法师用的杖,一方面需要做基本工作-?砍树。砍树的措施很简朴,在一棵大树前不断的点鼠标就可以了,每10的经验升一级。这就意味着玩家要在大树前不断的点击鼠标,这种无聊的事情通过按键精灵就可以解决。外挂的按键精灵功能可以让玩家挣脱无趣的点击鼠标的工作。 另一类是由外挂程序产生欺骗性的网络游戏封包,并将这些封包发送到网络游戏服器,运用这些虚假

4、信息欺骗服务器进行游戏数值的修改,达到修改角色能力数值的目的。此类外挂程序针对性很强,一般在设计时都是针对某个游戏某个版本来做的,由于每个网络游戏服务器与客户端交流的数据包各不相似,外挂程序必须要对欺骗的网络游戏服务器的数据包进行分析,才干产生服务器辨认的数据包。此类外挂程序也是目前最流利的一类游戏外挂程序。 此外,目前诸多外挂程序功能强大,不仅实现了自动动作代理和封包功能,并且还提供了对网络游戏的客户端程序的数据进行修改,以达到欺骗网络游戏服务器的目的。我相信,随着网络游戏商家的反外挂技术的进展,游戏外挂将会产生更多更优秀的技术,让我们期待着看场技术大战吧. 三、外挂技术综述 可以将开发游戏

5、外挂程序的过程大体上划分为两个部分: 前期部分工作是对外挂的主体游戏进行分析,不同类型的外挂分析主体游戏的内容也不相似。如外挂为上述谈到的外挂类型中的第一类时,其分析过程常是针对游戏的场景中的袭击对象的位置和分布状况进行分析,以实现外挂自动进行袭击以及位置移动。如外挂为外挂类型中的第二类时,其分析过程常是针对游戏服务器与客户端之间通讯包数据的构造、内容以及加密算法的分析。因网络游戏公司一般都不会发布其游戏产品的通讯包数据的构造、内容和加密算法的信息,因此对于开发第二类外挂成功的核心在于与否能对的分析游戏包数据的构造、内容以及加密算法,虽然可以使用某些工具辅助分析,但是这还是一种坚苦而复杂的工作

6、。后期部分工作重要是根据前期对游戏的分析成果,使用大量的程序开发技术编写外挂程序以实现对游戏的控制或修改。如外挂程序为第一类外挂时,一般会使用到鼠标模拟技术来实现游戏角色的自动位置移动,使用键盘模拟技术来实现游戏角色的自动袭击。如外挂程序为第二类外挂时,一般会使用到挡截Soc和挡截API函数技术,以挡截游戏服务器传来的网络数据包并将数据包修改后封包后传给游戏服务器。此外,尚有许多外挂使用对游戏客户端程序内存数据修改技术以及游戏加速技术。本文重要是针对开发游戏外挂程序后期使用的程序开发技术进行探讨,重点简介的如下几种在游戏外挂中常使用的程序开发技术: 动作模拟技术:重要涉及键盘模拟技术和鼠标模拟

7、技术。 封包技术:重要涉及挡截Sock技术和挡截PI技术。四、动作模拟技术 我们在前面简介过,几乎所有的游戏均有大量繁琐和无聊的袭击动作以增长玩家的功力,尚有那些数不完的迷宫,这些仿佛已经成为了角色游戏的代名词。目前,外挂可以协助玩家从这些繁琐而无聊的工作中挣脱出来,专注于游戏情节的进展。外挂程序为了实现自动角色位置移动和自动袭击等功能,需要使用到键盘模拟技术和鼠标模拟技术。下面我们将重点简介这些技术并编写一种简朴的实例协助读者理解动作模拟技术的实现过程。 鼠标模拟技术 几乎所有的游戏中都使用了鼠标来变化角色的位置和方向,玩家仅用一种小小的鼠标,就可以使角色畅游天下。那么,我们如何实目前没有玩

8、家的参与下角色也可以自动行走呢。其实实现这个并不难,仅仅几种Window I函数就可以搞定,让我们先来结识结识这些A函数。(1) 模拟鼠标动作A函数mouse_event,它可以实现模拟鼠标按下和放开等动作。VOIDmos_even( DWOR wFlags, / 鼠标动作标记。 DWORDd, / 鼠标水平方向位置。 WORD dy, / 鼠标垂直方向位置。 DWRD wD, /鼠标轮子转动的数量。 DWORD dwExtaIno / 一种关联鼠标动作辅加信息。 ); 其中,dlgs表达了多种各样的鼠标动作和点击活动,它的常用取值如下: MOUSEEVNTF_MO表达模拟鼠标移动事件。MOS

9、EENTF_LEFTDWN 表达模拟按下鼠标左键。 OUSEVNTFLEFTUP 表达模拟放开鼠标左键。 MOUSEVNTF_RIHDOWN 表达模拟按下鼠标右键。 MUSENF_IGHT 表达模拟放开鼠标右键。 MOUSEEENTF_IDDLEWN 表达模拟按下鼠标中键。 MOUEENTF_MIDLEP 表达模拟放开鼠标中键。 ()、设立和获取目前鼠标位置的API函数。获取目前鼠标位置使用GCursoos()函数,设立目前鼠标位置使用etCroPos()函数。 OOL etursoros( LPINTlpP / 返回鼠标的目前位置。); B SeurrPos( int X,/鼠标的水平方向位

10、置。 int Y/鼠标的垂直方向位置。 );一般游戏角色的行走都是通过鼠标移动至目的地,然后按一下鼠标的按钮就搞定了。下面我们使用上面简介的API函数来模拟角色行走过程。 CPoin doint,ewPoin; GturorP(&olPnt); /保存目前鼠标位置。 newtx = olPot.x+40; ewi= ldPoin.y+10; SetusoPos(newPon,newPoint.); /设立目的地位置。useven(MOUSEVNTF_RHDWN,0,0,0,0);/模拟按下鼠标右键。 mou_een(OEEVENF_IGTU,,0,0,0);/模拟放开鼠标右键。 键盘模拟技术在

11、诸多游戏中,不仅提供了鼠标的操作,并且还提供了键盘的操作,在对袭击对象进行袭击时还可以使用快捷键。为了使这些袭击过程可以自动进行,外挂程序需要使用键盘模拟技术。像鼠标模拟技术同样,Windows AI也提供了一系列PI函数来完毕对键盘动作的模拟。模拟键盘动作AP函数eb_et,它可以模拟对键盘上的某个或某些键进行按下或放开的动作。 VOD keybd_even( YE bV, / 虚拟键值。 BYTE bSan,/硬件扫描码。 DORD dwlags, / 动作标记。 DORD dEtaInf / 与键盘动作关联的辅加信息。 ); 其中,Vk表达虚拟键值,其实它是一种Y类型值的宏,其取值范畴为

12、24。有关虚拟键值表请在MSDN上使用核心字“Virtu-y Codes”查找有关资料。bScan表达当键盘上某键被按下和放开时,键盘系统硬件产生的扫描码,我们可以MapVirtualKe()函数在虚拟键值与扫描码之间进行转换。dwFlas表达多种样的键盘动作,它有两种取值:KTEXTNDEDKEY和KEYEVNTF_KEUP。责任编辑: 下面我们使用一段代码实目前游戏中按下ft+快捷键对袭击对象进行袭击。 keybd_evnt(VK_ONROL,Mapiruae(K_COROL,0),0,); /按下CTRL键。 kyb_eent(0x52,MapVirtalKe(0x52,),0);/键下

13、R键。 ybdeent(052,MapVtalKy(0x2,0),KEYENF_KYU,0);/放开R键。 keb_event(VK_COTROL,MartuaKe(VCONL,0), KEVENF_KEUP,0);/放开CTRL键。3 激活外挂上面简介的鼠标和键盘模拟技术实现了对游戏角色的动作部分的模拟,但要想外挂能工作于游戏之上,还需要将其与游戏的场景窗口联系起来或者使用一种激活键,就象按键精灵的那个激活键同样。我们可以用GetWndow函数来枚举窗口,也可以用indwnow函数来查找特定的窗口。此外尚有个ndindw函数可以找到窗口的子窗口,当游戏切换场景的时候我们可以用idWdow来拟

14、定些目前窗口的特性,从而判断与否还在这个场景,措施诸多了,例如可以GetinoIo来拟定某些东,例如当查找不到某个按钮的时候就阐明游戏场景已经切换了等等措施。当使用激活键进行关联,需要使用Hook技术开发一种全局键盘钩子,在这里就不具体简介全局钩子的开发过程了,在背面的实例中我们将会使用到全局钩子,届时将学习到全局钩子的有关知识。4.实例实现 通过上面的学习,我们已经基本具有了编写动作式游戏外挂的能力了。下面我们将创立一种画笔程序外挂,它实现自动移动画笔字光标的位置并写下一种红色的“”字。以这个实例为基本,加入相应的游戏动作规则,就可以实现一种完整的游戏外挂。这里作者不想使用某个游戏作为例子来开发外挂(因没有游戏商家的授权啊!),如读者感爱好的话可以找一种游戏试试,最佳仅做测试技术用。 一方面,我们需要编写一种全局钩子,使用它来激活外挂,激活键为F10。创立全局钩子环节如下: (1).选择MF ppard(DLL)创立项目Activ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号