VAEXposed和我们之前介绍的容器类似,使用VirtualApp实现Xposed框架的功能。下面我将带大家认识VirtualApp技术与VAExposed。
VirtualApp介绍
VirtualApp是一个App虚拟化引擎(简称VA)。
VirtualApp可以在App内创建一个虚拟空间,你可以在虚拟空间内任意的安装、启动和卸载APK,这一切都与外部隔离,如同一个沙盒。
运行在VA中的APK无需在外部安装,即VA支持免安装运行APK。
VA目前被广泛应用于应用双开/多开、应用市场、模拟定位、修改机型、隐私保护、游戏修改、自动化测试、无感知热更新等技术领域。
(VA项目地址: https://github.com/asLody/VirtualApp )
VirtualApp原理
Android应用启动Activity时,无论通过何种API调用,最终会调用ActivityManager.startActivity()方法。该调用为远程Binder服务(加速该调用,Android应用会先在本地进程查找Binder服务缓存,如果找到,则直接调用。VA介入了该调用过程,通过以下方式:
替换本地的ActivityManagerServise Binder服务为VA构造的代理对象,以接管该调用。这一步通过反射实现。
接管后,当调用startActivity启动多开应用时,VA修改Intent中的Activity为VA中己声明的占位Activity。这一步的目的是绕过Android无法启动未在AndroidManifest.xml中声明Activity的限制。
在被多开应用进程启动后,增加ActivityThread.mH.mCallback的消息处理回调。这一步接管了多开应用主线程的消息回调。
在以上修改的基础上,多开应用的Activity启动过程可分为以下两步骤:
Intent发送
mCallback从Intent中恢复Acitivty信息
AMS:Android系统的ActivityManagerService,是管理Activity的系统服务
VAMS:VA用于管理多开应用Activity的服务,大量API名称与AMS雷同。
VApp:被多开应用所在的进程,该进程实际为VA派生的进程。
由图可知,VA在AMS和VApp中通过增加VAMS对启动Intent进行了修改,实现了对Android系统的欺骗,而当应用进程启动后,还原Activity信息。通过自定义Classloader令使得Android加载并构造了未在VA的AndroidManifest.xml中声明的Activity。
以上是启动过程的简化描述,实际上,VA对大量Android 系统API进行了Hook,这使得运行在其中的应用在VA的控制下,为VA的应用带来可能性。
Sp简单说VA
应用安装在VA的存储空间内,运行在VA进程里,因此VA可以不需要Root权限读取、修改应用的存储空间,还可以在应用的Application类创建时执行代码,实现Hook操作。之前我们介绍的容器App就是通过这个原理实现免Root对手机型号的修改。
关于VAExposed
有人把Xposed框架与VA结合,写了一个双开环境下的Xposed兼容层:Exposed(项目地址 : https://github.com/android-hacker/exposed );
同时,修改了 VirtualApp 的部分实现,使得它能够在进程的启动的时候加载 Exposed 这个兼容层,实现了在VA中使用Xposed插件的功能。
(VAExposed项目地址: https://github.com/android-hacker/VAExposed )
目前该项目只有他的作者weishu一个人维护,存在很多兼容性问题,而且由于VA使用的是的商业授权模式,发布到市场必须通过VA的作者授权,因此VAEXposed普及起来还需要一段时间,我们拭目以待吧。
(VAEXposed下载地址在Sp软件服务公众号内发送 823 获取)
VAEXposed使用方式非常简单,下载安装VAExposed,然后在里面安装你想用的Xposed模块,就可以使用了。你也可以把Xposed Installer安装在里面用来管理模块。需要注意的是模块只对安装在VAEXposed里面的应用生效。
此外,360公司开发的分身大师也将支持Xposed模块,目前处于内测阶段,支持的模块不多,广告倒是很多,如果VAEXposed用不了的可以试试。使用方法和VAEXposed一样。
(360分身大师Xposed版下载地址在Sp软件服务公众号内发送 360 获取)
结语
VA的强大让我们享受便利的同时也带来了一系列的安全隐患,比如第三方可以轻松获得安装在VA内应用的隐私数据,包括但不限于密码、与服务器的数据通信、照片等。
因此我们在使用这类带有双开功能的应用时一定要注意其是否是正规公司出品的软件,从官方或者可信渠道下载,并做好安全防范措施。
Sp软件服务 · 2017
暂无评论内容