那我们来看一下 LEB 这次更新是通过什么手段来实现的不 ROOT 也可以卸载系统应用的。
新版 LEB 如果要解锁应用卸载的话,需要开启主动防御。主动防御有两种方式,免ROOT启动和ROOT授权启动。ROOT授权启动这里就不提了。我们来说一下免ROOT启动。
如图,点击免ROOT启动,会提示先修复 MaterKey 漏洞。
我们点击获取系统补丁。会下载一个安装包并且进入安装模式。
使用过 Android 手机的同学这时候应该会注意到什么。没错,这是更新。而不是重新安装。有同学就问了,我之前没有安装过一个叫做 “LBE Master Key漏洞补丁” 的东西啊,怎么会是更新呢?没错,这就是 LBE 利用 Master Key 漏洞 实现的更新系统应用。安装之后就会重启,重启之后就可以开启安全防御了。这时候什么卸载系统应用,权限管理等操作都可以实现。这些我们不关心。我们去看看 “LBE Master Key漏洞补丁”这货到底是个什么。为什么安装了它就可以实现 免ROOT 模式。我们去系统设置,应用里面找到它。如图。
事实再一次证明我们是正确的。有一个卸载更新的按钮,这个时候应该一部分同学知道了。只有更新的系统应用才会有卸载更新,否则只有卸载。那我们来卸载更新来看看它到底替换了哪个应用。卸载之后露出了真身。如图
Icon 和 VersionName 都没换,只是加了自己的代码。换了 APP 的名字。
所以,LEB 的 免 ROOT 的实现原理就是,通过利用 Master Key 漏洞替换系统本身应用而实现加载自己的代码。这个时候自己的代码拥有最高权限。便可以实现卸载系统应用,权限管理等操作。
我们再说一下为什么 LBE 要替换 Settings Storage 这个应用。简单的说 Settings Storage 是一个 Android 内部程序,在 Android 开机时就会加载,这也是 LBE 要在开机时把自己的代码 HOOK 到系统上的必要条件。
那为什么 LBE 可以替换系统内部应用呢。其实就是利用了 Master Key 漏洞。在不修改 APP 签名的同时可以修改 APP 的代码。LBE 拿到 Settings Storage 这个 APP。反编译,修改代码,重新打包。就可轻易实现了。而关于 Master Key 漏洞,下面的 Android 的源码应该可以说明了。这里就不详解。
再说一下,这个漏洞真的很危险么?其实只要你做到不允许安装来自 Google Play 以外其他来源的应用。这个漏洞根本影响不到你 的。实际上 Google 在 8 月已经向各大手机厂商提交了该漏洞的补丁,并且对 Google Play 上的应用做了关于该漏洞的扫描。而且 Google Play 不允许提交同系统包名一样的 APP。也就不会存在替换系统应用的现象。
转载请注明:jinglingshu的博客 » LBE 安全大师 V5.1 公测版不 root 也能卸载预装软件,是何原理?