《网络机器人(3)----游戏机器人开发工具及开发步骤x.docx》由会员分享,可在线阅读,更多相关《网络机器人(3)----游戏机器人开发工具及开发步骤x.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、网络机器人(3)-游戏机器人开发工具及开发步骤x网络机器人(3)- 嬉戏机器人的开发工具及开发步骤 marginwidth=0 marginheight=0 src= frameborder=0 width=728 scrolling=no height=90> 本文作者:sodme 本文出处: 版权声明:本文可以不经作者同意随意转载,但转载时烦请保留文章起先前两行的版权、作者及出处信息。由于手头的一个网游项目正在启动,所以,这一篇文章与上一次的文章之间相隔了很长的时间,特向读者致歉,让大家久等了。这个系列文章,是没有事先打草稿的,纯属信手写来,所以,其中的条理性可能不太好,我会在以后的
2、整理中将稿子再好好整理。我们接着上一次的内容,说一说嬉戏机器人的开发工具和开发步骤。嬉戏机器人的开发包括两个重要方面,它们是:封包分析和加解密。当然,这是一种相当宽泛的说法,特别不严密。详细地来说,在封包分析中,又包括:封包结构的确立,封包数据内容的解密,封包校验码的生成,封包序号码的生成等。而程序加解密中除了嬉戏主执行程序文件本身的脱壳之外,还主要包括运用静态分析和动态追踪两种方法解决以下主要问题:用户名及密码的解密,封包校验码的生成等。现在市面上出现的网游,在封包内容上已经很少不进行加密了,当然,加密的方案不尽相同,有的是对嬉戏中的全部封包内容进行加密,而有的只针对于敏感的封包内容进行加密
3、,比如登录封包,战斗封包和移动封包等。所以,嬉戏机器人的开发工具,除了程序语言工具之外,还应当有封包分析,加/解密,数值换算等配套工具。总的来说,嬉戏机器人的开发工具主要包括:1.至少一种程序语言工具,支持 socket 网络编程即可,如:VC,VB,DEPHI 等。现在市面上出现的嬉戏机器人,也多以这三种语言为主要开发工具(PEiD 软件可以帮助查看程序运用的是何种开发工具编译的,并可对程序所加的壳进行识别,下载地址: (下载地址来自看雪网站))。笔者运用的是 Delphi7.0,其中的 TClientSocket 组件或 Indy 控件组中的 TIdTCPClient 均可用来进行嬉戏机器
4、人开发,其中TClientSocket 在 Delphi7.0 的默认安装中是没有的,必需手动安装,安装方法是:Component -> Install Packages -> Add -> ./Program Files/Borland/Delphi7/Bin/dclsockets70.bpl。2.至少一种用于截包的工具软件。截包工具分为两类,一种是截获流经网卡的数据包,一种是截获指定应用程序的包。两种截包工具的工作原理不一样,前者是底层的,通过网卡驱动层来获得全部流经网卡的数据,而后者则是通过替换 SOCK 函数的方式先于应用程序获得网络数据包转而进行自己的处理。对于前者
5、,代表性的工具有:sniffer pro ,commview 等;而对于后者,代表性的工具有:wpe 等。这几种工具最新版都可以很便利地从 里找到。笔者在运用时,是两种协作着运用的,但主要的还是运用commview。在运用 commview 之前,我运用 sniffer pro 的,但发觉了 commview之后,就彻底抛弃了 sniffer pro,只能用一句来形容:commview 太棒了。关于commiew 的详细运用方法和技巧,我会在下一节的封包分析一文中进行具体阐述。3.反汇编及调试工具。许多人都知道,不加密的网络嬉戏时代已经运去,现在假如有哪一款网络嬉戏不加密,那么在很短的时间内,
6、该嬉戏的外挂就会满天飞。网络嬉戏的加密可以分许多不同的层次,有网络数据包级别上的加密,有客户端嬉戏数据文件上的加密(比如物品文件),有客户端执行程序上的加密和加壳等等,凡此种种,不一而足,解密的方法也变得越来越困难。从总体的策略上来说,解密方法有两大类:静态分析和动态调试。静态分析指运用特定的软件将嬉戏可执行主程序反汇编成汇编代码后,对汇编代码进行静态分析和比较。动态调试是指特定的软件对嬉戏可执行主程序进行动态的跟踪调试,跟踪数据的改变规律和程序的执行流程。静态分析常用的软件主要有 IDA pro 等,而动态调试常用的软件主要有softice 和 ollydbg 等。须要指出的是,在进行解密时
7、,静态分析和动态调试两种方法是交叉运用的,是互为补充的。这两种软件的详细运用方法,我会在后续的章节中予以介绍。4.其它在程序查/脱壳,封包分析和数据计算等方面中的常用工具。这些工具包括:查/脱壳工具,m2m 异或计算工具,ascii 码换算工具,windows 自带的计算器(科学型方式下主要用于进制转换)。在 中有一些查/脱壳工具,但这里的脱壳工具主要是针对于加壳时运用的是程序加壳的方式而不是手动加壳的方式,针对于手动加壳的状况必需运用的手动脱壳的方式。在加解密这方面的书籍中,我向大家举荐看雪论坛出的加密与解密(第 2 版),它可以使有汇编功底的嬉戏机器人初学者在较短时间内深化核心。如今的网络
8、嬉戏,由于数据交互的频率和流量特别大,所以,出于效率和嬉戏流畅感方面的考虑,不太可能采纳特别困难的封包加密算法,许多状况下,封包用的是异或加密,即:让原来的封包数据与某个数值进行异或后产生加密的数据,至于这个参加异或的数值详细是多少就有待基于阅历的分析和推理了。不过读者不用怕,封包分析最主要的是要沉得住气,耐性,细致的考虑,多尝试几种分析方案,我们下一节会详细探讨封包分析中的几种策略。ASCII 码换算工具是封包分析的必备工具,通过它,我们可以依据中英文字词查到其所对应的 ascii 码,也可以依据 ascii 码查到其所对应的中英文字词。不过,ASCII 码的换算,在 commview 中是
9、已经集成了的,在 commview 中显示网络数据包内容时,就会显示对应的 ascii 码,但由于其排版问题,其中的某些字词显示可能是乱码,所以,一个独立的换算工具还是必需的。网络数据在被截获时,运用的是十六进制表示,而我们通常的思维模式是建立在十进制基础上的,在计算诸如生命值,法力值这些数据时,我们常常须要在十进制和十六进制以及其它进制之间进行转换。运用 windows 自带的计算器,设置成科学型时,可以很便利地实现进制间的转换。以上就是我们进行嬉戏机器人开发所必备的工具软件,当然,仅仅知道这些软件的名字是毫无用处的,关键的是要学会娴熟地运用这些软件来为我们的开发实践服务。在给大家介绍了这些
10、工具后,我们向大家给出嬉戏机器人开发的一般步骤:1.对嬉戏客户端主执行程序进行查壳和脱壳操作,使其能被反汇编成正常的汇编代码。2.对嬉戏进行初步的封包分析,分析出封包总体结构,并视察其是否加密。3.对脱壳后的嬉戏主执行程序进行反汇编,并进行静态分析和动态调试,找出其重要的加密算法。比如:用户名和密码的加密,网络数据包的加密,网络数据包中校验码(有的嬉戏不含校验码或有的数据包中没有校验码)的生成算法等。4.对嬉戏进行深化的封包分析,确定出重要类型(行走,说话,组队,攻击等)网络数据包的结构及各位置的详细含义和生成方法。5.运用建模工具设计嬉戏机器人功能。(可选)6.待行走,说话,组队,攻击等重要封包分析出来后,便可以进行初步的代码实现了。在实现的过程中,再依据新分析出的封包进一步完善机器人的功能。下一次,我们讲封包分析中的封包分析初步及截包软件运用。感谢大家的支持。