Android 虚拟多开系列二——技术原理 - Binary-Stream - 博客园

来源: Android 虚拟多开系列二——技术原理 – Binary-Stream – 博客园

目录
        Android虚拟多开应用有哪些?
        Android虚拟多开应用技术原理有哪几类?
        Android虚拟多开需求分析
        反虚拟多开技术
正文
一、Android虚拟多开应用列表
应用名称 版本号 开源 公司名称 下载链接
太极 维术(个人) 微信公众号:虚拟框架
VirtualApp 2017.12月停止开源更新 罗盒科技 VirtualApp
LBE平行空间 LBE LBE平行空间
360分身大师 360 360分身大师
DroidPlugin 360 DroidPlugin
小米应用分身 小米 小米手机
双开助手 卓盟 双开助手
360奇酷手机 360 360奇酷手机
克隆大师 未知 克隆大师(项目已停)
二、Android虚拟多开应用技术原理
        Android应用分身的实现和解析
        1)修改APK(例:克隆大师)
        2)修改Framework(Android多用户机制。例:小米应用分身、360奇酷手机、等)
        3)通过虚拟化技术实现(例:360分身大师、LBE平行空间)
        4)以插件机制运行(例:DroidPlugin)
      A. 原理简述:
         现在市场上常见的虚拟多开应用主要是基于虚拟化技术实现,而虚拟化技术主要通过 Hook 技术实现,因此我们主要考察 Hook 技术。
         Hook技术的分类,在非虫写的《Android软件安全权威指南》第十章有详细描述,推荐。现总结如下:
         按 Java 层 与 Native 层分类, Hook 技术可以分为 Java 层的 Hook 与 Native 层的 Hook。根据代码的运行环境,Java层的 Hook 可以分为 Dalvik Hook 与 ART Hook。根据 ELF 文件的特点,Native层的 Hook 可以分为基于动态库加载劫持的 LD_PRELOAD Hook、针对 .got.plt 节区的 GOT Hook 及针对汇编指令级别的 Inline Hook。
         Hook技术主要分为五类:
                 a. Dalvik Hook;
                 b. ART Hook;
                 c. LOAD_PRELAD Hook;
                 d. GOT Hook;
                 e. Inline Hook;
         已有的Hook框架:
                 a. Xposed(支持Java层的 Dalvik Hook 和 ART Hook,但不支持 Native 层的 Hook)
                 b. legend(支持Java层的 Dalvik Hook 和 ART Hook)
                 e. epic
                 c. whale(跨平台的Hook框架,支持Java层的 Dalvik Hook 和 ART Hook)
         VirtualApp 采用了 Hook技术实现了在Android平台上的沙盒环境(容器),达到可以完全控制 其内运行的App的目的。
     B. 实践
         笔者主要看了 weishu 和  lody 对该技术的研究以及实现,因此主要讲这两位开发者对该问题的研究和实现。
             1) weishu的主要产品是 taichi,其产品发展图如下所示:
            2)lody主要产品是 VirtualApp,非常优秀的一款软件,weishu的 VirtualXpose 也是基于 VirtualApp 来实现的。
                 分析该软件原理的文章非常之多,也很专业,笔者在这里仅列出两篇实践应用的文章,用以实现 基于VirtualApp来hook其他第三方应用。
                 另:笔者通过借鉴以上两篇文章实现了 基于 VirtualApp 并结合 whale hook框架 来hook其他第三方应用的目的,在之后的文章将详述实现过程。感谢。
三、Android虚拟多开需求分析
       多账号同时运行;
   运营工具;
四、反虚拟多开技术
       VirtualApp技术黑产利用报告
       VirtualApp使恶意应用具有免杀能力;
       VirtualApp给检测引擎识别恶意应用带来难度,因为其母包没有恶意应用,但可动态加载子包。
       相应的解决方案文中有详细描述。
赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏