导语
学了一段时间的XPosed,发现XPosed真的好强,只要技术强,什么操作都能实现...
这次主要记录一下我对这款应用的逆向思路
apk检查
-
使用MT管理器检查apk的加壳情况
-
发现是某数字的免费版本
-
直接使用frida-dexdump
-
脱下来后备用
应用分析
- 进入应用之后会发现里边含有
登录
会员
等模块 - 我们先不管登录的部分,先检查
会员
的使用场景,一般在会员
的使用场景或者显示场景中都会有检查是否是VIP
的业务逻辑,根据这个来加载显示不同的资源
会员
分析
-
通过对应用的检查发现在添加虚拟机设备的时候用到了
会员
权限 -
同时弹出一个对话框,应用也贴心的告诉我们
VIP
的使用场景 -
打开算法助手,算法助手对应用进行了常见功能的Hook,最重要的是支持免费加固的Hook
-
将这3项勾选
-
重复1、2步,在日志中检查OnClick和弹窗是否有用的信息
-
很幸运,在这一步就获取有关的逻辑
-
且函数名称并没有被混淆,能够从调用堆栈读出以下逻辑:点击下载按钮->检查是否VIP->用户没有登录->显示购买VIP的弹窗
-
打开jadx将脱壳后的dex文件载入,搜索
checkVip
-
选择第一个函数,发现无有用信息,继续进入
checkVip
函数 -
在此函数中发现getUserConf,即获取用户的配置
-
通过对此函数的阅读,得出此函数的返回值为
UserBean
-
然后检查
UserBean
-
很明显,有关VIP的数据都在此,使用XPosed来修改这些成员变量,即可达到对显示UI的修改,即使服务器对这些数据有校验也不影响,至少在UI层面已经成功了
抓包分析
-
使用抓包工具检查网络请求,当点击底部的导航栏的时候,应用会发送网络请求