目标是看一下欣赏按钮的限制怎么突破一下,不然每天仅能点几个欣赏。首先将apk拖入到jadx中,未发现有壳(能找到具体逻辑代码),但发现大量0oO混淆的混淆代码根据字符串搜索(今日次数已用完,欣赏,follow,like等)找到了一个核心的代码,之前但用Objection Hook一下这个类再点欣赏按钮发现这个类并没有被触发。也检查了jadx是否反混淆了类名,还是不行。
之后用了某大佬的EncryptStack插件打印了一下加密库调用的信息,从打印的堆栈信息中搜索关键词,找到了一些可能是欣赏按钮被点击的时候会调用的方法。
在jadx中搜索这个方法发现反编译之后没有内容(我也不太清楚为啥)。感觉像是很重要的代码。用Objection hook了一下这个方法之后发现点欣赏按钮会被调用,再用frida脚本打印了一下它的参数和返回值结果为:(第三行为点击欣赏的结果,其他为跳过按钮的结果)参数有eventv3感觉像是发送了某个事件。然后搜索了一下这个 match_admire 字符串。发现只有两处调用了这个方法,第一个就是上面hook过的那个没有被调用,无效的类,所以点开第二个
然后用objection hook了一下看看是否被调用,发现点欣赏按钮的时候调用了它和它的一些重载方法,看了一眼它的重载方法,在重载方法中看到一些重要逻辑代码。感觉这个应该就是欣赏限制的逻辑。点开第一个条件
看到里面都是一些vip判断的信息,vip剩余时间之类的。应该是从接口返回的这个用户是否是vip之类的,提供给程序判断用户身份。那岂不是可以修改参数,伪装成vip,这样应该就可以无限点击欣赏了。
用frida hook这个方法,看参数和返回值所以修改了一下参数vip剩余天数之类的
因为类型转化暂时不太熟悉,所以看一下这个参数实体类JsonData中有没有构造方法之类的,重新new一个JsonData。找到了其中有一个create方法参数是Object,以及其中调用的init方法会判断参数类型之前hook看到的类型是JSONObject,原生的。所以构建了一个JSONObject在主动调用JsonData的create方法生成参数,再回传
果然替换过之后,绝大部分vip的功能都可以用了,个别的还有问题,别人看到你还是个普通用户。。
第一次分析app,完成后有点激动哈哈哈,记录一下过程。。。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
gwljt 需要挂着frida 才能去除 vip 限制吗?如何不使用 firda 搞呢
mb_undcejfq 赞,楼主有遇到过百度加固吗?frida附加不上去.想请教一下