WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2038查看
  • 8回复

主题

好友

1852

积分

金牌会员

发表于 2010-7-23 18:47:17 |显示全部楼层
本帖最后由 静女 于 2010-7-23 18:58 编辑

帖子内容所限,没办法,分2次发。。。大家可一起讨论提高~(昨天有兄弟提醒我看看封包加密与欺骗,今天找了些内容看了看,这些不错,整理了下拿出来和大家分享。非我原创,另有朋友正在帮我找一些视屏教程,到手后也会分享个大家,觉得内容还不错的顶下吧)
    很多人都基本知道WPE怎么工作的了,但是还是不能用它来修改游戏,不能做出外挂来,为什么?其实很简单,因为他们对封包的分析不够,不知道封包是可以加密的,更不知道怎么解密,这里我们给大家讲解游戏里面使用频率非常高的几大加密方式-----异或运算加密、背包运算加密等等,并给大家讲解怎么分析这些加密的封包,怎么找到它的内在规律,怎样自己制作假封包满足它的加密规律,来达到修改游戏的目的!
    一般来说,网络游戏的封包都可以加密,对一般数据采用简单的加密,不会影响游戏速度,但是对游戏的安全却非常管用,对于非常重要的数据,则采用复杂的加密方式,可以保证游戏平衡,例如:游戏中人物的等级,这个属于非常重要的数据,必须采用非常好的加密方式来保密数据不会轻易被修改,好了,这个大家自然明白,那么我们就开始3大常用加密方式告诉大家,并给出解密方法,大家注意掌握,这个对游戏修改至关重要!不能解密,就做不出象样的外挂!
异或运算加密:
简单的说,异或就是\"相同为0,不同为1\"(这是针对二进制按位来讲的),举个例子,0001和0010异或,我们按位对比,得到异或结果是0011,计算的方法是:0001的第4位为0,0010的第4位为0,它们相同,则异或结果的第4位按照\"相同为0,不同为1\"的原则得到0,0001的第3位为0,0010的第3位为0,则异或结果的第3位得到0,0001的第2位为0,0010的第2位为1,则异或结果的第2位得到1,0001的第1位为1,0010的第1位为0,则异或结果的第1位得到1,组合起来就是0011。
当然,例子中异或运算是很简单的,我想利用函数的方法来讲解一下异域加密问题,这样大家容易理解,大家知道函数
y=f(x),
这里的 x就相当于上例中的0001,而y呢就是0011,0001和0010异域就是f,f是映射方式,函数就是某种映射方式,从函数和映射的角度来理解加密是非常好的和正确的。
我们为什么要讲这种加密方式呢?
因为这种加密方式,不是非常隐蔽,但是非常容易实现,建立一个映射,可以在整个软件中调用,所以,在游戏制作的时候,制作一个映射并不需要太高的技术,而且这个映射可以在任何时候修改,非常容易维护和更新,如果映射规律被破解了,也可以更新游戏来更新映射,达到保密的作用,所以,这种加密方式是游戏里面经常采用的加密方式,更重要的是,这种加密方式对电脑要求低,运算速度快,不会影响游戏速度,所以经常被采用,如果能很好地破解这种加密方式,那么对于游戏里面的一些关键数据,我们就可以非常方便的修改了。
下面进行异域运算解密实战:
这里我们以金庸群侠传里PK店小二客户端发送的数据为例来讲解,截取2次PK店小二封包,将WPE截获的封包保存为文本文件,然后打开它,这时会看到如下的数据。(如何截取,参照论坛WPE教程)
第一个文件:
SEND-> 0000 E6 56 0D 22 7E 6B E4 17 13 13 12 13 12 13 67 1B
SEND-> 0010 17 12 DD 34 12 12 12 12 17 12 0E 12 12 12 9B
SEND-> 0000 E6 56 1E F1 29 06 17 12 3B 0E 17 1A
SEND-> 0000 E6 56 1B C0 68 12 12 12 5A
SEND-> 0000 E6 56 02 C8 13 C9 7E 6B E4 17 10 35 27 13 12 12
SEND-> 0000 E6 56 17 C9 12

第二个文件:
SEND-> 0000 83 33 68 47 1B 0E 81 72 76 76 77 76 77 76 02 7E
SEND-> 0010 72 77 07 1C 77 77 77 77 72 77 72 77 77 77 6D
SEND-> 0000 83 33 7B 94 4C 63 72 77 5E 6B 72 F3
SEND-> 0000 83 33 7E A5 21 77 77 77 3F
SEND-> 0000 83 33 67 AD 76 CF 1B 0E 81 72 75 50 42 76 77 77
SEND-> 0000 83 33 72 AC 77
我们发现两次PK店小二的数据格式一样,但是内容却不相同,我们是PK的同一个NPC,为什么会不同呢?
原来金庸群侠传的封包是经过了加密运算才在网路上传输的,那么我们面临的问题就是如何将密文解密成明文再分析了。
我们继续看看上面的两个文件,按照常理,数据包的数据不会全部都有值的,游戏开发时会预留一些字节空间来便于日后的扩充,也就是说数据包里会存在一些\"00\"的字节,观察上面的文件,我们会发现文件一里很多\"12\",文件二里很多\"77\",那么这是不是代表我们说的\"00\"呢?推理到这里,我们就开始行动吧!

我们把文件一与\"12\"异或,文件二与\"77\"异或,当然用手算很费事,我们使用\"M2M 1.0 加密封包分析工具\"来计算就方便多了。得到下面的结果:

第一个文件:
1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09
SEND-> 0010 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 89
2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 08
3 SEND-> 0000 F4 44 09 D2 7A 00 00 00 48
4 SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00
5 SEND-> 0000 F4 44 05 DB 00

第二个文件:
1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09
SEND-> 0010 05 00 70 6B 00 00 00 00 05 00 05 00 00 00 1A
2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 84
3 SEND-> 0000 F4 44 09 D2 56 00 00 00 48
4 SEND-> 0000 F4 44 10 DA 01 B8 6C 79 F6 05 02 27 35 01 00 00
5 SEND-> 0000 F4 44 05 DB 00

哈,这一下两个文件大部分都一样啦,说明我们的推理是正确的,上面就是我们需要的明文! 接下来就是搞清楚一些关键的字节所代表的含义,这就需要更多的封包数据进行分析。因为本文主要讲解封包数据解密与破解,具体数据就不分析了。分析清楚数据以后,进行自己所需要的修改,再发送至服务器就可以达到欺骗服务器的目的。
好了,本节内容到此结束。

主题

好友

1852

积分

金牌会员

发表于 2010-7-23 19:16:16 |显示全部楼层
好吧,既然就我觉得内容不错,我就自己顶下了~另希望向技术人才学习,不知谁能满足下我。
回复

使用道具 举报

主题

好友

1456

积分

金牌会员

发表于 2010-7-23 19:29:45 |显示全部楼层
我是来看静女的头像的~~不错 顶一个
回复

使用道具 举报

主题

好友

230

积分

中级会员

发表于 2010-7-23 20:57:50 |显示全部楼层
说实话 看的我头痛  呵呵   我就一小白  不过感觉还是蛮专业的  顶你下 顺便看3楼头像  嘿嘿
回复

使用道具 举报

主题

好友

4102

积分

论坛元老

发表于 2010-7-24 08:07:51 |显示全部楼层
楼主太辛苦了,,,       还有点不明白哈。
回复

使用道具 举报

主题

好友

1360

积分

金牌会员

发表于 2010-7-24 10:44:27 |显示全部楼层
天书~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

主题

好友

3990

积分

论坛元老

发表于 2010-12-21 22:17:22 |显示全部楼层
内容不错,是纯技术的,好的
回复

使用道具 举报

主题

好友

100

积分

注册会员

发表于 2011-6-7 01:06:54 |显示全部楼层
看是看懂了。

不过我没懂起异或是什么意思
回复

使用道具 举报

主题

好友

386

积分

中级会员

发表于 2011-7-4 19:53:03 |显示全部楼层
谢谢`````有点明了``但我希望楼主出个视频教程吧```
回复

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-5-12 23:08 , Processed in 0.073487 second(s), 16 queries .

返回顶部