darbra
雪 币: 280
活跃值: (109)
能力值:
( LV2,RANK:10 )
在线值:
不久之前打击了两个糟粕:
糟粕一:frida破解某视频app的vip
糟粕二:frida破解某视频app的vip No.2
今天打击另一个糟粕。
此app的绝大部分界面还是依然不适合展示。
看了三个视频,就提示“暂无观看次数,立即充值”。
第一个截图是每天初始化的时候
第二个截图是已用完的时候
第三个截图是用完后的用户界面
我们发现所有请求的body和返回的body都是加了密的。
请求如下图所示:
response如下图所示:
以丰富的经验,全局搜索了AES,并定位到了某方法,hook之。
在搜索栏中进行了关键词“学习”的搜索,丰满的body数据刹那间映入眼帘,我们可以看到有“学习”字样的几条结果:
hook代码如下所示:
Java.perform(function() { var crutial_util = Java.use('com.****.lib.encrypt.b'); crutial_util.a.overload('java.lang.String', 'java.lang.String').implementation = function (x, y) { var ret = this.a(x, y); console.log('a_ret', ret); return ret; }; });
每每请求一个视频的时候,会抓到一个api/MvDetail/detail的请求,我们先解密response的body。
请求如下图所示:
解密后的数据如下图所示:
在json里有几个字段发人深省,isVip、daily_view、isfree以及coins。
我们进行了这些值的篡改,老板,再来一箱营养快线!
Java.perform(function() { var crutial_util = Java.use('com.****.lib.encrypt.b'); crutial_util.a.overload('java.lang.String', 'java.lang.String').implementation = function (x, y) { var ret = this.a(x, y); var final = ret.replace('"daily_view":0', '"daily_view":2').replace('"isVip":false', '"isVip":true').replace(/"isfree":0/g, '"isfree":1').replace(/"coins":\d/g, '"coins":0'); return final; }; });
好了,也是几行代码。
这个app涉及到了数据body的加解密,总体上来说也是不难的。
这次的操作基本不会对其他用户造成困扰,只会对自己的精神状态产生影响。
放了一些app的某些重要参数的逆向思路,https://github.com/darbra/sign,供交流学习,如能给您带来帮助,不胜欣喜。