游戏机器人的开发工具及开发步骤.doc_第1页
游戏机器人的开发工具及开发步骤.doc_第2页
游戏机器人的开发工具及开发步骤.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

这个系列文章,是没有事先打草稿的,纯属信手写来,所以,其中的条理性可能不太好,我会在以后的整理中将稿子再好好整理。我们接着上一次的内容,说一说游戏机器人的开发工具和开发步骤。游戏机器人的开发包括两个重要方面,它们是:封包分析和加解密。当然,这是一种相当宽泛的说法,非常不严密。具体地来说,在封包分析中,又包括:封包结构的确立,封包数据内容的解密,封包校验码的生成,封包序号码的生成等。而程序加解密中除了游戏主执行程序文件本身的脱壳之外,还主要包括使用静态分析和动态追踪两种方法解决以下主要问题:用户名及密码的解密,封包校验码的生成等。现在市面上出现的网游,在封包内容上已经很少不进行加密了,当然,加密的方案不尽相同,有的是对游戏中的所有封包内容进行加密,而有的只针对于敏感的封包内容进行加密,比如登录封包,战斗封包和移动封包等。所以,游戏机器人的开发工具,除了程序语言工具之外,还应该有封包分析,加/解密,数值换算等配套工具。总的来说,游戏机器人的开发工具主要包括:1.至少一种程序语言工具,支持socket网络编程即可,如:VC,VB,DEPHI等。现在市面上出现的游戏机器人,也多以这三种语言为主要开发工具(PEiD软件可以帮助查看程序使用的是何种开发工具编译的,并可对程序所加的壳进行识别,下载地址:/tools/unpack/File%20analysers/peid/PEiD.zip(下载地址来自看雪网站))。笔者使用的是Delphi7.0,其中的TClientSocket组件或 Indy控件组中的TIdTCPClient均可用来进行游戏机器人开发,其中TClientSocket在Delphi7.0的默认安装中是没有的,必须手动安装,安装方法是:Component - Install Packages - Add - .Program FilesBorlandDelphi7Bindclsockets70.bpl。2.至少一种用于截包的工具软件。截包工具分为两类,一种是截获流经网卡的数据包,一种是截获指定应用程序的包。两种截包工具的工作原理不一样,前者是底层的,通过网卡驱动层来获取所有流经网卡的数据,而后者则是通过替换SOCK函数的方式先于应用程序获得网络数据包转而进行自己的处理。对于前者,代表性的工具有:sniffer pro ,commview等;而对于后者,代表性的工具有:wpe等。这几种工具最新版都可以很方便地从里找到。笔者在使用时,是两种配合着使用的,但主要的还是使用commview。在使用commview之前,我使用sniffer pro的,但发现了commview之后,就彻底抛弃了sniffer pro,只能用一句来形容:commview太棒了。关于commiew的具体使用方法和技巧,我会在下一节的封包分析一文中进行详细阐述。3.反汇编及调试工具。很多人都知道,不加密的网络游戏时代已经运去,现在如果有哪一款网络游戏不加密,那么在很短的时间内,该游戏的外挂就会满天飞。网络游戏的加密可以分很多不同的层次,有网络数据包级别上的加密,有客户端游戏数据文件上的加密(比如物品文件),有客户端执行程序上的加密和加壳等等,凡此种种,不一而足,解密的方法也变得越来越复杂。从总体的策略上来说,解密方法有两大类:静态分析和动态调试。静态分析指使用特定的软件将游戏可执行主程序反汇编成汇编代码后,对汇编代码进行静态分析和比较。动态调试是指特定的软件对游戏可执行主程序进行动态的跟踪调试,跟踪数据的变化规律和程序的执行流程。静态分析常用的软件主要有IDA pro等,而动态调试常用的软件主要有softice和ollydbg等。需要指出的是,在进行解密时,静态分析和动态调试两种方法是交叉使用的,是互为补充的。这两种软件的具体使用方法,我会在后续的章节中予以介绍。4.其它在程序查/脱壳,封包分析和数据计算等方面中的常用工具。这些工具包括:查/脱壳工具,m2m异或计算工具,ascii码换算工具,windows自带的计算器(科学型方式下主要用于进制转换)。在/tools/unpacker.htm中有一些查/脱壳工具,但这里的脱壳工具主要是针对于加壳时使用的是程序加壳的方式而不是手动加壳的方式,针对于手动加壳的情况必须使用的手动脱壳的方式。在“加解密”这方面的书籍中,我向大家推荐看雪论坛出的“加密与解密(第2版)”,它可以使有汇编功底的游戏机器人初学者在较短时间内深入核心。如今的网络游戏,由于数据交互的频率和流量非常大,所以,出于效率和游戏流畅感方面的考虑,不太可能采用非常复杂的封包加密算法,很多情况下,封包用的是异或加密,即:让原来的封包数据与某个数值进行异或后产生加密的数据,至于这个参与异或的数值具体是多少就有待基于经验的分析和推理了。不过读者不用怕,封包分析最主要的是要沉得住气,耐心,细致的考虑,多尝试几种分析方案,我们下一节会具体探讨封包分析中的几种策略。ASCII码换算工具是封包分析的必备工具,通过它,我们可以根据中英文字词查到其所对应的ascii码,也可以根据ascii码查到其所对应的中英文字词。不过,ASCII码的换算,在commview中是已经集成了的,在commview中显示网络数据包内容时,就会显示对应的ascii码,但由于其排版问题,其中的某些字词显示可能是乱码,所以,一个独立的换算工具还是必须的。网络数据在被截获时,使用的是十六进制表示,而我们通常的思维模式是建立在十进制基础上的,在计算诸如生命值,法力值这些数据时,我们经常需要在十进制和十六进制以及其它进制之间进行转换。使用windows自带的计算器,设置成科学型时,可以很方便地实现进制间的转换。以上就是我们进行游戏机器人开发所必备的工具软件,当然,仅仅知道这些软件的名字是毫无用处的,关键的是要学会熟练地使用这些软件来为我们的开发实践服务。在给大家介绍了这些工具后,我们向大家给出游戏机器人开发的一般步骤:1.对游戏客户端主执行程序进行查壳和脱壳操作,使其能被反汇编成正常的汇编代码。2.对游戏进行初步的封包分析,分析出封包总体结构,并观察其是否加密。3.对脱壳后的游戏主执行程序进行反汇编,并进行静态分析和动态调试,找出其重要的加密算法。比如:用户名和密码的加密,网络数据包的加密,网络数据包中校验码(有的游戏不含校验码或有的数据包中没有校验码)的生成算法等。4.对游戏进行深

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论