明明那么“难”的游戏,怎么朋友圈一堆人在晒通关成果呢?
本篇文章来介绍“通关” 的黑科技,让每个人都有机会秀一把。
# 1. 羊了个羊
本来在一个平淡的夜晚,困了。找个小游戏玩一玩提提神,“羊了个羊”?看着还行,玩一玩第一关,这么简单,都给我整困了,一会能睡个好觉了,第二关,哎,这游戏有点意思哈。。。
凌晨三点了。。。
哎呀,来劲了,来劲了,从来没有第二关给我卡的死死的游戏。。。我就不信了
。。。。
我待羊羊如初恋,而它虐我千百遍。。。
第二天到公司顶着重重的黑眼圈拖着沉重的身体,和同样重重的黑眼圈的同事相遇,相视一笑。我问:你也是羊?同事:什么阳,我可没阳,我绿码!我是加班通宵上线,现在要回家。
好吧!苦逼的娃。。。
到了办公室本着死道友不死贫道的精神,为了广大同事的睡眠质量,安利了这个简单好玩(丧心病狂)的小游戏,增进同事之前的友情,第二天接到了以下反馈:
第二天上班被同事集体声讨,胁迫,追打,按在地上死死摩擦(我这是何苦的自作孽)。在我们“心平气和的探讨”后,我们“打”成了协议:由我帮他们通过这个好玩(BT)的游戏。
我坐在工位苦思冥想,实验了几次以请假为由回家而被同事堵门口而失败的方案后,又开始苦思冥想的想解决方案。终于,在我薅光了我工位上的小绿植之前,脑子 灵光一闪。常规的路走不下去,我为什么不学魔法那!!!所谓道高一尺魔高一丈。我玩不过你我还不能修改你的接口吗?!
常言道:黑猫白猫,抓住老鼠都是好猫!
是时候祭出我的大杀器了,技术人员的不二神器:Charles!!!
什么你问我何为Charles?Charles,旅游必备良药!!!杀人放。。呸,抓包必备神器!!!修改弱网无所不能!
# 2. 环境准备
Charles 是在 PC 端常用的网络封包截取工具,详细介绍感兴趣的同学可自行搜索,我要抓紧时间破解,完成同事们的心愿!下班前救回自己的狗命!
Charles官网下载安装包,下载成功后根据指示安装即可
官网地址:www.charlesproxy.com
2.1 连接手机
1、配置http代理
2、手机上连接代理
在手机WiFi中配置手动代理,输入安装Charles的电脑的网络地址,端口填8888。(注意:手机WiFi要和电脑同一个哦)
2.2 观察接口
万事俱备,只欠东风。让我们瞅瞅这个Charles抓了个啥出来。
啥?!!这怎么是https的,都是乱码啊?
莫慌,天将降大任于斯人也,必先。。。百度
其实是因为缺少SSL代理的原因哈,我们继续操作,打开电脑上Charles
2.3 配置SSL代理
首先在charles的 Proxy选项选择SSL Proxy Settings
然后在弹出的对话框中点击add,添加需要监视的域名。域名支持 *号通配符,如:抓取所有的https请求,可以填写 *:443
2.4 手机安装证书
以IOS为例,在Safri上打开Charles的根证书下载网址:chls.pro/ssl 。
接下来,在设置->通用->VPN与设备管理 选择刚才的证书进行安装。
然后,在设置->通用->关于本机->证书信任设置 (这一步很重要) 刚刚安装的证书的开关打开信任就可以抓取加密包了。
欧克!让我们再来看一看抓到了什么东西!
look,我们看到了什么,这不是通关的接口吗?让我们直接选中接口然后点击右键
让我们来具体分析一下这个接口,距离成功已经仅剩一小步了。激动的手忍不住颤抖,晚上终于不用挨揍了。。😭
!@#!@¥#% 分析中。。。。
这个接口是get请求,那它的参数都暴露出来了啊,让我们看看他的请求路径:
https://cat-match.easygame2021.com/sheep/v1/game/game_over?rank_score=1&rank_state=2&rank_time=25&rank_role=1&skin=1
emm 。。。我觉得晚上好好吃一顿吧,能抗揍!
开个玩笑,这些参数看着就rank_state这个比较靠谱那我们修改一下它的值,别人都是1,凭什么你是2!!!
调用一下,等下等下,header里面的差点忘了,让我看看,哦吼,发现了什么
t和content-type,这次让我们再来调用一下!哦吼!成功了!让我们来看看小程序的通关记录
欧凯!通关了!通关了!敲锣打鼓告知同事们!晚上不用挨揍了。。
结果。。。你皮肤那?为啥没有?搞不出来皮肤照样揍你!。。。
等等。。。我这个皮肤为啥没有搞出来?难道是我少调用了接口?刚才太着急了?让我们再次分析分析。这个接口通关后就没有调其他接口了啊?
# 3. 黑科技:Map Local
经过反反复复的查看,没找到皮肤的接口,古人云,世上无难事只怕肯放弃。来吧,我抗揍。大义凌然的去挨揍的路上突然想到为啥不能走正常流程修改接口返回值那?再让我们分析分析。。。
每次进游戏的时候总是调用了2次接口,让我看看看它的返回值。
嗯~ 这个就是地图文件了,那么80001里面的返回这么少,90016的返回这么多,盲猜一下,这个就是第一关和第二关的地图文件了吧。让我们开启海克斯黑科技。替换接口返回值!!!
Charles修改返回值有多种方法,今天我们先介绍第一种方法:
1、 map Local 将匹配的url映射到本地文件。这个需要首先将url右键,save Response,将原有报文保存到本地,然后修改接口映射到该文件即可。也可以自己创建文件映射
选中最后一行 Map Local,然后选中80001的接口返回值
欧克 ,让我们再来一次。
我们重新发起游戏,因为修改接口后再次调用接口页面才会重新渲染,再来一次,欧凯!第二个变得像第一关一样easy啊!!!皮肤触手可得啊!!!朋友们!晚上不用挨揍了啊!!!
就当我想再次兴高采烈的奔向我可爱(暴力)的同事们时,我冷静了下来,毕竟以我这么严谨的性格,肯定还要再多检查几遍的。绝不是因为怕挨揍。然后我们简单测试看一下,纳尼?我不就是把小程序删除重新进,我的皮肤为啥子没了?难道?它的资源都缓存在客户端!oh no!我说为啥没看到请求的接口资源那!
时间紧迫让我们再来一次之前的操作,重新加入羊群,当上CEO,重振羊风!!
现实再次当头一棒,加入羊村后当天就不能再次加入了啊?天要亡我?距离下班还有1小时?我抬头看了看时间,稳住,不能慌,大不了就是挨一顿打。
几分钟后。。
咋办?咋办?要挨揍吗?一点思索一边狂点游戏入口,哎~?为啥没有调接口那?我有个大胆的猜测?莫非!为了减少后端交互?所以在客户端做了限制?本着大胆猜想,小心求证的想法,我修改了本地时间!!!哈哈哈,果然,天才的点子得到了验证,居然绕过了倒计时的限制,可以重新进入。
经过我多次重复操作后,终于,我得到了已下的皮肤。。。
老泪纵横,终于不用挨揍了。。。
学好数理化。走遍天下都不怕。
所以,我为什么要推荐他们玩这个游戏那。。。。。