来聊聊游戏的“疫区”

2020-02-25 6,275
_

投稿:月神

配图:M

_
_
_
_
_

    这么多年,我的技术没有提升,而我提升的是思路,我属于那种看到代码就犯困的人,只能另辟蹊径了。

    交流特别重要,因为每个人想到的东西都不同,我有一个朋友,以前我们都是刚接触八门神器(塞班系统的内存修改器),有一次他和我说wx个人签名能改成100字,那时候我想了半天也没想到,他告诉我直接搜索30(文字长度限制)然后结果全部改成100,那时候wx的数据量没那么大,修改后不会导致客户端崩溃(因为是全部修改,会导致各种参数异常,所以难免会崩溃)

    由于字数长度是客户端限制而不是服务器限制的,不然就算改成了100,保存时也会有内容超出了最大长度这类的提示

_
_
_
_

案例一

    很久前,我玩一款act手游,叫格斗XX。当时QQ好友给我说他能刷金币,我刚听到的时候一点都不信,后来他给我看截图,我一看再副本中还真是一地金币呢。我耐心追问了半个小时啊,才肯告诉我,也是我第一次接触到新的知识点(在这之前我从来不和任何人学思路,我觉得学了我就承认自己没别人厉害,后来我想明白了,实际上厉害的人多了,谦虚学习才是王道)我们第一篇文章提到过,wpe截取到的是2个端口,一种是本地发送给服务器的,一种是本地发送给本地的,而第二种就是代理返回(发送)给你的包,也就是你的接收包,而发送这个包的话也就是让代理重新发送给本地一次这个数值(相当于你的客户端重新接到一次请求)而这个漏洞就是打怪时爆出的金币其实是服务器返回给客户端的,客户端接到后再本地生成一堆金币显示出来,一直发送这个包,就可以再本地生成大量的金币,然后拾取时本地会给服务器发送一条数据告诉服务器拾取了金币,那么为什么不直接发送数据来拾取金币呢?因为这个游戏的发送统统加密了,而返回没有加密,后来游戏采取了每天每个玩家再副本最多能拾取金币上限来限制这个漏洞的利用。

   

 对了可以把这个接受包关掉,因为开了代理,代理会把接收包以发送的形式返还给你,不然截取数据时太多包,看着太乱了。

   改本地值其实有很多功能点的漏洞,比如一些游戏不打架会骑上坐骑,打架了就自动下坐骑,在没有骑坐骑的情况下,给自己发送个上坐骑的封包(提前截取一个然后发送)由于是本地效果,所以不会下坐骑(下坐骑时可能会给服务器发送一条数据,由于实际上没有上坐骑,所以发送的返回值是失败)这就导致了一直移动速度可能比别人快,再就是死亡后,发送一条复活的封包,而实际上别人看到的你还是死亡,而你看到的自己已经复活了(游戏中服务器没有做死亡校验,死亡后客户端限制动作,而通过代理欺骗客户端复活了自己的人物后,一个无敌的尸体也可以正常游戏了)

    每个游戏的功能不同,漏洞不同,测试点也就不同,这导致了没法写一个测试方法汇总。

    游戏中1并不一定是1,由于储存类型不同,1也有可能是其他数字,比如1=1072693248(工具打包网盘)Dword可以百度百科看一下,对于理论上的知识我不是很懂。

1也有可能=49,至于为啥看百度吧我还是不懂。https://zhidao.baidu.com/question/33327751.html

那么当1=1072693248时,1072693247是什么呢?答案是0.9999999999,比如某仙这款游戏在经验找回时,将找回数量改为1072693247,经验数量变成了原有的0.99999倍,而次数没有扣除,因为不满足1。导致了可以无限兑换经验。

案例二

    下面这款游戏当时是个难题,本身安全就做的很好,我对程序方面不是很懂,内存虽然能搜索到这个数值,但是改了只能本地客户端看到的值变了,实际上他的值没有变,也就是说我改成-1后,我看到的值变成了-1,而我点击购买后,还是1。我个人猜测是他把真实的值通过加密放在了一个内存中,而且是不断变换的内存地址,这导致了我用模糊搜索找不到这个真实地址,因为模糊搜索是在目前已有的内存地址上做的筛选,而你在筛选过程中他把值放到了一个新的地址中,这个新的地址并不在我搜索范围内。最后想出了一个办法,搜索他的最大值,999=1083127808(这款游戏也是这样的数值)搜索到后把所有数值全部改成负数,然后在游戏中点击一下数量旁边的+号,因为最大值变成了负数,所以点击后,数量自然变成了负数。这才解决了这个办法,说到底还是技术不够导致的,如果能多会一些别的办法也不至于这样。 

    

有一次在玩某舞团时,和人互送礼物被人骗了,我送他但是他没送我,这给我气的,然后 有个朋友刚好也在玩这个游戏,告诉我个漏洞能强行登陆,我就上骗子号把礼物送了回来,很多游戏在登陆时会给服务器发送一次账号密码,然后验证完毕后,还会发送一次角色ID,这在软件中也能遇到,登陆后又发送个UID,替换这个UID,而服务器恰好没有进行校验UID是否属于该账号,就导致了越权登陆。    

    还有一个游戏中能遇到的问题,把测试服的功能拿到正式服来用,比如某款游戏测试服每天签到给1W元宝,这个接口在正式服很可能也是适用的,用wpe把领取的封包保存下来,然后去正式服领取。

有问题欢迎留言或者直接问我,反正在家也是闲着。

回顾

第一篇

陌陌2019年度个人第一,讲解游戏的逻辑漏洞

第二篇

再来!月神带你挖游戏的内存漏洞

工具地址

数值转换工具:

链接:https://pan.baidu.com/s/1kne07Q505-zfXHSu29fDBA

提取码:w41h


本文作者:ChaMd5安全团队

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/123848.html

Tags:
评论  (0)
快来写下你的想法吧!

ChaMd5安全团队

文章数:85 积分: 181

www.chamd5.org 专注解密MD5、Mysql5、SHA1等

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号