一般来说,网络游戏的封包都可以加密,对一般数据采用简单的加密,不会影响游戏速度,但是对游戏的安全却非常管用,对于非常重要的数据,则采用复杂的加密方式,可以保证游戏平衡,例如:游戏中人物的等级,这个属于非常重要的数据,必须采用非常好的加密方式来保密数据不会轻易被修改,好了,这个大家自然明白,那么我们就开始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的专长,当然也可以使用其他黑客工具来拦截,我们不管那么多,先拦截几个用户名密码先,下面这个是某台电脑上被拦截到的封包,内容如下:
send 0000 01 00 00 00 7a 68 61 6e 67 6a 75 6e 30 30 37 00
00 02 00 64 66 6c 64 68 6a 66 64 65 6a 68 00 00
要分析这个封包还真是麻烦,呵呵,那么长,总不能乱抓吧?这里有简单方法的,别忘了我们前面已经讲过的方法哦,我们的黄金规则:比较法则和结构法则,这里我们用比较法则,利用比较法则的相同比较和不同比较,很容易辨认用户名和密码各在那一段,这样对我们的分析是非常有用的,至于如何比较,在前面的章节都详细说了,相信大家都知道了,好了,这里就不再罗嗦了!直接给出!
通过比较我们知道,
用户名是: 7a 68 61 6e 67 6a 75 6e 30 30 37
密码是: 64 66 6c 64 68 6a 66 64 65 6a 68
马上使用我们的进位专家来对付这些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
一、阻断服务(Denial of Service)在探讨 DDoS 之前我们需要先对 DoS 有所了解,DoS泛指黑客试图妨碍正常使用者使用网络上的服务,例如剪断大楼的电话线路造成用户无法通话。而以网络来说,由于频宽、网络设备和服务器主机等处理的能力都有其限制,因此当黑客产生过量的网络封包使得设备处理不及,即可让正常的使用者无法正常使用该服务。例如黑客试图用大量封包攻击一般频宽相对小得多的拨接或 ADSL 使用者,则受害者就会发现他要连的网站连不上或是反应十分缓慢。
DoS 攻击并非入侵主机也不能窃取机器上的资料,但是一样会造成攻击目标的伤害,如果攻击目标是个电子商务网站就会造成顾客无法到该网站购物。
二、分布式阻断服务(Distributed Denial of Service)
DDoS 则是 DoS 的特例,黑客利用多台机器同时攻击来达到妨碍正常使用者使用服务的目的。黑客预先入侵大量主机以后,在被害主机上安装 DDoS 攻击程控被害主机对攻击目标展开攻击;有些 DDoS 工具采用多层次的架构,甚至可以一次控制高达上千台电脑展开攻击,利用这样的方式可以有效产生极大的网络流量以瘫痪攻击目标。早在2000年就发生过针对Yahoo, eBay, Buy.com 和 CNN 等知名网站的DDoS攻击,阻止了合法的网络流量长达数个小时。
DDoS 攻击程序的分类,可以依照几种方式分类,以自动化程度可分为手动、半自动与自动攻击。早期的 DDoS 攻击程序多半属于手动攻击,黑客手动寻找可入侵的计算机入侵并植入攻击程序,再下指令攻击目标;半自动的攻击程序则多半具有 handler 控制攻击用的agent 程序,黑客散布自动化的入侵工具植入 agent 程序,然后使用 handler 控制所有agents 对目标发动 DDoS 攻击;自动攻击更进一步自动化整个攻击程序,将攻击的目标、时间和方式都事先写在攻击程序里,黑客散布攻击程序以后就会自动扫描可入侵的主机植入 agent 并在预定的时间对指定目标发起攻击,例如近期的 W32/Blaster 网虫即属于此类。
若以攻击的弱点分类则可以分为协议攻击和暴力攻击两种。协议攻击是指黑客利用某个网络协议设计上的弱点或执行上的 bug 消耗大量资源,例如 TCP SYN 攻击、对认证伺服器的攻击等;暴力攻击则是黑客使用大量正常的联机消耗被害目标的资源,由于黑客会准备多台主机发起 DDoS 攻击目标,只要单位时间内攻击方发出的网络流量高于目标所能处理速度,即可消耗掉目标的处理能力而使得正常的使用者无法使用服务。
若以攻击频率区分则可分成持续攻击和变动频率攻击两种。持续攻击是当攻击指令下达以后,攻击主机就全力持续攻击,因此会瞬间产生大量流量阻断目标的服务,也因此很容易被侦测到;变动频率攻击则较为谨慎,攻击的频率可能从慢速渐渐增加或频率高低变化,利用这样的方式延缓攻击被侦测的时间。
三、从 DDoS 攻击下存活
那么当遭受 DDoS 攻击的时候要如何设法存活并继续提供正常服务呢?由先前的介绍可以知道,若黑客攻击规模远高于你的网络频宽、设备或主机所能处理的能力,其实是很难以抵抗攻击的,但仍然有一些方法可以减轻攻击所造成的影响。
首先是调查攻击来源,由于黑客经由入侵机器进行攻击,因此你可能无法查出黑客是由哪里发动攻击,我们必须一步一步从被攻击目标往回推,先调查攻击是由管辖网络的哪些边界路由器进来,上一步是外界哪台路由器,连络这些路由器的管理者(可能是某个ISP或电信公司)并寻求他们协助阻挡或查出攻击来源,而在他们处理之前可以进行哪些处理呢?
如果被攻击的目标只是单一 ip,那么试图改个 ip 并更改其 DNS mapping 或许可以避开攻击,这是最快速而有效的方式;但是攻击的目的就是要使正常使用者无法使用服务,更改ip的方式虽然避开攻击,以另一角度来看黑客也达到了他的目的。此外,如果攻击的手法较为单纯,可以由产生的流量找出其规则,那么利用路由器的 ACLs(Access Control Lists)或防火墙规则也许可以阻挡,若可以发现流量都是来自同一来源或核心路由器,可以考虑暂时将那边的流量挡起来,当然这还是有可能将正常和异常的流量都一并挡掉,但至少其它来源可以得到正常的服务,这有时是不得已的牺牲。如果行有余力,则可以考虑增加机器或频宽作为被攻击的缓冲之用,但这只是治标不治本的做法。最重要的是必须立即着手调查并与相关单位协调解决。
四、预防DDoS攻击
DDoS 必须透过网络上各个团体和使用者的共同合作,制定更严格的网络标准来解决。每台网络设备或主机都需要随时更新其系统漏洞、关闭不需要的服务、安装必要的防毒和防火墙软件、随时注意系统安全,避免被黑客和自动化的 DDoS 程序植入攻击程序,以免成为黑客攻击的帮凶。
有些 DDoS 会伪装攻击来源,假造封包的来源 ip,使人难以追查,这个部份可以透过设定路由器的过滤功能来防止,只要网域内的封包来源是其网域以外的 ip,就应该直接丢弃此封包而不应该再送出去,如果网管设备都支持这项功能,网管人员都能够正确设定过滤掉假造的封包,也可以大量减少调查和追踪的时间。
网域之间保持联络是很重要的,如此才能有效早期预警和防治 DDoS 攻击,有些 ISP会在一些网络节点上放置感应器侦测突然的巨大流量,以提早警告和隔绝 DDoS 的受害区域,降低顾客的受害程度。
这时侯分布式的拒绝服务攻击手段(DDoS)就应运而生了。你理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了。
被DDoS攻击时的现象被攻击主机上有大量等待的TCP连接
网络中充斥着大量的无用的数据包,源地址为假
制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯
利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求
严重时会造成系统死机
黑客是如何组织一次DDoS攻击的?
这里用"组织"这个词,是因为DDoS并不象入侵一台主机那样简单。一般来说,黑客进行DDoS攻击时会经过这样的步骤:
1. 搜集了解目标的情况
下列情况是黑客非常关心的情报:
被攻击目标主机数目、地址情况
目标主机的配置、性能
目标的带宽
对于DDoS攻击者来说,攻击互联网上的某个站点,如http://www.mytarget.com,有一个重点就是确定到底有多少台主机在支持这个站点,一个大的网站可能有很多台主机利用负载均衡技术提供同一个网站的www服务。以yahoo为例,一般会有下列地址都是提供http://www.yahoo.com服务的:
66.218.71.87
66.218.71.88
66.218.71.89
66.218.71.80
66.218.71.81
66.218.71.83
66.218.71.84
66.218.71.86
如果要进行DDoS攻击的话,应该攻击哪一个地址呢?使66.218.71.87这台机器瘫掉,但其他的主机还是能向外提供www服务,所以想让别人访问不到http://www.yahoo.com的话,要所有这些IP地址的机器都瘫掉才行。在实际的应用中,一个IP地址往往还代表着数台机器:网站维护者使用了四层或七层交换机来做负载均衡,把对一个IP地址的访问以特定的算法分配到下属的每个主机上去。这时对于DDoS攻击者来说情况就更复杂了,他面对的任务可能是让几十台主机的服务都不正常。
所以说事先搜集情报对DDoS攻击者来说是非常重要的,这关系到使用多少台傀儡机才能达到效果的问题。简单地考虑一下,在相同的条件下,攻击同一站点的2台主机需要2台傀儡机的话,攻击5台主机可能就需要5台以上的傀儡机。有人说做攻击的傀儡机越多越好,不管你有多少台主机我都用尽量多的傀儡机来攻就是了,反正傀儡机超过了时候效果更好。
但在实际过程中,有很多黑客并不进行情报的搜集而直接进行DDoS的攻击,这时候攻击的盲目性就很大了,效果如何也要靠运气。其实做黑客也象网管员一样,是不能偷懒的。一件事做得好与坏,态度最重要,水平还在其次。
2. 占领傀儡机
黑客最感兴趣的是有下列情况的主机:
链路状态好的主机
性能好的主机
安全管理水平差的主机
这一部分实际上是使用了另一大类的攻击手段:利用形攻击。这是和DDoS并列的攻击方式。简单地说,就是占领和控制被攻击的主机。取得最高的管理权限,或者至少得到一个有权限完成DDoS攻击任务的帐号。对于一个DDoS攻击者来说,准备好一定数量的傀儡机是一个必要的条件,下面说一下他是如何攻击并占领它们的。
首先,黑客做的工作一般是扫描,随机地或者是有针对性地利用扫描器去发现互联网上那些有漏洞的机器,象程序的溢出漏洞、cgi、Unicode、ftp、数据库漏洞…(简直举不胜举啊),都是黑客希望看到的扫描结果。随后就是尝试入侵了,具体的手段就不在这里多说了,感兴趣的话网上有很多关于这些内容的文章。
总之黑客现在占领了一台傀儡机了!然后他做什么呢?除了上面说过留后门擦脚印这些基本工作之外,他会把DDoS攻击用的程序上载过去,一般是利用ftp。在攻击机上,会有一个DDoS的发包程序,黑客就是利用它来向受害目标发送恶意攻击包的。
3. 实际攻击
经过前2个阶段的精心准备之后,黑客就开始瞄准目标准备发射了。前面的准备做得好的话,实际攻击过程反而是比较简单的。就象图示里的那样,黑客登录到做为控制台的傀儡机,向所有的攻击机发出命令:"预备~ ,瞄准~,开火!"。这时候埋伏在攻击机中的DDoS攻击程序就会响应控制台的命令,一起向受害主机以高速度发送大量的数据包,导致它死机或是无法响应正常的请求。黑客一般会以远远超出受害方处理能力的速度进行攻击,他们不会"怜香惜玉"。
老到的攻击者一边攻击,还会用各种手段来监视攻击的效果,在需要的时候进行一些调整。简单些就是开个窗口不断地ping目标主机,在能接到回应的时候就再加大一些流量或是再命令更多的傀儡机来加入攻击。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)