分享
 
 
 

网络机器人(3)----游戏机器人的开发工具及开发步骤

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

由于手头的一个网游项目正在启动,所以,这一篇文章与上一次的文章之间相隔了很长的时间,特向读者道歉,让大家久等了。

这个系列文章,是没有事先打草稿的,纯属信手写来,所以,其中的条理性可能不太好,我会在以后的整理中将稿子再好好整理。我们接着上一次的内容,说一说游戏机器人的开发工具和开发步骤。

游戏机器人的开发包括两个重要方面,它们是:封包分析和加解密。当然,这是一种相当宽泛的说法,非常不严密。具体地来说,在封包分析中,又包括:封包结构的确立,封包数据内容的解密,封包校验码的生成,封包序号码的生成等。而程序加解密中除了游戏主执行程序文件本身的脱壳之外,还主要包括使用静态分析和动态追踪两种方法解决以下主要问题:用户名及密码的解密,封包校验码的生成等。现在市面上出现的网游,在封包内容上已经很少不进行加密了,当然,加密的方案不尽相同,有的是对游戏中的所有封包内容进行加密,而有的只针对于敏感的封包内容进行加密,比如登录封包,战斗封包和移动封包等。

所以,游戏机器人的开发工具,除了程序语言工具之外,还应该有封包分析,加/解密,数值换算等配套工具。总的来说,游戏机器人的开发工具主要包括:

1.至少一种程序语言工具,支持socket网络编程即可,如:VC,VB,DEPHI等。现在市面上出现的游戏机器人,也多以这三种语言为主要开发工具(PEiD软件可以帮助查看程序使用的是何种开发工具编译的,并可对程序所加的壳进行识别,下载地址:http://www.pediy.com/tools/unpack/File%20analysers/peid/PEiD.zip(下载地址来自看雪网站))。笔者使用的是Delphi7.0,其中的TClientSocket组件 或 Indy控件组中的TIdTCPClient均可用来进行游戏机器人开发,其中TClientSocket在Delphi7.0的默认安装中是没有的,必须手动安装,安装方法是:Component -> Install Packages -> Add -> ...\Program Files\Borland\Delphi7\Bin\dclsockets70.bpl。

2.至少一种用于截包的工具软件。截包工具分为两类,一种是截获流经网卡的数据包,一种是截获指定应用程序的包。

两种截包工具的工作原理不一样,前者是底层的,通过网卡驱动层来获取所有流经网卡的数据,而后者则是通过替换SOCK函数的方式先于应用程序获得网络数据包转而进行自己的处理。对于前者,代表性的工具有:sniffer pro ,commview等;而对于后者,代表性的工具有:wpe等。这几种工具最新版都可以很方便地从google.com里找到。笔者在使用时,是两种配合着使用的,但主要的还是使用commview。在使用commview之前,我使用sniffer pro的,但发现了commview之后,就彻底抛弃了sniffer pro,只能用一句来形容:commview太棒了。关于commiew的具体使用方法和技巧,我会在下一节的封包分析一文中进行详细阐述。

3.反汇编及调试工具。很多人都知道,不加密的网络游戏时代已经运去,现在如果有哪一款网络游戏不加密,那么在很短的时间内,该游戏的外挂就会满天飞。

网络游戏的加密可以分很多不同的层次,有网络数据包级别上的加密,有客户端游戏数据文件上的加密(比如物品文件),有客户端执行程序上的加密和加壳等等,凡此种种,不一而足,解密的方法也变得越来越复杂。从总体的策略上来说,解密方法有两大类:静态分析和动态调试。静态分析指使用特定的软件将游戏可执行主程序反汇编成汇编代码后,对汇编代码进行静态分析和比较。动态调试是指特定的软件对游戏可执行主程序进行动态的跟踪调试,跟踪数据的变化规律和程序的执行流程。静态分析常用的软件主要有IDA pro等,而动态调试常用的软件主要有softice和ollydbg等。需要指出的是,在进行解密时,静态分析和动态调试两种方法是交叉使用的,是互为补充的。这两种软件的具体使用方法,我会在后续的章节中予以介绍。

4.其它在程序查/脱壳,封包分析和数据计算等方面中的常用工具。这些工具包括:查/脱壳工具,m2m异或计算工具,ascii码换算工具,windows自带的计算器(科学型方式下主要用于进制转换)。

http://www.pediy.com/tools/unpacker.htm中有一些查/脱壳工具,但这里的脱壳工具主要是针对于加壳时使用的是程序加壳的方式而不是手动加壳的方式,针对于手动加壳的情况必须使用的手动脱壳的方式。在“加解密”这方面的书籍中,我向大家推荐看雪论坛出的“加密与解密(第2版)”,它可以使有汇编功底的游戏机器人初学者在较短时间内深入核心。

如今的网络游戏,由于数据交互的频率和流量非常大,所以,出于效率和游戏流畅感方面的考虑,不太可能采用非常复杂的封包加密算法,很多情况下,封包用的是异或加密,即:让原来的封包数据与某个数值进行异或后产生加密的数据,至于这个参与异或的数值具体是多少就有待基于经验的分析和推理了。不过读者不用怕,封包分析最主要的是要沉得住气,耐心,细致的考虑,多尝试几种分析方案,我们下一节会具体探讨封包分析中的几种策略。

ASCII码换算工具是封包分析的必备工具,通过它,我们可以根据中英文字词查到其所对应的ascii码,也可以根据ascii码查到其所对应的中英文字词。不过,ASCII码的换算,在commview中是已经集成了的,在commview中显示网络数据包内容时,就会显示对应的ascii码,但由于其排版问题,其中的某些字词显示可能是乱码,所以,一个独立的换算工具还是必须的。

网络数据在被截获时,使用的是十六进制表示,而我们通常的思维模式是建立在十进制基础上的,在计算诸如生命值,法力值这些数据时,我们经常需要在十进制和十六进制以及其它进制之间进行转换。使用windows自带的计算器,设置成科学型时,可以很方便地实现进制间的转换。

以上就是我们进行游戏机器人开发所必备的工具软件,当然,仅仅知道这些软件的名字是毫无用处的,关键的是要学会熟练地使用这些软件来为我们的开发实践服务。在给大家介绍了这些工具后,我们向大家给出游戏机器人开发的一般步骤:

1.对游戏客户端主执行程序进行查壳和脱壳操作,使其能被反汇编成正常的汇编代码。

2.对游戏进行初步的封包分析,分析出封包总体结构,并观察其是否加密。

3.对脱壳后的游戏主执行程序进行反汇编,并进行静态分析和动态调试,找出其重要的加密算法。比如:用户名和密码的加密,网络数据包的加密,网络数据包中校验码(有的游戏不含校验码或有的数据包中没有校验码)的生成算法等。

4.对游戏进行深入的封包分析,确定出重要类型(行走,说话,组队,攻击等)网络数据包的结构及各位置的具体含义和生成方法。

5.使用建模工具设计游戏机器人功能。(可选)

6.待行走,说话,组队,攻击等重要封包分析出来后,便可以进行初步的代码实现了。在实现的过程中,再根据新分析出的封包进一步完善机器人的功能。

下一次,我们讲封包分析中的封包分析初步及截包软件使用。谢谢大家的支持。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有