外挂制作教程

外挂制作教程

ID:37028437

大小:105.50 KB

页数:32页

时间:2019-05-15

上传者:山楂树
外挂制作教程_第1页
外挂制作教程_第2页
外挂制作教程_第3页
外挂制作教程_第4页
外挂制作教程_第5页
资源描述:

《外挂制作教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

为什么要学制作外挂  学习制作外挂,其实是学习一门网络技术,不是仅仅是游戏!  我们玩游戏,游戏公司玩我们,你可以忍受游戏的不平衡吗?你可以忍受游戏的BUG吗,你愿意交钱去买外挂(有时后还可能上当受骗)吗?你不愿意自己做外挂自己用吗?你不愿意做几个外挂给你的朋友使用吗?你不愿意体验制作外挂的乐趣吗?你不愿意自己的游戏ID有很多钱,很好的装备,很高的等级吗?看到别人拿着外挂到处惹是生非,你心理平衡吗?所以,我们要自己制作外挂,做自己的外挂!  学习制作外挂,不是复杂的事,为什么不花点时间来学习学习呢?  学习外挂有3点好处:  1、学到一门技术(关于网络)  2、可以更好地玩游戏,  3、可以利用外挂赚到人民币制作外挂的可行性 首先,让我们来看一下网络游戏的工作原理:  网络游戏是这样工作的:1.由服务器记录保存所有用户资料,所有信息的修改都是服务器完成的2.服务器接受客户机的请求发送必要的信息给客户机,以使玩家正常游戏3.服务器接收客户机的信息反馈,并根据反馈信息,对游戏帐号作相应修改  从以上简单的介绍,我们可以看出,网络游戏可以认为是这样工作的:  由客户机电脑操作服务器器电脑,对游戏帐号信息进行修改!  要操纵本地的电脑是很容易的,因此,要显示所有已经从服务器得到的信息是完全可能的,这就可以做到以下功能:  1、游戏没有黑夜,因为地图在本地,全部显示是完全可以做到的!  2.自动加血是没有问题的,因为血的多少也已经发到本地电脑,完全可以用外挂检测到,并在必要时加血,加血本身只是一个鼠标动作,完全可以交给外挂去做。类似的,自动加魔法,自动加气,自动回城、自动打怪、自动采矿卖钱然后再自动回去采、自动练级等等都可以做到!   3.卖东西的过程很经典:你卖东西时,实际就是告诉服务器电脑,你已经将一个东西卖了,真实过程是:你向服务器发送了一个具体物品的封包,如果这个封包正确,服务器就向你的游戏帐号加一定数量的钱,然后再反馈给你一些信息,假如封包不正确,自然就卖不到钱,因此,我们可以利用外挂不断向服务器发送封包,只要正确,那么服务器就认为我们再卖东西,即使我们什么都没有卖,服务器也不断给我们钱,这就是所谓的刷钱。如果封包没有加密,那么这个功能是非常容易实现的,如果封包加密,其实同样可以做到,只是要解密而已,稍微复杂些而已!类似的,就可以实现买东西用假钱(不用钱)。攻击、防御增加,原理都是类似的!  以上的讲解,大家应该明白,其实外挂是每个游戏都可能出现的,只要有人想做,那么就没有做不出外挂的游戏!除非这个游戏不能玩!!学制作外挂难吗  外挂的制作,有容易的,也有难的。要制作简单的外挂,自然不难,如果要制作出功能变态的外挂,就比较难一些了,其次和选择制作外挂的工具也很有关系,例如,利用WPE制作外挂就很简单,只要有初中文化就可以制作出相当强大的外挂,如果用VB来编写外挂,也很简单,而且能实现几乎所有的功能,是学习和制作外挂最理想的工具了,VC也一样,难度大一些的是Delphi这样的开发工具,更难的是C语言,最难的就是汇编语言了,几乎可以认为由于太难掌握而不适合开发外挂。  本教程主要讲述WPE和VB制作外挂的准备知识、制作方法、制作技巧、实例讲解,由浅如深,逐步介入,学习起来是非常简单的,内容详实、资料丰富。从初学者到高级外挂制作者,都详细考虑了的,能让初学者快速入门,能让高级外挂制作者掌握更多外挂制作的方法和资料!可以说是制作外挂从入门到精通的最好教材!  关于外挂制作方面的教材非常少,一般都是只有WPE的简单介绍,关于VB的根本不谈,这是一个普遍现象,使得很多人用WPE按照说明怎么也弄不出来,想用其他软件做又苦于没有一本可以参考的教材,本教材就是在这样的环境下编写的,希望能让跟多的人知道怎样制作外挂,了解这门前沿的知识!外挂是什么?     现在的网络游戏多是基于Internet上客户/服务器模式,服务端程序运行在游戏服务器上,游戏的设计者在其中创造一个庞大的游戏空间,各地的玩家可以通过运行客户端程序同时登录到游戏中。简单地说,网络游戏实际上就是由游戏开发商提供一个游戏环境,而玩家们就是在这个环境中相对自由和开放地进行游戏操作。那么既然在网络游戏中有了服务器这个概念,我们以前传统的修改游戏方法就显得无能为力了。记得我们在单机版的游戏中,随心所欲地通过内存搜索来修改角色的各种属性,这在网络游戏中就没有任何用处了。因为我们在网络游戏中所扮演角色的各种属性及各种重要资料都存放在服务器上,在我们自己机器上(客户端)只是显示角色的状态,所以通过修改客户端内存里有关角色的各种属性是不切实际的。那么是否我们就没有办法在网络游戏中达到我们修改的目的?回答是"否"。我们知道Internet客户/服务器模式的通讯一般采用TCP/IP通信协议,数据交换是通过IP数据包的传输来实现的,一般来说我们客户端向服务器发出某些请求,比如移动、战斗等指令都是通过封包的形式和服务器交换数据。那么我们把本地发出消息称为SEND,意思就是发送数据,服务器收到我们SEND的消息后,会按照既定的程序把有关的信息反馈给客户端,比如,移动的坐标,战斗的类型。那么我们把客户端收到服务器发来的有关消息称为RECV。知道了这个道理,接下来我们要做的工作就是分析客户端和服务器之间往来的数据(也就是封包),这样我们就可以提取到对我们有用的数据进行修改,然后模拟服务器发给客户端,或者模拟客户端发送给服务器,这样就可以实现我们修改游戏的目的了。目前除了修改游戏封包来实现修改游戏的目的,我们也可以修改客户端的有关程序来达到我们的要求。我们知道目前各个服务器的运算能力是有限的,特别在游戏中,游戏服务器要计算游戏中所有玩家的状况几乎是不可能的,所以有一些运算还是要依靠我们客户端来完成,这样又给了我们修改游戏提供了一些便利。比如我们可以通过将客户端程序脱壳来发现一些程序的判断分支,通过跟踪调试我们可以把一些对我们不利的判断去掉,以此来满足我们修改游戏的需求。WPE介绍  WPE(WinsockPacketEditor)它的中文名称是:网络封包编辑器在大多数的编程工具中winsock已经封装成一个控件,成为网络编程的控件,是非常方便的,利用这个控件,编程工具就可以编写外挂工具,例如使用VB就可以非常容易地编写出很出色的外挂。(顺便打个广告:本教材也有使用VB编写外挂教材,注册后就可以学习,利用VB编写外挂比WPE编写的外挂多出很多优点,例如,可以编写注册功能,使你做的外挂让别人使用时必须注册才能使用,WPE做出来的外挂是任何人得到了外挂就可以使用,不能实现限制使用,并且VB对键盘鼠标的控制,对系统的控制都很出色,VB是visialbasic的意思,就是可视化依据basic语言的编程工具,Basic本身就是基本的的意思,是很简单的语言,但是功能却是非常强大,建议大家学习)现在,WPE有两个版本,分别是:WPE1.3和WPEpro0.7前者是使用与win98操作平台,后者适用与win200和winXP操作系统。都有中文版。16进制计算方法 16进制和10进制是不同的,进制是人们规定的的,不是一种自然现象,我们只用0-9表示所有数字,那么大于九的怎么表示呢?我们就规定大于9的就进位,高一位的总是比低一位的大,这样我们可以重复使用0-9这10个数字符号表示所有的数字了,这个就是10进制,然而出于某些原因,我们的网络封包不是10进制,而是16进制,与10进制不同,16进制可以用一个符号表示10,是什么呢?就是A,用B表示11,C表示12,一直到用F表示15,那么怎么将16进制转换为我们熟悉的十进制呢?例如如下的一个16进制F2E93(16)其中括号内16表示前面这个是16进制,我们是这样转化的:F=15,2=2,E=14,9=9,3=3所以:F2E93(16)=15X+2X+14X+9X16+3结果是很大的,不计算了!呵呵,如果实在不是很懂,可以问我,也可以查阅相关书籍!这里我们强烈建议大家使用win98自带的计算器,他带有进位转换功能,可以帮你计算很复杂的数值,很方便的!关于这个,在工具准备里面有详细图解说明!比较法则----相同比较前面说了相同比较,这节我们详细介绍一下:比较下面两个封包:封包一:封包2:区别是不是很小,其中接收部分是完全一样的,但是发送部分有所区别,这个区别是坐标信息!这个封包来源:星际争霸游戏中连机对战,时,一个士兵移动一步和再移动一步产生的封包,动作是完全相同的,所以,不应该有太大区别!下面给出一个在线游戏的封包对比分析:游戏名称:快打旋风线上版?#123发一个小火球:你可能得到如下封包:SEND->00000A09C1100000FF5244再发一个小火球,得到的封包可能就变成这样了!SEND->00000A09C1100000665244 为什么两次不同呢?呵呵,这是游戏了,封包是加密的,不是轻易就可以看出来的了!而且,这里的0A可能有它自己的含义了,不是可以查ASCII表可以查到的了,你需要猜它是什么意思了!我们暂时不分析,到分析游戏封包时再分析,这里主要讲对比!从封包上看,我们两次动作是一样的,因此,得到的封包也还是大致一样的,很相似,区别只在最后几个上,有这样的分析,实际对我们制作滤镜是很有帮助的!如果我们再收集一点其它信息,实际上我们就可以破译这个封包了,如果我们知道这个小火球打到别人身上,伤害值是16,那么我们就可以知道,16(10)=10(16)不会看不明白等号了吧?十进制的16等于16进制的10,那么看看那里有10呢,呵呵,两个封包都有哦,这个就是火球的封包,其中10表示伤害值,如果我们制作一个滤镜,但检测到这个相似的风暴,就自动修改成FF会怎么样呢?FF(16)=15X16+15=255(10)明白了吗?你的小火球攻击将达到255的伤害,是原来的多少倍哦?比较是很简单的,有比较就容易辨认,请您自己多分析一些实际例子,相信您很快就会学到这种方法的!这里不多举例子了!TCP/IP协议简介  TCP/IP协议简介:TCP(transportcontrolprotocol)中文意思就是:传输控制协议。大家都知道,现在的电脑具有非常多的型号,生产电脑的厂家很多,他们的电脑在各种技术上都不完全相同,甚至都有一套自己的标准和控制方法,电脑进入互联网后,文件传输是必不可少的事件。那么,如何在各种不同标准的电脑之间传输文件呢?这就需要一套大家共同遵守的标准,这个标准就是TCP协议,TCP协议工作原理首先是对需要传输的内容打包,包的大小有其自己处理方法,这个我们不用担心,我们最关心的,就是这个包是什么东西,这个包,就是封包。大家一定在很多地方听说过封包,以为是什么神秘莫测的东西,实际上,Intelnet上的电脑每天都在处理封包,TCP协议就是将这些包一个一个地编上号,然后按照一定的次序向通过IP协议已经建立了连接的另一太电脑把封包发送过去,另一台电脑收到这些有编号的封包后,按照编号把封包组装起来,就得到了需要的文件了!这里大家看到了,TCP协议和IP协议是不同的协议,但是他们协同工作,所以大多数场合下,直接称为TCP/IP协议。 顺便讲一下UDP协议,如果在游戏修改中遇到了,也许能用上,UDP(用户数据报协议)是非连接服务,不能保证信息以某种特定的方式到达,事实上,数据可能丢失、被复制、甚至到达序列外的地方,但是它有自己独特的一面,通常用于一些流技术,例如:经由Internet的视频与音频,通过UDP协议传送到计算机中,通过重新编排而用于播放视频或音频。在外挂控制视频或音频方面可以用到!TCP/IP协议简介(2)  通过前面的减少,我们已经知道,TCP协议和IP协议不是相同的协议,IP协议是属于网络层的协议,负责网络连接,主要是寻找地址用,建立连接使用,我们完全可以不管,我们最关心的是TCP协议!  为了说明封包的重要性,这里介绍一下交换技术,交换技术,从这里你可以明白,所有网络游戏都一定会使用封包,交换技术有3种方式:电路交换、分组交换、混合交换。电路交换:是建立连接前先建立一个完整的电路连接,特点是传输速度快,稳定性能好;缺点是:电路有限,能同时提供的服务小,除国家某些基于军事目的的网络可能是这种网络外,我们一般的网络是不会使用这种连接的。分组交换:是报文交换,在接收者和发送者之间不建立实际通路,当发送方发送时,先保存在一个交换局内,然后由交换局传送到下一个交换局,一步一步,知道文件被传送到目的地,这就好比是邮局,我们有封信要传送,我们是发送者,但是我们不直接发到接收者,而是交给邮局,邮局又交给下一个邮局,知道信件到达接收者手里,原理一样,但是有所不同的是:为了防止造成交换局数据堵塞,他们严格限制文件单位大小,这样,一个小包一个小包地发送,每个包都写好了编号、来源、目的地,这样,这些小包就可以一站一站地走向目的地,然后按照编号组装起来,就形成了完整的文件,这里的小包就是我们经常提到的:封包!,这是为了实现良好交换,并满足更多的人同时使用同一条路线的需要而设计的,我们的Intelnet传送文件的一中常见方式,这也就决定了,所有经过网络的文件都是以封包的形式传送的,游戏也概没能外。所以,所有游戏都是以封包形式在服务器端和客户端传送数据的,因此,封包是非常重要的,如果能够对封包进行操作,就可以完成对游戏的修改!功能强大的外挂,就是通过修改封包来完成对游戏的修改的!如果您要学习外挂制作,建议首先从WPE学起,它既简单又容易学习,而且功能很强大,不需要掌握任何编程语言,是学习制作外挂的捷径!工欲善其事,必先利其器全不靠手是不行的,我们需要工具,这里给大家介绍一下怎么利用电脑自带工具和我们准备的工具来减少我们的劳动:1.准备一个ASCII查询器2.熟练使用计算器路径:开始/程序/附件/计算器 进入如下程序界面:当我们点了16进制后发现什么,200变成C8了是吧?这可以为你节省多少时间啊?WPE的界面WPE的主界面如下图select(选择,挑选)game(游戏),这是选择您要修改的游戏,其实也可以选择其他非游戏的程序。点两下后出现如下界面:这个列表里面列出了所有当前运行的所有程序,石器游戏的名称就是:SA1.EXE,我们就选择它,他就边成蓝色了!WPE的界面WPE的主界面如下图TRACK(追踪),可以完成对封包的拦截分析,需要先选则游戏,然后才能使用这个功能!双点后出现如下界面!这个列表里面列出了所有当前运行的所有程序,石器游戏的名称就是:SA1.EXE,我们就选择它,他就边成蓝色了!WPE的界面 FILTER(滤镜)FILTER(滤镜),是外挂封包的主要工作区,在这里可以对所有经过的封包进行各种操作!这里显示了可以制作的滤镜,一共可以制作40多个滤镜!WPE的界面SENDPACKET(发送封包)这个是当某个滤镜制作好了以后,就可以发送封包了,我们制作的修改器,最终是要把封包发送出去,来达到骗过服务器而达到修改游戏的目的,所以,这个功能是实现功能的关键,只要到这里都成功了,那么整个外挂也就成功了!双点后出现如下界面:把修改好的滤镜点中间那个大箭头就可把它放到待发送的封包中去了!具体功能在后面有详细介绍!WPE的界面TRAINERMAKER(这个是制作独立于WPE的程序)这个是要利用WPE制作处可以独立于WPE的程序,这个程序在离开WPE后任然可以接续完成封包的发送,可以和原来一样修改游戏,而且可以比原来的WPE小很多,方便大家互相传阅,制作出来的外挂如下!打开后外挂显示如下:制作这样一个程序的难度是非常大的,您要有心理准备!WPE的界面 OPTIONS(翻译为中文是“决定,意愿”的意思,这里可以认为是设置)双点他出现下面的界面,可以选择您的设置一般选择默认就可以了!不必设置,如果要优化一下,可以做适当选择!本教程的内容安排  本教程的安排如下:首先是讲为什么会有封包,封包的结构是怎样的。  然后介绍TCP/IP技术的相关内容,定位封包在网络传输中的层!  然后介绍WPE的工作界面,以及各功能按扭的作用!  前面的内容属于了解阶段的内容,帮助您了解相关内容,对下面的学习会有帮助!但是您不需要深入认识,只要了解就够了!  下面是进入实质性阶段,这阶段属于理解、运用阶段,要求您完全掌握。首先是讲封包的拦截,为了方便您学习,我们从最简单的数据入手InternetExplorer的封包!然后,我们进入游戏数据的认识和修改阶段,先没有直接进入网络游戏,因为网络游戏的封包是加密的,不容易认,我们从本地连机游戏入手,这里是从连机的暗黑入手,发送的数据都很容易辨认!接下来就是真正的网络游戏的修改阶段,这里为帮助大家能尽快认识封包特别是加密封包的数据,我们特地提出了两条黄金准则:比较准则、结构准则!熟练地运用这两条准则,您一定可以游刃有余地分析封包,修改游戏更加得心应手!希望您一定认真掌握这些规律!为了帮助大家彻底掌握封包技术,我们在大家完全掌握了封包后,给大家举出了很多游戏修改的实例,供大家参考学习,这里主要举的例子是:石器、千年、传奇、金庸等常见游戏的修改的典型范例!以帮助大家彻底掌握WPE修改游戏的技术!在掌握了修改游戏的基础上,我们更进一步:制作可以独立于WPE的外挂,可以不需要WPE而独立运行,这样的外挂即小又方便使用!讲完制作独立外挂,其实本教程就可以结束了,但是,WPE1.3是win98下运行的,我们为了大家能制作出可以在win2000和winXP下运行的外挂,在最后介绍的是WPEpro0.7c制作外挂的方法!相信您通过本教程的学习,一定会受益匪浅!   非常感谢您使用本教程,如果您有好的意见建议,欢迎您告诉我们!封包初现    现在经过前面那么多的准备,终于可以走如正题了,希望您前面的准备充足,不要一进入正题就满脸雾水!按照为了关照入门者,我们从最简单的封包开始,首先,我们选择我们经常使用的InternetExplorer研究,我们经常使用它上网浏览网页,对它再熟悉不过了,什么?你不知道什么是InternetExplorer?我倒,下面的这个东西就是了,看看吧!熟悉吧?先启动这个IE,然后进入WPE选择这个程序,选择方法如下:就是白色字那个了,我们选定它,作为我们研究的对象!然后是发送封包接收封包的问题了,为了从最简单的入手,我们先把网线拔了,什么?不明白网线是什么?那我无法说明了,你别问我,问旁边的人吧,一定有人知道的,反正就是你上网那根线,先把它拔下来,这样就没有封包返回,方便研究!下面看看,我们从最简单的入手,首先我们发送一个地址,就在IE中输入地址,然后按Enter,这里我们输入的地址是:http://www.ff.com结果如下看到了吧,右边有封包的分析,对于简单的未加密的封包,WPE可以自动分析,下面我们输入地址:http://www.ee.com结果如下:好,我们下一章开始分析封包了,准备好了吗?封包的组成一个封包,包含有如下元素,也就是组成部分吧!1.需要传输的数据(主要的和最重要的部分就是这个,外挂修改的也是这部分)2.序列号(每个封包必须有自己的序列号,以便到了接收端后可以按照序列号重新组装)3.IP地址,一般都有这一部分,通过网络解析才知道封包从那里来,到那里去!当然封包的内容不止这些,但是,我们了解这些就够了。注意:在传输中,所有数据都是16位或者32位的,所以截获的封包看起来总是怪怪的!面给一个封包的基本格式,给大家看看(下面是基本封包格式,如果您可以背下来他们的格式,这对您修改游戏是非常有用的!强烈建议您看一些关于封包格式的文章,您就可以很容易地把封包看清楚,很快知道哪个才是真正的数据):SourcePort(16)|DestinationPort(16)SequenceNumber(32)AcknowledgmentNumber(32)DataOffset(4)|Reserved(6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16)Checksum(16)|UrgentPointer(16)Options(0ormore32bitwords+padding)DATA...稍微注意以下,您可以看到,每行的长度都是32字节! 大家看到了吗?data就是数据,那是最关键的部分,我们使用WPE修改的就是那一部分!关于封包,是网络方面的知识,要写出来,估计可以出一本书了,这里不再详细讲解,如果您要详细学习请您参考相关资料。封包分析1为了方便分析,我们把图片都放到一起大家看看!上面发送的封包是http://www.ff.com下面发送的封包内容是:http://www.ee.com我们比较一下两个封包,可以发现,相同的部分很多,按我们的分析应该差别只应该在“ee”与"ff"的区别,因为发送的内容只有这点差别,但是上面的封包显示出来的却不是这样,为什么?其实,他们确实是一样的,在IE的封包里面,01、02、03、04都代表点的意思,也就是代表:"."这个意思,那么你再分析就发现完全和我们预料的一样了,这里是IE发送的封包,没有加密的,您可以直接读出来的!但是这不是10进制,而是16进制,因此,我们必须把它翻译成为10进制,以方便我们阅读,怎么办?别忘了,我在WPE下载页给出了一个AsicII工具,现在就用吧,好,我们来翻译这个封包,前面的不管,我们只关心封包里面的数据:打开AsicII工具,输入"W",点查看,看到了什么?------“77”(十六进制),看到了吧,我们输入的有3个“W”,这里是不是有3个77啊?前面已经讲过,02代表点号,那么,接下来是不是也是我们预料的是“f”呢?我们继续用工具查一下看看,果然不出我们分析所料,真是f,不用多猜了,接下来的内容就是".com"怎么样?是不是很简单呢?下面我们把这个过程完整地给大家演示一遍!首先,拔掉网线(这里是为了简单才拔的,其实不拔也可以,只是会出现返回封包,不容易辨认)打开WPE,然后,打开InternetExproler,然后在WPE中选中我们要截取封包的InternetExproler程序,然后点拦截封包,然后在InternetExproler中输入一个简单的网址,按回车后,在WPE中开始拦截,看到发送了一个封包后,点停止,就看到我们需要的封包了,下面是图解过程:1.打开WPE2.打开InternetExproler,3.打开在选择游戏中选择InternetExproler程序,点两下4.在InternetExproler中输入http://www.ff.com,然后按回车5.在WPE中点拦截点三角形 当收到封包后点红色的正方形,封包就出现了!注意,图上的最后一副图的左上角有个蓝色的“S”,意思是:这个后面的封包是发送的,英文的单词是"sent"如果出现的是“R”,那么意思是它后面的封包是接受到的而不是发送的,区别如下图!封包分析2经过前一章的讲解,相信大家对封包有了粗略的了解,这一章是要大家分析封包,其实封包的拦截不是很宽难,难就难在封包的分析上,从习惯上来说,大家都习惯辨认10进制的东西,对16进制,实在是不习惯,没关系,我们会让大家逐渐习惯的!如果大家愿意更好地掌握16进制,强烈建议大家手里拿一张AsicII码对照表,这样可以方便大家学习,不仅可以反查,而且可以顺查!方便多了!前一节,我们把网线拔了,先在查上吧,难题要来了!准备好了吗,好,LET‘SGO!先看下面的图片!我们来分析一下上面的内容!首先几点说明,这是对InternetExproler进行的封包操作,请求的地址暂时不说,您可以分析出来的!下面是分析说明!首先,本地发送请求到服务器!发送内容是“21”,注意:您一定很容易地认为发送的是“21”,其实,数字也好,字母也好,一定要注意,全都是16进制的,所以,这个“21”不是我们平常的21,而是16进制的21,那我们来算一下21等于多少(计算21转换为10进制等于多少)?21(16位)=2x16+1=33(10进制),关于进制计算,我们专门的章节有说明的再查ASCII表,看看33对应的是什么字符?查到了吗?是“!”,呵呵,WPE不是已经在右边给我们显示了吗?不过我们要习惯分析哦,到游戏里面可就没那么多的方便了!那么发送一个!是什么意思呢?其实这个是网络连接的问题了,不必细究,要详细了解的请查看关于网络连接3次握手的相关内容!这里不做讲解!这个与游戏修改无关!第3行47是什么意思呢?算一下:47(16)=4x16+7=71(10)括号内16代表16进制,10代表10进制,那么71代表什么?查表ASCII结果:71对应字母“G”45呢?45(16)=4X16+5=69(10),查表出来的结果是:E请你不要看右边的分析,我知道右边有现成的结果,但是你要自己分析,不然你拿着游戏就无从下手了!简单的分析就是这样了,是不是很轻松?好,再继续分析几个!第15行,的3A什么意思?3A(16)=3X16+10=58(10)查表得,58对应“:”倒数第2行B7什么意思?B7(16)=11X16+7=183(10)查表得到183对应:特殊字符,这里我无法帮你打出这个字符,抱歉!注意,这里WPE也翻译不出来对应的字符了,看到了吗?WPE只翻译了最后两个,如果我们自己需要怎么办?当然是自己分析了,所以说不要看WPE帮你的分析,自己分析很重要! 黄金法则----比较法则前面我们已经分析了简单的封包,为了我们以后能分析复杂的封包,我们这里给出分析封包的第一条黄金法则------比较法则!所谓比较法则就是通过比较,得到我们需要的东西,封包往往由于于我们平常的习惯有区别,我们难于辨认,只有电脑才喜欢,而且,封包有自己结构,不是一个封包的所有内容都是有用的,其中很多是我们所不需要的,我们不必去详细了解每一部分到底是什么意思,那么我们怎么得到其中的包含的关键信息的部分呢?那就是……比较,对,是比较,方便又准确的方法。那么怎么比较呢?请看下面的分析!1.相同比较2.不同比较所谓相同比较,这是游戏中经常用到的!因为游戏封包都是加密的,对同一个内容的封包也是不同的,我们做同一个操作,结果会有不同的封包,这是相同比较,例如,在游戏中,我们卖掉一个小血瓶,看看封包是什么?千万不要以为以后卖血瓶永远是这个封包了,对所有封包都不要有这个思想,否则,祸患无穷!我们再卖一个小血瓶,再看看封包内容,比较一下这两次封包相同的地方在那里,不同的地方在那里?这个很重要哦!如果完全相同,那我们再卖一个血瓶看看,如果还相同,再卖一个看看,还相同?如果真是这样,10次都是这个结果,我们可以初步断定,血瓶的封包是不变的,我们可以利用了!怎么利用?不用急,在后面说明,现在还早!如果第一次和第二次得到的封包不完全一样怎么办?比较一下,找到不同的地方在那里,这些地方的区别分别是什么意思,关于不同地方是什么意思的分析,我们不再分析了前面已经分析过了!如果再卖掉一个血瓶,第三次和第二次也不一样怎么办?老办法,分析相同的地方和不同的地方啊!分析下面两个封包:看看,相似的地方很多吧?呵呵,不同的地方并不多!这样对照分析是不是很简单呢?比较法则----相同比较前面说了相同比较,这节我们详细介绍一下:比较下面两个封包:封包一:封包2: 区别是不是很小,其中接收部分是完全一样的,但是发送部分有所区别,这个区别是坐标信息!这个封包来源:星际争霸游戏中连机对战,时,一个士兵移动一步和再移动一步产生的封包,动作是完全相同的,所以,不应该有太大区别!下面给出一个在线游戏的封包对比分析:游戏名称:快打旋风线上版?#123发一个小火球:你可能得到如下封包:SEND->00000A09C1100000FF5244再发一个小火球,得到的封包可能就变成这样了!SEND->00000A09C1100000665244为什么两次不同呢?呵呵,这是游戏了,封包是加密的,不是轻易就可以看出来的了!而且,这里的0A可能有它自己的含义了,不是可以查ASCII表可以查到的了,你需要猜它是什么意思了!我们暂时不分析,到分析游戏封包时再分析,这里主要讲对比!从封包上看,我们两次动作是一样的,因此,得到的封包也还是大致一样的,很相似,区别只在最后几个上,有这样的分析,实际对我们制作滤镜是很有帮助的!如果我们再收集一点其它信息,实际上我们就可以破译这个封包了,如果我们知道这个小火球打到别人身上,伤害值是16,那么我们就可以知道,16(10)=10(10)不会看不明白等号了吧?十进制的16等于16进制的10,那么看看那里有10呢,呵呵,两个封包都有哦,这个就是火球的封包,其中10表示伤害值,如果我们制作一个滤镜,但检测到这个相似的风暴,就自动修改成FF会怎么样呢?FF(16)=15X16+15=255(10)明白了吗?你的小火球攻击将达到255的伤害,是原来的多少倍哦?比较是很简单的,有比较就容易辨认,请您自己多分析一些实际例子,相信您很快就会学到这种方法的!这里不多举例子了!比较法则----不同比较前面说了相同比较,这节我们详细介绍一下不同比较: 相同比较是为了在相同的封包中找不同点,以便于找到封包的本质内容,那么不同比较呢,就是相反的,是在不同封包中找相同点,以便找到封包的核心内容!举个离子:如果你想知道卖东西的封包有什么特点,那么你只卖血瓶是不够的,你该卖掉其他东西,比如卖魔法药,卖了小血瓶,买中型血瓶,然后卖大型血瓶,共同点是都是卖,不同点是卖的东西不同,我们可以利用他们的封包中不同中的相同来找到卖东西的封包的共同点,从而为我们所用!援用前面的例子:我们利用IE(什么,你又不知道IE是什么了?我到,就是InternetExproler,前面早说过了),先请求地址http://www.ff.com,得到的封包如下:然后请求地址:http://www.ee.com得到如下封包:我们有理由详细:请求地址的第一步操作都是这样的了,发送的封包都应该是这样的了!区别都只在于WWW和COM之间的部分有区别,那么我们可以对以后所有请求地址的操作进行控制,例如:我们可以控制其中关键代码,就是把其中的“ff”换成我们希望的内容,以后无论是谁请求任何地址,它打开的总是我们设定的地址,其他地址都打不开了!呵呵,用这个是不是有点烂哦?说者无意,听者有心,别乱用哦,我不是教你去整人的,给别人方便给自己方便哦!比较法则----不同比较我们继续相同比较,这节我们用暗黑来比较,大家大都玩过暗黑吧?这里我们给大家一个卖物品的封包,注意单机版的不存在封包,要连机打或者上战网才有封包的!截取封包的过程如下:首先启动程序:然后启动WPE:选择游戏名称:game.exe开始接收封包:卖掉一个活力后得到的封包卖掉一瓶血的封包如下!这里难度稍微大一些,分析时要多加注意了首先,我们注意,第二个封包和第一个封包有相同的地方,怎么看呢?从第二个封包的第三行开始和第一个比较,是不是?这个时候不要看WPE右边的分析了,全是错的! 如果要进一步分析,就要知道相关信息了,我们知道一个活力卖掉的价格是200,200(10)=C8(10)看到第一个里面的C8了吗?呵呵,明白了吧,继续分析就留给你了!如果你要进行相同比较,这里个出再卖一个活力的封包进位专家使用方法    本软件是配合WPE使用的,因为很多WPE的十六进制很难读,如果可以直接查到十六进制数对应的文字,这样就非常方便了,因为16进制是我们所不熟悉的,如果换成熟悉的文字,我们研究封包将方便很多,当然,本软件的功能不仅限于此,在很多场合,遇到进制问题和AscII交织的问题是,使用本工具一定给你带来非常大的方便!下面的是使用方法,结合封包的16进制讲解!  首先是打开本软件,输入用户名和密码!如下:登陆后出现如下界面:如果要查找某个进制下的数字对应的文字,就可以选择查询AscII值对应字符,然后在输入查询框中输入数字,在选择进位值中选择您需要的进位值,通常分析封包是16进制,然后点确定,然后就可以看到结果了,如图!  如果要查询某个字的AscII值,可以选择查询字符的AscII值,然后在输入框内输入要查询的字符,点确定后就可以得到结果  如果要查询不同进制之间的转换,请点高级,然后就可以看到支持从2到16之间任何进制之间的转换界面,如下图:在输入查询中输入要查询的数字,在第二个空内输入现在的进制单位,然后在下一行输入要转换到的进制单位,然后点确定就可以得到结果了!本工具使用非常简单,却非常实用,在经常接触到非10进制的环境时,使用本工具将带给你非常巨大的方便和快捷!如果有什么不明白可以看看帮助,另外,还可以给我们来信询问,如果您有好的意见或者建议,欢迎您来信,我们会根据您的要求作相应修改!黄金规则之结构规则 由于各种原因,外挂总是很难直接读的,那么怎么办呢?前面我们说了比较法则,这个法则是非常有用的,但是还不够,如果我们多掌握几中方法,那么我们修改封包成功的可能性就要高很多,所以,一定要多学几中分析封包的方法,封包是有结构的,这个结构如同人体的骨骼,如果知道了骨骼的构造,对我们解剖人体是非常有用的,否则谁知道该从哪儿入手呢?那么我们就给大家讲一下封包的结构:  一个TCP传输单元可以认为是一个封包,这个单元结构如下:源(就是封包从那里来)、目的端口(封包到那里去,源和目的端口各16位)、序号(可以确认排队)、确认号(确认到达目的地,不必重新请求发送)、头标长度(因为TCP头是可变的,它包含的可选的“选项字段”)、码位、窗口。  但是不是每个封包都包含那么多的内容,可能只包含其中的某些项,这个就要根据情况而决定了,所以要经常分析封包,习惯了就好了,可以一目了然。  这里给大家具体的一个封包,大家可以自己看看,大家也可以自己拦截一些封包来分析,当然,不是每个封包都是那么有典型意义,因此分析起来就要难多了!封包如下:SourcePort(16)|DestinationPort(16)SequenceNumber(32)AcknowledgmentNumber(32)DataOffset(4)|Reserved(6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16)Checksum(16)|UrgentPointer(16)Options(0ormore32bitwords+padding)DATA...这个是表准的封包的组成结构,这个结构不是每个封包都包含得有的,我们以下面这个封包解释给大家看看:这个封包就非常简单了,没有指定发向那里,没有告诉发出的源,那么这个就是一般情况下的封包,因为在游戏里面,我们的电脑和服务器已经建立了稳定的连接,这就是说,封包在这样的稳定连接下可以省略很多内容,甚至只有关键内容,这个结构的掌握就全部建立在平时的多分析上面了,只要您分析多了,自然可以知道怎么分析了!在上面的图片给出的封包里面:“S”后面是发送的封包内容,怎么分析呢?按照一般的分析思路,首先是根据ASCII码表翻译出里面的文字信息,这里我们来分析一下这个封包到底是什么,看看这个简单的封包分析的全过程:请看下一节!关于滤镜   经过前面的讲解,大家该知道封包制作外挂的原理了,这里再深入讲解一点,作为封包,按道理只能修改封包,达到修改游戏的目的,其实,如果我们能更广泛地想一想,如果我们能分析封包,其实是可以制作出很强大的功能的,当然,如果让WPE分析封包,能达到的功能是有限的,首先是不能进行详尽的分析,如果可以的话,那么就应该能完成任何功能,想一想,网络游戏的工作原理,从服务器发一个封包到客户电脑,然后客户电脑返回的还是封包,如果我们能够根据接受到的封包发送服务器期待的封包那么,服务器就会以为是电脑发过来的,同样做响应处理,如果我们能对封包详尽地了解,并可以分析,那么,任何现在外挂通过任何其他技术实现的外挂功能,都可以通过封包来达到!明白了吧,封包的修改和分析就可以完成很复杂的功能,如果用其他技术来完成,也许需要使用很麻烦的技术,使用封包就可以简单地分析得到的封包,然后返回服务器期待的封包就完成了所有的功能,所以,加强的封包的分析是非常必要的!下面我们来说一说封包的分析,这个关键就是滤镜,也就是我们已经知道封包了,也知道把发送的封包修改成什么样子是对我们有例的,我们就要求当电脑发送某个封包时,我们的WPE自动把它拦截到,并修改成我们希望的样子,然后发送出去,实现了这一步,也就实现了我们希望的功能了,所以,大家一定要掌握滤镜,前面的就算什么都没搞懂,这里的也要弄清楚,否则是不能完成封包的制作的!好了,我们进入正题!  我们利用一个网络游戏来讲解这一张,为了给大家讲清楚,首先让大家知道滤镜在那里:如下图这个就是滤镜,大家在前面的WPE界面介绍里面已经接触过了,编辑封包的方法是先选择一个滤镜,就是下面有很多滤镜,就是Filter1Filter2……等等,就是滤镜,您随便选择一个来编辑,先选中,就是在滤镜前面点一下,然后就看到一个勾,表示当前编辑的滤镜,然后点图上的铅笔,那个铅笔的图表表示编辑,出现下面的界面首先选择一个滤镜作为保存修改好的滤镜的存放,然后选择滤镜性质,默认方式有Search(收寻)Send(发送)、Both(两种情况都要,)经常使用的就是两种都使用,所以这个可以不管,在面罩垂片里面就是我们制作滤镜的主要和关键地方了,这里主要是针对封包的,首先封闭测试  封闭测试,顾名思义,就是要封闭起来,测试我们需要的数据,这个封闭包括两个方面:环境封闭和数据封闭,环境封闭是为了封闭干扰数据,而数据封闭是为了确定数据更有效·!  封闭测试的方法如下,首先,在条件允许的前提下,我们在游戏中,找一个一般不会有其他人到的地方去,最好那个地方也密友怪,这样的环境一般是一些没有实际功能的小房间,在这些小房间里面就没有其他玩家干扰了,所以,我们利用WPE得到的封包就没有了其他玩家的干扰,如果在有其他玩家的环境中,会出现很多数据传输,例如他动一下,就会发一个封包给你,如果他有其他动作,会发送一大队封包给你,你是很难分析的!所以一定要封闭环境,这个是非常重要的!   例如,在传奇中,我们可以到屠夫店里面去,通常那里不会有很多人,一般情况下是没有人的,如果到其他的格斗房间,基本是不会有人来了,在这里进行封包的数据截取和分析是相当好的,我们不能脱离游戏拦截封包所以我们要最大限度地得到好的有实际意义的封包,所以,我们要尽量减少其他因素对封包数据的干扰,减少我们分析封包的麻烦!  封闭数据,这里的封闭数据,就是完全不改变其他环境数据,最好能做到封包数据完全是我们需要的,例如,在传奇里面,我们要测试一下一个小火球打人的封包,那么我们就让两个人到比齐的皇宫,那里通常没有人,如果有,我们可以去格斗的2楼,那里基本是不会有人来的,然后,两个人都不要动,用WPE锁定游戏,看一下有没有封包发送或者接受到,如果在一段时间内没有封包发送或者接受,那么表示环境已经封闭了,数据也已经封闭了,可以开始测试了,我们让其中一个人发一个小火球,另一个人不要动,最好两个人都用WPE拦截封包,那么发火球的一方一般会发送一个封包,这个封包告诉服务器,我发送了一个火球,这个火球打向谁的,攻击是多少,而被打的人会得到这样的封包,封包告诉他他被火球打中,攻击是多少?是谁发过来的等等,这样,封包的所有数据都是有效的,没有什么移动的封包,聊天的封包等等杂七杂八的数据的干扰,也避开了其他玩家的干扰,并避开了怪物和NPC的干扰,注意,一切可以动的东西,都可能对您的封包数据产生影响,尽量减少这些因素的影响。对封包的分析实在是非常有用的!加密解密  很多人都基本知道WPE怎么工作的了,但是还是不能用它来修改游戏,不能做出外挂来,为什么?其实很简单,因为他们对封包的分析不够,不知道封包是可以加密的,更不知道怎么解密,这里我们给大家讲解游戏里面使用频率非常高的几大加密方式-----异或运算加密、背包运算加密等等,并给大家讲解怎么分析这些加密的封包,怎么找到它的内在规律,怎样自己制作假封包满足它的加密规律,来达到修改游戏的目的!  一般来说,网络游戏的封包都可以加密,对一般数据采用简单的加密,不会影响游戏速度,但是对游戏的安全却非常管用,对于非常重要的数据,则采用复杂的加密方式,可以保证游戏平衡,例如:游戏中人物的等级,这个属于非常重要的数据,必须采用非常好的加密方式来保密数据不会轻易被修改,好了,这个大家自然明白,那么我们就开始3大常用加密方式告诉大家,并给出解密方法,大家注意掌握,这个对游戏修改至关重要!不能解密,就做不出象样的外挂!  异或运算加密:  异或运算加密是通常的加密方式,为了大家直观理解,下面给大家图片分析!这个是一个非常简单的异或运算,经过加密以后,我们看到的是a,b,c,d,e,f但是,他的实际意思不是这样的,实际意思是,1,2,3,4,5,6,当我们看到的是1时,他的实际意思就是6,当然,这个异或运算是比较简单的,但是在映射的时候没有按照一定规律影射,如果要在只知道a,b,c的情况下来破解其中的规律,那是需要一定经验和技巧的!如果大家有高中以上文化水平(我想都该没有问题吧?),我想利用函数的方法来讲解加密问题,这样大家容易理解,大家知道函数y=f(x),这里的x就相当于我们图上的abcdef,而y呢就是123456,箭头就是f,f是映射方式,函数就是某种映射方式,从函数和映射的角度来理解加密是非常好的和正确的,我们为什么要讲这种加密方式呢? 因为这种加密方式,不是非常隐蔽,但是非常容易实现,建立一个映射,可以在整个软件中调用,所以,在游戏制作的时候,制作一个映射并不需要太高的技术,而且这个映射可以在任何时候修改,非常容易维护和更新,如果映射规律被破解了,也可以更新游戏来更新映射,达到保密的作用,所以,这种加密方式是游戏里面经常采用的加密方式,更重要的是,这种加密方式对电脑要求低,运算速度快,不会影响游戏速度,所以经常被采用,如果能很好地破解这种加密方式,那么对于游戏里面的一些关键数据,我们就可以非常方便的修改了。  下面结合一个网吧管理软件来讲解异或运算加密,并给大家讲解如何破解这种加密方式:  在一个网管软件中,有一个会员功能,功能是这样的,凡是会员,就可以不在网吧老板那儿去登记而是直接上机,开机后填写自己的用户名和密码就可以解锁,可以开始使用电脑了,相信去过网吧的人都知道这个功能吧?  其实,该软件实现该功能的过程是这样的,首先用户输入用户名和密码,然后把用户名和密码发送到主控电脑(一般是网吧老板身边的那台电脑),由主控电脑检查该用户名是否存在,如果存在,再检查密码是否正确,这些我们不管了,我们已经知道用户名和密码都会发送到主控电脑那儿去,好,有密码发送,就会有封包发到主控机上去,就可以中途拦截,这个是WPE的专长,当然也可以使用其他黑客工具来拦截,我们不管那么多,先拦截几个用户名密码先,下面这个是某台电脑上被拦截到的封包,内容如下:send0000010000007a68616e676a756e30303700     00020064666c64686a6664656a680000要分析这个封包还真是麻烦,呵呵,那么长,总不能乱抓吧?这里有简单方法的,别忘了我们前面已经讲过的方法哦,我们的黄金规则:比较法则和结构法则,这里我们用比较法则,利用比较法则的相同比较和不同比较,很容易辨认用户名和密码各在那一段,这样对我们的分析是非常有用的,至于如何比较,在前面的章节都详细说了,相信大家都知道了,好了,这里就不再罗嗦了!直接给出!  通过比较我们知道,  用户名是:7a68616e676a756e303037  密码是:64666c64686a6664656a68马上使用我们的进位专家来对付这些16进制的文字,翻译出来的结果如下:  用户名:zhangjun007  密码:dfldhjfdejh显然密码是不大正确的,因为这个密码一般人是很难记住的,从一般的情况分析,一般不会把密码随便显示出来的,总要经过加密才可以安全地发送,不然是很危险的,万一被人拦截,很容易被盗,所以,我们有充分的理由相信,这个不是真正的密码,那么怎么分析呢?这下该运用我们的异或运算分析来分析这个密码!  看一看密码的特点,全部是字母,而且集中在A到L,在没有任何分析的前提下,我们可以假设这是一个单满映射(关于单满映射的特点及分析方法在后面给出),那么我们得到的是映射的原象,现在要自己建立一个映射来分析,简单的,从字母到字母的映射,看能不能找到一个规律,分析很长,我们建立了从A到A的映射到从A到Z的映射逐个分析,结果都是错的,所以,应该考虑从字母到数字的映射,最后检查出映射是从C到L映射到0-9,分析结果出来了:密码是:13915731275估计是个手机号,经过测试,这个密码是正确的,可以使用! 上面这个例子不是教大家怎么分析,而是叫大家明白异或运算加密是怎么回事!好了,下面我们进入异或运算的分析,大家注意分析的方法,并多加练习,以后遇到加密的封包就会很容易对付的!  如果大家学习过加密技术,可以跳过您所熟悉的章节!加密解密  异或运算分析方法,为了简单,这里我们不再一封包作为分析,因为封包要从16位到10位的步骤,很麻烦,我们直接看下面的异或。  从一个进制到另一个进制是一中异或运算,而且是单满映射,所谓单满映射,意思是每一个象都有原象,每一个原象都有象,例如我们的映射是从16进制到10进制,象,就是10进制里面的所有的数,而16进制里面的数就是原象,每一个10进制的数都唯一对应一个16进制的数,所以说所有象都有唯一一个原象,而反过来,每一个16进制也唯一对应一个10进制的数,所以每一个象都有且只有一个象,这样的映射就是单满映射!这样的映射使用起来效率最高,可以知道每次调用函数返回的值都是有用的,下面这个也是单满影射:但是这个运算要分析起来是复杂的,我们从简单的分析,你想一想,如果我们这样对应,0对应A,1对应B,这样一个一个对应下去,那么如果你的生日是:1986年2月14日,如果我们把生日加密,按照我们的映射,结果就是这样了,BJIG年C月BE日,看看这个结果,是不是不那么容易认了,这个就是加密,如果改变对应的开头,不是0对应A而是0对应E那么会是怎么样呢?当然会变的,异或运算本身简单,但是可以看出来,加密还是很有效的!那么我们怎么知道一个封包是不是异或运算加密的呢?我们不知道!对于这个回答,大家也许有写心灰,其实完全没有必要,你知道我早上吃的什么?不知道吧?当然不知道,谁知道呢?但是我们可以知道,要么吃的食物,要么喝的水,要么什么都没有吃,如果没吃,很简单嘛,如果吃了,我把所有食物都说一遍,总有一个是你吃的吧,所以,我们虽然不知道封包具体使用异或运算没有,但是我们可以假设已经采用了,然后继续分析!异或运算不改变数据的任何性质,不会影响任何分析。  那么怎么分析呢?如果一个封包确实是异或运算加密的,我们如何可以找到它的加密方法呢?这就要采用枚举法来做了,所谓的枚举法,也称穷举法,如果你认为你发封包应该是数字,那么就找到数字的映射,可以建立方程,比如:y=F(x)那么我们找几个点,称为已知点,然后解方程,例如,我们我们已经知道:a对应的是0,d对应的是3,f对应的是5,那么我们可以这样做,F(a)=0,F(d)=3, 而这种异或运算都是线性的,也就是可以认为是一维的,那么有两个点就可以算出来了,我们可以认为,映射就是:F(x)=Asc(x)-97,这里是Asc()是VB里面的一个函数,就是返回该字母的Ascii码,这样,我们可以带f对应5进行检验,也许你会问我怎么来这些点,这些可以确定函数的点从那里来?其实很简单,举个例子,你要知道游戏里面钱的数字与封包里面数字的联系怎么办,要确定这个对应关系,就要自己去找一些点来确定,我们可以通过一些方法来找到的,例如,我们扔掉一元钱,看看数字是多少,这里就找到一点了,一个点如果确定不了,可以多取一些点来确定,如果还是不行,那么再来,如果是不规则的影射,就要取遍所有点,当然象钱这样的数字,由于可边范围太大,不可能建立想我们给的图那样的非规则影射,否则很难计算,影响游戏速度,所以可以肯定:游戏里面钱的数字的加密一定是规则的运算加密的,至于是不是异或运算加密的就不知道了!但是我们可以假设是,然后做我们想做的事啊!  当然,异或运算的规则是自己建立的,可以有无穷多,要给大家讲解所有的破解方法是不行的,大家是要多动手分析才行,这个需要的是经验和技巧,你要从别人的角度想,“如果我要加密,我会怎么做能做到计算简单,加密性好,而且加密函数又容易设计”,想多了,你就知道其实异或运算加密是可以比较容易地分析出来的,当然,光靠我们的大脑是痛苦的,何不找一些工具来帮助分析呢?很多黑客软件都具有分析加密数据的功能,试者学习一些,会对您的封包破解很有帮助的,也许他们能提供更好的破解思路也不一定!加密解密  背包加密是一中相当高级的加密方式,不容易破解,而且还原也相对容易,因此采用这种加密方式加密游戏数据也是非常好的,只要知道背包,就可以轻易算出来,所以在游戏里面采用这种加密方式加密对游戏的影响也不是很大,不会给服务器带来太大的负担,而且加密是非常安全的,对于一些重要的数据采用这种方式加密是非常可靠的,说了那么多,你也许会问:“什么是背包加密方式”,好下面给大家说明。  背包分两种,加法背包和乘法背包!想讲加法背包!我们知道:1<2,1+2<4,1+2+4<8,1+2+4+8<16,……,那么如果我们选择这样一些数,这些数从小到大排列,如果前面所有的数加起来的值总小于后面的数,那么这些数就可以构成一个背包,我们给一个这个背包里面的某些数的和,这个数就是被加密的数,由这个背包组成这个数只有一种组合方式,这个方式就是秘密了,例如给大家一个封包(2,3,6,12,24,48),由这个背包里的某些数构成的数:86,你知道86怎么来的吗?当然,你看着背包里面的内容,可以知道是由2+12+24+48得到的,如果你没有这个背包,而是直接得到这个86,你知道组成这个86的最小的数是多少吗?你无法知道,因为加起来等于86的数非常多:85+1=86,82+2=86等等,你是无法知道的,所以,背包加密非常难破。  那么游戏里面如何利用这个加密呢?可以给大家一个例子。  如果游戏里面,用户名和密码只能有字母和数字组成,那么总共就那么36个元素,我们利用一个包含36个元素的背包,背包的一个元素对应一个字母或者数字,当玩家设好用户名后,我们把这个用户名翻译成背包里面的元素,然后把这些用户转化而来的数字加起来,得到一个数,这个数就是用户名,你得到这个数,你知道用户名吗?也许大家还没明白我说什么,我把例子更具体一点,你也许就明白了!  有个密码是:511,这个密码是经过加法背包加密的,如果你没有背包,你知道密码吗?不知道吧,呵呵!  如果我告诉你背包是:(1,2,4,8,16,32,64,128,256),也许你对密码了解多也些了!  如果我告诉你,这个是加法背包,而且有如下对应关系:1对应a,2对应b,4对应c,8对应d,16对应e,32对应f,64——>g,128---->h,256---->i,那么你也许知道密码就是:abcdefghi,怎么样,从511到这个密码,是不是很难想到呢?也许你会说,如果密码不是这个顺序呢?当然,这个完全是可能的,但是我们这里为了简单就没有考虑这个。   这么复杂的加密,怎么解密?有如下两中破解方法:  1.利用孤立点破解;2.利用背包破解。  所谓孤立点,还是以上面的背包为例子,我们可以把密码设为a,看看得到了什么密码?1,如果我们把密码设为b,得到的密码为2,同理,可以把背包里面的所有元素都利用孤立点的方法全部枚举出来,这样我们就把背包弄到手了,对下面的破解就不成问题了,是不是很简单?其实在加密的时候,也许它们回利用异或运算先加密一下,再利用背包加密,这样更难破,孤立点方法非常有效,但是不是万能的,要结合前面的方法配合使用!  利用背包,这个就简单了,想一想,要加密也的有背包才能完成加密啊,要解密也要背包啊,呵呵,这就是说,不管是游戏的用户端,还是游戏的服务器端,都会有该背包的,找到该背包不是就解决问题了吗?怎么找?参考其他书籍,本书无法容纳那么多的内容!特别注意游戏编程,知道是怎么做的就知道东西在哪儿了!  讲完加法背包,下面讲乘法背包!加密解密                        乘法背包  乘法背包比加法背包更复杂,不仅是运算量大了很多,更重要的是你得到的一个被加密了的数据更大,一般都是上亿的,而且在许多机密的机关里面,背包的数据都不是有这个单位,而是用位,一个加密的数据有几百位,呵呵,你得到这个数字,可以看到你满脸的茫然,如果这个数不是10进制,而是什么7进制啊,3进制啊,这些很不常用的进制,你要破可就难了,不过不要害怕,游戏里面绝对不会有这么复杂的加密的,如果一个数据就几百位,而且还非常用进制,那么可以想想电脑要算多久啊,会多么影响游戏速度啊!所以我们有充分的理由相信,游戏里面加密是简单的,还了,下面给大家看看乘法背包:1<2,1+2<3,1*2*3<7,1*2*3*7<43,1*2*3*7*42<1683,数字的增长还是很快的,之所以复杂,就是因为数字很大啊!背包的特点是:如果背包里面的数据按小到大排列,那么,前面所有数据的乘积小于后面的任何一个元素,这个就是背包的特点,是不是很简单,但是要知道乘积的数字的增长是非常快的!  怎么破解乘法背包呢?  同加法背包一样,可以利用孤立点的方法,也可以使用直接得到背包的方法破解!  一般来说游戏里面不会使用乘法背包来加密,但是如果使用一些小的数据,也不是不可以的,大家对这种加密也可以了解一下!:  如果我们已经知道背包了,也得到加密数据,我们怎么知道这个背包数是有那些元素组曾的呢?  在加法背包里面是这样的,找背包里面最接近这个数但是又比这个数小的数A,这个数A一定在里面,然后把加密的数减去A,比较被减后的数,继续重复上面的操作,是很容易就能找到所有的组成元素了!乘法的方法也是一样的道理,这里就不介绍了!  背包解密是很复杂的,大家可以稍微学习一些,能掌握就掌握,不能掌握就算了!   好了,加密解密就这些内容,如果大家有兴趣,可以学习更多的加密解密技术,这个技术是新兴的技术,很多数据都需要加密,例如银行的数据,加密就非常重要,如果你学到这门技术,对你的以后发展也是有用的!关于滤镜WPE应该有三个版本,一个是98下用的WPE1.5,一个是2000和XP下用的WPE_PRO,还有一个是两种系统都可以用的WSE0.3。要说明的是,不论你用的WPE是哪一个版本,它们的原理都是一样的。现在用WindowsXP系统,所以选用了容易操作的WPE_PRO。为什么可以刷怪:在游戏中,每一个怪物都有一个在一定时期里保持不变的代码(ID),这个代码有连续性,有可能保持很多周期(我们可以把怪物从生到死看作一个周期),也可能只有一个周期。当怪物处于隐藏状态时我们是看不到它的,但是并不表示它不存在,这时的怪物好象是在睡觉。因为怪物的代码有连续性,如果我们已经知道这个怪物的代码就可以向它(代码)发一个攻击指令,如此就可以把这个怪物打出来,这就是所谓的刷怪。 过程如下:1:打开游戏和WPE_PRO,选中游戏。开始记录,在游戏中开始打要刷的怪2.我们得到了攻击怪物的包。下面我们打开滤镜编辑,完成刷怪为了大家方便,编辑过程都在图上面,大家可以看图就明白了!封闭测试  封闭测试,顾名思义,就是要封闭起来,测试我们需要的数据,这个封闭包括两个方面:环境封闭和数据封闭,环境封闭是为了封闭干扰数据,而数据封闭是为了确定数据更有效·!   封闭测试的方法如下,首先,在条件允许的前提下,我们在游戏中,找一个一般不会有其他人到的地方去,最好那个地方也密友怪,这样的环境一般是一些没有实际功能的小房间,在这些小房间里面就没有其他玩家干扰了,所以,我们利用WPE得到的封包就没有了其他玩家的干扰,如果在有其他玩家的环境中,会出现很多数据传输,例如他动一下,就会发一个封包给你,如果他有其他动作,会发送一大队封包给你,你是很难分析的!所以一定要封闭环境,这个是非常重要的!  例如,在传奇中,我们可以到屠夫店里面去,通常那里不会有很多人,一般情况下是没有人的,如果到其他的格斗房间,基本是不会有人来了,在这里进行封包的数据截取和分析是相当好的,我们不能脱离游戏拦截封包所以我们要最大限度地得到好的有实际意义的封包,所以,我们要尽量减少其他因素对封包数据的干扰,减少我们分析封包的麻烦!关于滤镜  经过前面的讲解,大家该知道封包制作外挂的原理了,这里再深入讲解一点,作为封包,按道理只能修改封包,达到修改游戏的目的,其实,如果我们能更广泛地想一想,如果我们能分析封包,其实是可以制作出很强大的功能的,当然,如果让WPE分析封包,能达到的功能是有限的,首先是不能进行详尽的分析,如果可以的话,那么就应该能完成任何功能,想一想,网络游戏的工作原理,从服务器发一个封包到客户电脑,然后客户电脑返回的还是封包,如果我们能够根据接受到的封包发送服务器期待的封包那么,服务器就会以为是电脑发过来的,同样做响应处理,如果我们能对封包详尽地了解,并可以分析,那么,任何现在外挂通过任何其他技术实现的外挂功能,都可以通过封包来达到!明白了吧,封包的修改和分析就可以完成很复杂的功能,如果用其他技术来完成,也许需要使用很麻烦的技术,使用封包就可以简单地分析得到的封包,然后返回服务器期待的封包就完成了所有的功能,所以,加强的封包的分析是非常必要的!下面我们来说一说封包的分析,这个关键就是滤镜,也就是我们已经知道封包了,也知道把发送的封包修改成什么样子是对我们有例的,我们就要求当电脑发送某个封包时,我们的WPE自动把它拦截到,并修改成我们希望的样子,然后发送出去,实现了这一步,也就实现了我们希望的功能了,所以,大家一定要掌握滤镜,前面的就算什么都没搞懂,这里的也要弄清楚,否则是不能完成封包的制作的!好了,我们进入正题!  我们利用一个网络游戏来讲解这一张,为了给大家讲清楚,首先让大家知道滤镜在那里:如下图这个就是滤镜,大家在前面的WPE界面介绍里面已经接触过了,编辑封包的方法是先选择一个滤镜,就是下面有很多滤镜,就是Filter1Filter2……等等,就是滤镜,您随便选择一个来编辑,先选中,就是在滤镜前面点一下,然后就看到一个勾,表示当前编辑的滤镜,然后点图上的铅笔,那个铅笔的图表表示编辑,出现下面的界面首先选择一个滤镜作为保存修改好的滤镜的存放,然后选择滤镜性质,默认方式有Search(收寻)Send(发送)、Both(两种情况都要,)经常使用的就是两种都使用,所以这个可以不管,在面罩垂片里面就是我们制作滤镜的主要和关键地方了,这里主要是针对封包的,首先 一般情况下,我们需要WPE检测到某个封包后,发送这个封包被修改后的封包,而且我们没有必要对一个封包完全修改,我们只修改封包的一小部分和关键数字,因此不对封包修改WPE提供了非常方便的修改,首先,填写要修改的封包,这个封包让WPE检测,然后填写要修改的几个地方:如下图下面就是网络游戏里面的滤镜修改游戏部分了!关于滤镜为了大家更明白,现在将滤镜的全部功能用图表示出来:如下图功能都显示出来了,不用详细说了吧,下面就进入正题了!我用一般模式演示一下SEARCH代表搜索的封包MODIFY代表所要替换其他图上说的很明白,请自己看递进模式如上图,开启递进模式我们有两种选择:1/.formthebeginningofthepac(替换被搜索到的相应位置的值)2/.fromthepsoitionofthechai(替换被搜索连续的值)我们选择第一种,如图,具体请看后边例子.我们选用第二种模式,从中替换所搜索到的连续值修改完以后我们选择QUIT,现在看上边图,应该是这个样子,滤镜名称为good好了,以上的基本设置完了,下面就该进入正式的游戏数据修改阶段了,也就是封包的修改了!关于滤镜  首先我们制作一个可以修改封包的滤镜,这个滤镜很简单,目的是让大家知道封包的滤镜制作成功了的样子,如下图上边,我们运用一般模式进行教学, 我们在SEARCH中添入在多次截取封包中出现的相同的SEND看图,比如我在截取传奇封包(捡钱)中多次出现4455FFFF1045BE,而我拣的钱数不一样的时候BE也在边,所以我们认为BE这个代表所拣到的钱这样我们修改BE可以使钱有所变话,我们在BE所对应的MODIFY的位置填上想替换的值01,这样我们就编辑好啦。递进模式连续替换。我讲的可能太白话文了吧,看不懂没关系哦`如上图,我们选择Advanced(递进)模式,看看名字哦,可是51goodbbs.126.com言归正转,看图中SEARCH中001-007中填入FFFFFFFFFFFFFF,比如这是我们在多次SEND中出现的某一物品(比如这个东西是什么药草的代码)我们想将这个物品(当然不是什么值钱的了)替换成另外一个物品2(超级装备之类,很有用很值钱的),而之前我们又很明确这个物品2的代码,这样我们在MODILY中填入那个物品2的码,比如是00000000000000,我们要从+000开始,表示当SERACH中在000-007的位置出现FF时开始替换成MODIFY中+001-+007所修改的值,这样就好啦,大家再自己研究一下吧关于滤镜  为了大家能深入了解滤镜的制作,这里再给大家举些例子,供大家参考学习当FILTER在启动状态时,ON的按钮会呈现红色。当您启动FILTER时,您随时可以关闭这个视窗。FILTER将会保留在原来的状态,直到您再按一次on/off钮。只有FILTER启用钮在OFF的状态下,才可以勾选Filter前的方框来编辑修改。当您想编辑某个Filter,只要双击该Filter的名字即可。范例:当您在StreetFighterOnline﹝快打旋风线上版o_O!?﹞游戏中,您使用了两次火球而且击中了对方,这时您会撷取到以下的封包:SEND->0000081421060104......SEND->00000209870067FFA4AA112200000000....G.........SEND->0000038411091109......SEND->00000A09C1100000FF5244....... SEND->00000A09C1100000665244.......您的第一个火球让对方减了16滴﹝16=10h﹞的生命值,而您观察到第4跟第5个封包的位置4有10h的值出现,应该就是这里了。您观察10h前的0A09C1在两个封包中都没改变,可见得这3个数值是发出火球的关键。因此您将0A09C110填在搜寻列﹝SEARCH﹞,然后在修改列﹝MODIFY﹞的位置4填上FF。如此一来,当您再度发出火球时,FF会取代之前的10,也就是攻击力为255的火球了!AdvancedMode:范例:当您在一个游戏中,您不想要用真实姓名,您想用修改过的假名传送给对方。在您使用TRACE后,您会发现有些封包里面有您的名字出现。假设您的名字是Shadow,换算成16进位则是﹝536861646F77﹞;而您打算用moon﹝6D6F6F6E2020﹞来取代他。1)SEND->0000081421060104......2)SEND->0000010699536861646F77000105...Shadow...3)SEND->0000038411091109......4)SEND->00000A09C11000536861646F770011.....Shadow.5)SEND->00000A09C1100000665244.......但是您仔细看,您的名字在每个封包中并不是出现在相同的位置上-在第2个封包里,名字是出现在第4个位置上-在第4个封包里,名字是出现在第6个位置上在这种情况下,您就需要使用ADVANCEDMODE-您在搜寻列﹝SEARCH﹞填上:536861646F77﹝请务必从位置1开始填﹞-您想要从原来名字Shadow的第一个字母开始置换新名字,因此您要选择从数值被发现的位置开始替代连续数值﹝fromthepositionofthechainfound﹞。-现在,在修改列﹝MODIFY﹞000的位置填上:6D6F6F6E2020﹝此为相对应位置,也就是从原来搜寻栏的+001位置开始递换﹞-如果您想从封包的第一个位置就修改数值,请选择﹝fromthebeginningofthepacket﹞ 关于滤镜以下是对千年的修改过程,大家注意看滤镜的修改!为了方便,我们下面不给图片,而是直接给出封包修改,大家可以看看!注意:这里的xx全部是空出来得意思(以后不再交代这个问题了)也就是封包的第4位到第7位是时间代码,空出来避开服务器对时间验证3个1的代码:(代码总数26位)可以替换成卖东西的代码等等send->000028564exxxxxxxx4e4e4e4e4e4a4e4e75send->0010534e5356584d414e4e294个1的代码:(代码总数26位)代码总数与3个1的相同。注意:(打头3位代码不同)3个1的是28564e而4个1的是285641可以替换买东西的代码send->0000285641xxxxxxxx4e4e4e4e4e6c4e4e75send->0010564e5356584d3f564e296个1的代码:(代码总数30位)这个可替换的比较多。例如无名类的武功,交易点确认等send->0000285675xxxxxxxx4e4e4e4e4e644e4e75send->00104a4e5356584d3f56584d414e4e2911个1的代码:(代码总数34位)可替换拖物品栏物品后点确认的封包send->0000284a4exxxxxxxx4e4e4e4e4e6a4e4e75send->0010424e5356584d3f56584d3f56584d3f56send->0020582933个1的代码:(代码总数66位)可替换状态,如福袋保管后取消和确认的封包,还有刚刚进入游戏是点提示框的封包,与老板娘交易后取消和确认的封包等等send->0000284245xxxxxxxx4e4e4e4e4e5c4e4e75send->0010524e5356584d3f56584d3f56584d3f56send->0020584d3f56584d3f56584d3f56584d3f56send->0030584d3f56584d3f56584d3f56584d414esend->00404e29alt+m(即开小地图)::(代码总数22位)send->0000285341xxxxxxxx4e4e4e4e4e534e5465send->00104e4e4e4e4e29物品栏第一格物品放入保管窗第一格的封包代码:(代码总数46位)send->0000287741xxxxxxxx4e4e4e4e4e794e3e65send->00103e3e754e4e4e4e4e4e4e4e4e4e4e754esend->00204e4e4e4e48546c654e4e4e4e4e29点击屏幕最右下角处老板娘的代码(其他位置没抓过,其实找到其他的把那个不同的代码忽略掉应该就可以实现所有位置的点击了):(代码总数30位)send->0000285675xxxxxxxx4e4e4e4e4e644e3e41send->0010534e4e4e4e4e4e4e4a4e4e4e4e29 取消福袋保管的代码:(代码总数66位)send->0000284245xxxxxxxx4e4e4e4e4e5c4e3e5esend->00106c4e4e4e4e5a5c774e4d6e61594e4d3esend->002053544e4d4e4e4e4e4e75564d774e7441send->00304e4e4e4e7559795e4e5a3f3e4e4e4e4esend->00404e29确认福袋保管的代码:(代码总数66位)send->0000284245xxxxxxxx4e4e4e4e4e5c4e3e5esend->00106c4e4e564e5a5c774e4d6e61594e4a4bsend->002054544e4d4e4e4e4e4e475677774e7441send->00304e4e4e4e7559795e4e5a3f3e4e4e4e4esend->00404e29拉出物品栏第一格物品的动作代码:(代码总数46位)send->0000287741xxxxxxxx4e4e4e4e4e794e3e65send->00103e4e754e4e4e4e4e4e4e4e4e4e4e4e4esend->00204e4e6e75544e414d4e4e4e4e4e29拉出物品栏物品后点取消的代码:(代码总数34位)send->0000284a4exxxxxxxx4e4e4e4e4e6a4e3e57send->00104e4e4e4e4e4e4e774e4e4e4e4e4e4e4esend->00204e29这个是我截取的向无法放置物品的位置放置物品的代码,(即无法放下这个物品的状态)需要说明的是我当时物品栏第一格是钱币,钱币下面是汤药。而且数量是47个。时间太仓促,所以没来得及研究其中具体代码的含义就急着发上来了。用11个1的代码替换后会产生这样的现象。先拖物品栏1格的钱币到外面,然后不用输入数量,在对话栏输入11个1。结果放在钱币下面的汤药会掉出来47个。而那个没有输入数量的窗口还不消失,可以移动,也可以进行买卖保管及移动物品的动作。但就是无法实现复制(痛苦!)刚进入游戏提示框点确认的代码:(代码总数66位)send->00002842454exx4e4e4e4e4e4e4e5c4e3e5esend->0010774e45564e5a5c774e4d6e61594exxxxsend->0020xxxxxxxx4e4e4e4e4exxxxxxxxxxxxxxsend->00304e4e4e4e7559795e4e5a3f3e4e4e4e4esend->00404e29物品栏第一格物品拖到交易窗后点取消的代码:(代码总数34位)这个代码跟物品拖到地面点取消的效果一样。send->0000284a4exxxxxxxx4e4e4e4e4e6a4e3e57send->00104e4e4e4e4e4e4e484e4e4e4e4e4e4e4esend->00204e29独立外挂的制作  制作独立的外挂,先要制作好滤镜,滤镜的制作在前面已经说了,这里不在说明!   然后,点制作独立外挂的按扭:出现如下界面:点下一步,也就是Next(英文不太好的朋友也应该知道这个表示下一步的意思吧?)在第一个框里面填写外挂的名称,第二个名字可以随便取,但是尽量取成你需要的名字,点下一步看到一个文件夹的图表了吗,点它然后出现如下界面,意思是叫你找到原来做好的滤镜的存盘位置这里我们的文件就是5dai.flt,看到了吗?选它,然后点打开点下一步!独立外挂的制作出现如下界面:在这里填写一些信息,你可以填写你的相关信息,这个很简单吧?点下一步看绿色的走满了,就可以点结束了,就是End,好了,独立的外挂做好了,看看是什么样子吧!如下图:运行起来看一下吧,这个就是我们最梦想的外挂了,如下图 这个外挂爽了吧,可以到处使用椰,赶快发给你的朋友使用吧,到这里,我们的教程也该结束了,谢谢大家的支持,希望大家能游戏愉快,各位朋友,五代科技欢迎您,再见!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭