[color=]MIUI版本为:12.5.1
[color=]手机管家版本为:8.7.8-240124.0.1
昨天在手机上更新软件时,发现会跳转到安装未知应用检测
bbd578b760c7913dccb924d6fd149cf.jpg (95.93 KB, 下载次数: 0)
下载附件
2024-10-19 17:25 上传
由于我的这部手机仅作于测试机,并没有进行插卡和登录小米账号的原因,系统会提示我登录小米账号和插卡,登录小米账号还勉强可以,但是要插卡的话可就太烦人了,而且我也想起了在开发者模式打开USB安装和USB调试(安全设置)也需要这个步骤,我觉得我还是需要想方法解决一下这个问题。
[color=]下面是逆向步骤:
首先通过Activity记录查看具体调用链:
5b767e955ac2a140862e90e530eb414.jpg (82.34 KB, 下载次数: 0)
下载附件
2024-10-19 17:26 上传
发现是由手机管家拉起了登录小米账号服务,找到了对应的软件,我们直接打开算法助手进行hook,选中如图所示的两个选项即可:
ad8128170193d889d3ef5e9951255d0.jpg (138.95 KB, 下载次数: 0)
下载附件
2024-10-19 17:31 上传
然后在应用设置里结束手机管家的运行,接着再去点击允许安装未知应用,等到"请先登录小米账号"的弹窗出来后,去算法助手里查看对应的日志,在日志栏中搜索"小米",可以发现有这么一条toast记录,我们打开它,查看它的堆栈信息:
1ed4d6bb81b3eb21ec3504efce194a5.jpg (79.2 KB, 下载次数: 0)
下载附件
2024-10-19 18:58 上传
0f9e1c043a480bdfbe4dfa064cf4bdb.jpg (286.98 KB, 下载次数: 0)
下载附件
2024-10-19 19:04 上传
通过堆栈信息可以了解到,调用这个toast的方法为com.miui.permcenter.install.AdbInstallVerifyActivity.onCreate,很好,接着我们直接提取安装包,打开jadx看看反编译代码:
oncreat.png (124.41 KB, 下载次数: 0)
下载附件
2024-10-19 17:48 上传
j.a.png (49.06 KB, 下载次数: 0)
下载附件
2024-10-19 17:51 上传
找到了可以进行hook的函数后,我们打开算法助手进行hook:
a22df113997752941689c4624238fa6.jpg (126.21 KB, 下载次数: 0)
下载附件
2024-10-19 19:06 上传
开启hook后,我们再次结束手机管家进程,接着再去点击允许安装未知应用,发现它这次不会再进入到登录页面,而是弹出"请先插入SIM卡"的弹窗,说明判断登录的情况已经被我们干掉了,现在需要处理的是判断SIM卡的情况,很好,我们接着往下跟:
注意到,在onCreate函数中,如果成功进入到if语句,那么则会跳转到l0函数:
l0.png (35.48 KB, 下载次数: 0)
下载附件
2024-10-19 18:02 上传
j0.png (85.31 KB, 下载次数: 0)
下载附件
2024-10-19 19:21 上传
看到b类里面只有两个函数,直接丢到gpt让他去判断吧:
gpt.png (85.32 KB, 下载次数: 0)
下载附件
2024-10-19 18:19 上传
onPostExecute.png (43.59 KB, 下载次数: 0)
下载附件
2024-10-19 18:48 上传
通过gpt分析这段代码的作用,我们直接拦截doInBackground函数就行,因为拦截会直接返回null,那么onPostExecute接收到的就是null
继续用算法助手添加hook:
66738bc3c58ff1fff26a2fcfd9dd697.jpg (126.25 KB, 下载次数: 0)
下载附件
2024-10-19 19:07 上传
开启完毕,去测试看看吧:
f6cb678bca0b83bd2c1bef2fc1aba1f.jpg (100.42 KB, 下载次数: 0)
下载附件
2024-10-19 19:07 上传
经测试,开发者模式打开USB安装和USB调试(安全设置)也可以绕过,其余设置需自测