先不讲wpe的思路,因为游戏种类繁杂,每个游戏的功能不同,测试方式也不一样。后面再讲,今天要讲的是CE,一款内存修改器。相信很多人都使用过,类似于金山游侠。
通常游戏封包加密了我搞不定的情况下,我选择修改内存来达到目的,游戏和软件一样,都是本地生成数据后发送给服务器,服务器接收到了相应的值再返回给客户端,就是你和服务器直接的对话,而有了wpe和ce这些工具,你和服务器之间的对话就不是按照剧本规定的台词了,你可以使用自己的台词。
假如我买一个道具,那我可不可以买-1个道具,我可以买隐藏道具吗?
先来讲下CE如何设置,工具还是雷电模拟器,CE。
____
介绍CE
CE如何加载模拟器进程?打开CE后,点击左上角小电脑
,选择后面是Headless.exe的进程,任何模拟器都有这个进程。
然后应该还要设置这个如图就好:
设置完毕后简单的讲一下CE的基础功能:
搜索:
一般我们都选择4字节搜索,至于什么是4字节自行百度,不重要。
案例
假如我们使用wpe截取游戏时,封包动态加密而我们又不会解密,那么使用CE也可以达到同样的目的,比如我要兑换道具
数量为1时,搜索1,点击首次扫描,可以看到内存中又900万个值都是1(搜索时,他会将模拟器中所有为1的值全部搜索出来),所以为了筛选出我们想要的值,我们要把游戏中兑换数量变成2,然后再CE中输入2,点击再次扫描
意思就是把刚刚搜索到的列表里从1变成2的数字全部筛选出来,还剩1352个值,在把游戏中变回1,然后CE输入1,再次扫描,如此反复多次,保证数值在10个以内
能看到最后只剩一个值了,那么这个内存地址就是数量,双击这个地址,然后会看到到了下面的区域,这里就可以修改了,在下面数值区域双击,将他修改为-99尝试
点击确认兑换就可以看到系统提示兑换这些礼包,因为溢出了所以变成了负数最大值。由于这个游戏以前出现过这样的漏洞,所以已经修复了数量方面的问题。
这些是我们眼睛能看到的数据,所以直接就能搜索,那么对于我们看不到的数据我们怎么搜索呢?假如我想找到一个人物的ID是多少?下面就要讲到模糊搜索这个功能了。
点击新的扫描,然后再扫描类型中选择未知的初始值,先再游戏中随便点击一个人物,然后点击首次扫描时,会把模拟器中全部内存找到是一个非常庞大的数据。
然后切换到其他人物,再扫描类型中选择变动的数值,点击再次扫描,然后继续切换人物再次扫描,意思就是先把模拟器中所有的内存地址全部找到,然后通过人物变换,再模拟器中搜索有变换的内存地址,由于数据庞大,这通常需要5-10分钟来反复筛选才能慢慢减少数值(小技巧,通过未变动的数值可以有效的减少无用地址,切换到其他人物后再切换回来,然后选择未变动的数值)
一般不建议退出人物界面,因为退出了某个大功能后,内存地址很可能重新分配,导致了你列表中没有你要的内存地址。
挖掘漏洞思路
我个人比较热衷于找ID,因为会看到很多稀奇古怪的测试道具,人物名称,而通过修改ID,可以购买测试礼包,创建隐藏人物,游戏技能也可以通过修改ID来使用其他职业技能,提前查看游戏英雄,一般游戏更新人物都会停机更新一次,然后热更新一次,热更新后你的新英雄就显示出来了,其实再停机更新时,新人物的数据已经再你的游戏中生成了,通过修改人物ID或者道具ID就可以查看新英雄或新道具,虽然这不算是漏洞,但是影响还是蛮大的,我再玩一款sgl游戏时,通过查看新人物,总是能提前知道下一个武将的技能,这样就可以提前攒相关的游戏道具来培养即将到来的武将了。
比如一款类似lol的手游中,就出现过无限视距的辅助,那么该辅助是利用了什么漏洞了,游戏状态再内存中很多是用0和1来表示的,0代表没有,1代表有,那个漏洞就是有个射手再开大后,视野会变大,这时他的内存状态就是1,而大招结束后内存状态又变成了0,只要把内存锁定为1即可一直是大招视角了。
锁定功能:
这个漏洞还是我徒弟想出来告诉我的,提前进新区的漏洞,游戏每个区都有ID,通过模糊搜索,找到区服的ID,修改为新区,某场以前这个是通杀漏洞,因为他们所有游戏都存在这个漏洞,不过这种漏洞评级才低危,其实影响还是很大了,正常来说开区前都会删档,但是开发和测试可没有那么勤快,有些工作能不做就不做了。
最后给你们介绍下我在陌陌挖掘的游戏业务,奖励很高
下篇继续wpe的使用方法和思路
回顾陌陌2019年度个人第一,讲解游戏的逻辑漏洞 https://www.secpulse.com/archives/123753.html