admin管理员组文章数量:1537955
2024年5月24日发(作者:)
Android 应用多开对抗实践
白天午睡梦到些以前给某行业安全峰会写了材料,醒来后把记得的部分重新整理一下,分享出来给大
家,尽量写得简洁明了。
未必准确,仅供参考,欢迎纠正补充
Android 应用多开对抗实践
应用多开技术总结
系统级技术
用户级技术
拆招
反系统级应用多开
简单粗暴的代码
验证
可改进
反用户级应用多开
仍然是简单粗暴的代码
验证
威力加强版
对用户级应用多开的理解
业务前端白名单
后记
应用多开技术总结
系统级技术
多开技术方案
Android 多用户
功能
chroot
/
lxc
发行版 APP
OEM系统自带的"手机分身"、"应用双开",和 "Island/炼妖壶" 等各种
"Android for work" 产品
暂无发现 APP
多用户功能
多用户模式主要用到
UserManager
相关类,切换不同的用户,在不同的用户下运行 App,实现
多开。最直观的例子是 Android 手机上的
多用户
功能,
手机分身
功能,以及
am switch-user
命令,这种简单粗暴的用法会将 Android 服务都运行一份,如果只用于应用多开,且不说资源消
耗,切换用户是在麻烦。
在 Android 5.0 在基于多用户功能 添加了
Android for work
功能,可以在同一个桌面启动器下
使用受限用户启动 APP,不再需要切换界面。同时将权限开发给了非系统应用。
chroot
UNIX 的 chroot 系统调用在 Android 上也能用,需要 root 权限。在本地挂载运行精简版系统镜
像,使用远程桌面软件如 VNC 等访问本地多开的系统。尚未发现发行版 APP,可能在 ARM 服务
器云手机中用到。
用户级技术
多开技术方案
VirtualApp
MultiDroid
DroidPlugin
Excelliance
其它
发行版 APP
VirtualXposed, DualSpace
LBE平行空间, Parallel Space
分身大师
双开助手, MultiAccount
虚拟大师
在用户级的多开技术中,还可以在按设计用途划分出三类
“容器”:VirtualApp、MultiDroid
热更新/插件化:DroidPlugin、Excelliance
虚拟系统:虚拟大师
具体实现原理大家可以翻论坛里的 精品贴,这里不多描述。
值得一提的是,某云手机团队的 "虚拟大师" 产品,实现在用户态运行了一个精简版的 Android 系统镜
像,在系统库中拦截了几乎所有系统调用,使用类似前文提到的
chroot
挂载系统镜像的方法运行,有
兴趣的同学可以看一看。
拆招
反系统级应用多开
仅多用户方案的多开,忽略
chroot
/
lxc
简单粗暴的代码
// --- C++ ---
#include
bool isDualApp(){return 0 != getuid()/100000;}
// --- Java ---
import s;
static boolean isDualApp(){return 0 != () / 100000;}
一行代码完事了?
完事了,真的完事了。
但是为什么?
Android 系统中,如果开启了多用户模式,会存在一个主用户和若干受限用户。
把 MIUI 的 "手机分身" 和 "应用双开" 功能都打开,可以看到有三用户,0、11 和 999,分别对应
主用户、"手机分身" 和 "应用双开"
版权声明:本文标题:Android 应用多开对抗实践 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1716481158a505175.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论