- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
外挂开发
外挂开发
才能产生服务器识别的数据包。这类外挂程序也是当前最流
利的一类游戏外挂程序。
另外,现在很多外挂程序功能强大,不仅实现了自动动作代理和封包功能,而且还
提供了对网络游戏的客户端程
序的数据进行修改,以达到欺骗网络游戏服务器的目的。我相信,随着网络游戏商家的
反外挂技术的进展,游戏外挂
将会产生更多更优秀的技术,让我们期待着看场技术大战吧......
三、外挂技术综述
可以将开发游戏外挂程序的过程大体上划分为两个部分:
前期部分工作是对外挂的主体游戏进行分析,不同类型的外挂分析主体游戏的内容
也不相同。如外挂为上述谈到
的外挂类型中的第一类时,其分析过程常是针对游戏的场景中的攻击对象的位置和分布
情况进行分析,以实现外挂自
动进行攻击以及位置移动。如外挂为外挂类型中的第二类时,其分析过程常是针对游戏
??务器与客户端之间通讯包数
据的结构、内容以及加密算法的分析。因网络游戏公司一般都不会公布其游戏产品的通
讯包数据的结构、内容和加密
算法的信息,所以对于开发第二类外挂成功的关键在于是否能正确分析游戏包数据的结
构、内容以及加密算法,虽然
可以使用一些工具辅助分析,但是这还是一种坚苦而复杂的工作。
后期部分工作主要是根据前期对游戏的分析结果,使用大量的程序开发技术编写外
挂程序以实现对游戏的控制或
修改。如外挂程序为第一类外挂时,通常会使用到鼠标模拟技术来实现游戏角色的自动
位置移动,使用键盘模拟技术
来实现游戏角色的自动攻击。如外挂程序为第二类外挂时,通常会使用到挡截Sock和挡
截API函数技术,以挡截游戏服
务器传来的网络数据包并将数据包修改后封包后传给游戏服务器。另外,还有许多外挂
使用对游戏客户端程序内存数
据修改技术以及游戏加速技术。
本文主要是针对开发游戏外挂程序后期使用的程序开发技术进行探讨,重点介绍的
如下几种在游戏外挂中常使用
的程序开发技术:
● 动作模拟技术:主要包括键盘模拟技术和鼠标模拟技术。
● 封包技术:主要包括挡截Sock技术和挡截API技术。
四、动作模拟技术
我们在前面介绍过,几乎所有的游戏都有大量繁琐和无聊的攻击动作以增加玩家的
功力,还有那些数不完的迷宫
,这些好像已经成为了角色游戏的代名词。现在,外挂可以帮助玩家从这些繁琐而无聊
的工作中摆脱出来,专注于游
戏情节的进展。外挂程序为了实现自动角色位置移动和自动攻击等功能,需要使用到键
盘模拟技术和鼠标模拟技术。
下面我们将重点介绍这些技术并编写一个简单的实例帮助读者理解动作模拟技术的实现
过程。
1. 鼠标模拟技术
几乎所有的游戏中都使用了鼠标来改变角色的位置和方向,玩家仅用一个小小的鼠
标,就可以使角色畅游天下。
那么,我们如何实现在没有玩家的参与下角色也可以自动行走呢。其实实现这个并不
难,仅仅几个Windows API函数就
可以搞定,让我们先来认识认识这些API函数。
(1) 模拟鼠标动作API函数mouse_event,它可以实现模拟鼠标按下和放开等动作。
VOID mouse_event(
DWORD dwFlags, // 鼠标动作标识。
DWORD dx, // 鼠标水平方向位置。
DWORD dy, // 鼠标垂直方向位置。
DWORD dwData, // 鼠标轮子转动的数量。
DWORD dwExtraInfo // 一个关联鼠标动作辅加信息。
);
其中,dwFlags表示了各种各样的鼠标动作和点击活动,它的常用取值如下:
MOUSEEVENTF_MOVE 表示模拟鼠标移动事件。
MOUSEEVENTF_LEFTDOWN 表示模拟按下鼠标左键。
MOUSEEVENTF_LEFTUP 表示模拟放开鼠标左键。
MOUSEEVENTF_RIGHTDOWN 表示模拟按下鼠标右键。
MOUSEEVENTF_RIGHTUP 表示模拟放开鼠标右键。
MOUSEEVENTF_MIDDLEDOWN 表示模拟按下鼠标中键。
MOUSEEVENTF_MIDDLEUP 表示模拟放开鼠标中键。
(2)、设置和获取当前鼠标位置的API函数。获取当前鼠标位置使用GetCursorPos()
函数,设置当前鼠标位置使用
SetCursorPos()函数。
BOOL GetCursorPos(
LPPOINT lpPoint // 返回鼠标的当前位置。
);
BOOL SetCursorPos(
int X, // 鼠标的水平方向位置。
int Y //鼠标的垂直方向位置。
);
通常游戏角色的行走都是通过鼠标移动至目的地,然后按一下鼠标的按钮就搞定
了。下面我们使用上面介绍的API
函数来模拟角色行走过程。
CPoint
原创力文档


文档评论(0)