首页 / 安卓 / 安卓逆向,阻止app对root权限的检测
安卓逆向,阻止app对root权限的检测
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了安卓逆向,阻止app对root权限的检测,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1759字,纯文字阅读大概需要3分钟。
内容图文
![安卓逆向,阻止app对root权限的检测](/upload/InfoBanner/zyjiaocheng/1073/f5b6f0e9660e44bfa9c9960d3e0b2bd7.jpg)
我的CSDN地址:https://blog.csdn.net/zenglintao/article/details/106029499
一、smali基本语法
本次实战需要用到smali语言的知识,下面讲一下smali语言的基本语法吧
.field private isFlag:z 定义变量
.method 方法
.parameter 方法参数
.prologue 方法开始
.line 12 此方法位于第12行
invoke-super 调用父函数
const/high16 v0, 0x7fo3 把0x7fo3赋值给v0
invoke-direct 调用函数
return-void 函数返回void
.end method 函数结束
new-instance 创建实例
iput-object 对象赋值
iget-object 调用对象
invoke-static 调用静态函数
条件跳转分支:
"if-eq vA, vB, :cond_" 如果vA等于vB则跳转到:cond_
"if-ne vA, vB, :cond_" 如果vA不等于vB则跳转到:cond_
"if-lt vA, vB, :cond_" 如果vA小于vB则跳转到:cond_
"if-ge vA, vB, :cond_" 如果vA大于等于vB则跳转到:cond_
"if-gt vA, vB, :cond_" 如果vA大于vB则跳转到:cond_
"if-le vA, vB, :cond_" 如果vA小于等于vB则跳转到:cond_
"if-eqz vA, :cond_" 如果vA等于0则跳转到:cond_
"if-nez vA, :cond_" 如果vA不等于0则跳转到:cond_
"if-ltz vA, :cond_" 如果vA小于0则跳转到:cond_
"if-gez vA, :cond_" 如果vA大于等于0则跳转到:cond_
"if-gtz vA, :cond_" 如果vA大于0则跳转到:cond_
"if-lez vA, :cond_" 如果vA小于等于0则跳转到:cond_
二、root检测分析
app检测root无非就以下几种方式
1.检测系统版本是否为开发版
2.检测手机上是否安装了root管理器(Magisk,supersu,superuser等)
3.检测手机上是否安装了需要root的软件(xposed,luck patcher等)
4.检测手机是否存在二进制su文件
5.检测手机是否存在busybox
三、实战开始
本次实战就用手机端的MT管理器,用apktool的话感觉有点大材小用了
实战对象是某公司的金融类app
![技术分享图片](https://raw.githubusercontent.com/Lintao-Zeng/Myblog-Images/master/img/3B9D312B89F8F6EFF5E180DC41A7E575.jpg)
首先打开app会发现无法使用,因为手机已经被root了
然后我们进行第一步修改,查找root工具的包名
![技术分享图片](https://raw.githubusercontent.com/Lintao-Zeng/Myblog-Images/master/img/EE5AB4BA062A9FCC8FEB3BA2FF676B40.jpg)
我的手机是使用magisk管理root的,所以我就直接搜索magisk
![技术分享图片](https://raw.githubusercontent.com/Lintao-Zeng/Myblog-Images/master/img/F76D467D6BCA4E936FB781B9CA0403C0.jpg)
通过查找找到了一个有很多包名的类,可以看出这是一个用来保存字符串变量的类
![技术分享图片](https://raw.githubusercontent.com/Lintao-Zeng/Myblog-Images/master/img/1CB1E3722D304FF0117FE898FB37A890.jpg)
将里面的包名全部替换掉,随便替换成什么字符串都行,目的就是让它不能匹配
然后还要替换里面的路径,路径不能随便替换,不然会导致应用无法打开的
我是用的root管理工具是magisk,magisk会在你的手机根目录创建一个名为sbin的文件夹
里面存放着su和busybox,所以我只要替换掉sbin这个文件夹就可以了
替换掉之后就保存编译
![技术分享图片](https://raw.githubusercontent.com/Lintao-Zeng/Myblog-Images/master/img/87666925F8AB4095CF614440182E6D5C.jpg)
再次运行错误代码变成了R008
使用R008继续查找dex文件
![技术分享图片](https://raw.githubusercontent.com/Lintao-Zeng/Myblog-Images/master/img/736E0EBD3CBAA756265BF9D97CC20CA6.jpg)
然后找到了错误码所在的类
这条语句是一个Lambda表达式,写成java就是bVar.f() ? "R008"
就是说当bVar.f()是真的时候就显示R008
我查了一下,这个bVar是b类new的一个对象,而这个b类是在com.scottyab.rootbeer.b这个包下面
我打开了这个包下面的b类,找到 f 方法,发现这里是执行了su命令以及which命令,于是我把这两条命令也替换了,再次保存编译。
![技术分享图片](https://raw.githubusercontent.com/Lintao-Zeng/Myblog-Images/master/img/CDF7479C9B575C1CE1C4DA74567002DA.jpg)
最后打开app查看结果
![技术分享图片](https://raw.githubusercontent.com/Lintao-Zeng/Myblog-Images/master/img/233A6E1EFB5030492BF7868729908CDA.jpg)
完美解决root手机不能使用的问题
原文:https://www.cnblogs.com/zenglintao/p/12861113.html
内容总结
以上是互联网集市为您收集整理的安卓逆向,阻止app对root权限的检测全部内容,希望文章能够帮你解决安卓逆向,阻止app对root权限的检测所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。