以身试外挂(图)
国家资讯出版署和信息产业部严厉打击私F和外挂,本教程写于此处仅做学习和研究之用,如若因此导致任何后果,本人概不负责
真正的外挂所要做的,不是试图修改游戏里面的数值,而是伪造信息封包。
因为网游发展到今天,已经没有哪个傻瓜服务器还把重要数据放在客户端了!
什么意思呢?就是下面我所要改的,并不是"血由1W变成10W"之类的东西, 这些是存蓄在服务器客户端服务器里的存盘数据,我们不是游戏开发商,一般没办法改掉,当然也可以手提砍刀冲进他们机房里,把刀架在技术员脖子上逼着他帮改!
所以, 我们要改的只可能是把"我获得了10W" 改成"我获得了100W"或把"我得了50W的经验"改成"我得了500W经验"之类 的, 或者是明明身上没东西还一直卖给商人"补天"。
下一步,当然就是去写个封包截取软件,实在不会写的可以根据各类游戏数据指令类型去下载人家写好的脚本,并使它能截取网络上的数据封包,目前大多网络游戏都采用了Client或server等模式,我们的信息全在服务器上面,想从服务器上修改我们的个人用户信息,可能性为微乎其微,客户端安装在你的机器上, 玩游戏的时候,你发出指令,其实就是向服务器发送封包,服务器接收到封包后进行分析,然后返回结果,结果也是以封包的形式发送到你的机器上,你的机器接收到後就可以看到结果了。
这就给我们修改造成了机会,如果我们把封包里的数据改了会怎么样呢?比如我买了一面旗子,截取到代码,然后改成补天的代码,那么我在机器上的效果应该就是买到个补天了(已经试验过,可行)这种方法理论上是可行的,可是为什么有时实现不了呢?因为服务器还有应对措施,对一些重要的数据往往需要检测多项,我们修改的时候只是修改了其中一项,是不行的。而且往往数据包是加密传输的,这也给我们找正确的数据制造了麻烦。
但是服务器的监测工作是有限度的,因此不可能全部都由服务器完成,很多耗资源的监测都放到了客户端上,早期的大话1,半月,精灵等游戏都是在本机上进行了监测,服务端并没有相应的监测机制,只有最近的更新才加入了一些监测,但也造成了整个服务端的狂慢。所以对一些服务器并没有监测的东西我们还是可以修改的,当然这些东西需要大家一起探索
一点技术提示:
大话 的c/s通信采用了字节流套接字,这种通信可靠,双向,顺序,因此,封包只要按照原来的顺序就可以了。游戏采用了32位加密(crc/32),故我们不能随便篡改其中的信息,否这服务器在校验时,发现出错,就会断开服务器连接哦,故采用李代桃疆之法更有效。身份认证信息的篡改当然没问题了(通一台机器,同一用户嘛!)我们发送的数据含有坐标码,改包时不要改坐标哦。
一开始,当然是执行游戏了,进入游戏后再按Alt+F4跳出游戏 ,打开程序(如下图第一个)
第二步,当然就是怎样截取刚才记录下的数据了(由于篇幅有限图略)
第三步,开始分析数据(如图第二个)
截获封包后,s框后面的数字是发送封包的内容,r框后面的数字是接收封包的内容,以16进制数和acsII两种方式体现!整个程序的上面有储存清除查找3个选项!至此,第一步截取完成了。下面进行的是要过滤了,呵呵,不要打瞌睡,重头戏出场了!
还是由于论坛上最多只能3000字节,篇幅有限,详细分析过程略
下面举一个例子,修改游戏中的旗子变杀人香:
在游戏中买2个旗子,截获到的封包如下
SEND-> 0000 23 33 60 4C 43 60 3C 48 60 47 3C 3C 3C 41 3C 3C 3C 3C 21
SEND-> 0000 23 34 60 4C 43 60 3C 48 60 47 3C 3C 3C 41 3C 3C 3C 3C 21
在游戏中去买2次杀人香,截获到的封包如下
SEND-> 0000 23 31 60 4C 43 60 3C 48 60 47 3C 3C 3C 47 3C 3C 3C 3C 21
SEND-> 0000 23 32 60 4C 43 60 3C 48 60 47 3C 3C 3C 47 3C 3C 3C 3C 21
先进性分析
因为游戏中都是在同一位置买的东西,排除位置因素,分析只有2处不同,而每次封包中只有第2处的位置上相同,故很有可能第2出代表的就是杀人香的代码
这种情况下有正常模式就行了,封包中数值的位置是固定的
下面的,就开始修改数值了
修改了封包数据后的结果,请看图3效果显著啊
哎,可惜人算不如机算再看看最后那个图,希望破灭了大家千万别试哦
连接地址:http://bbs.yezizhu.yzz.cn/dispbbs.asp?boardID=6&ID=716166&page=1