一种基于沙箱捕获Android应用交互行为的方法技术

技术编号:33389605 阅读:24 留言:0更新日期:2022-05-11 23:05
本发明专利技术是一种基于沙箱捕获Android应用交互行为的方法,该方法通过虚拟一个system_process进程并实现自定义的虚拟服务,通过在沙箱中预置对使用权限和http访问url的hook点,捕获Android APP应用在行为交互过程中的栈信息。本发明专利技术能够发现该次交互的代码层调用与处理逻辑,在解决交互上的问题,能够直观提供问题所在根源。供问题所在根源。供问题所在根源。

【技术实现步骤摘要】
一种基于沙箱捕获Android应用交互行为的方法


[0001]本专利技术属于通讯的
,特别涉及一种基于基于沙箱捕获Android应用交互行为的方法。

技术介绍

[0002]随着移动网络的快速发展,越来越多的行业将业务系统引入到移动互联网终端,基于移动终端设备的内存、CPU等资源快速的提升,越发庞大的业务量使得应用程序得以在移动终端上运行。
[0003]如苹果的IOS系统、Android系统都可以兼容很多应用软件,在这些应用软件的应用中,存在着很多信息交互的行为,这些交互行为是通过网络交换数据包的形式来实现的。
[0004]如专利申请202011223889.1公开的一种实现智能交互大屏快速开机的方法,所述智能交互大屏具有Android操作系统和Windows操作系统,方法包括:智能交互大屏上电并按下开机键后,启动引导加载程序;引导加载程序启动完成后,启动实时操作系统,实时操作系启动完成后,同时启动系统框架开机视频和Windows操作系统;取消桌面应用的启动,系统框架、开机视频和Windows操作系统启动完成后,启动教学播放器,教学播放器启动完成后,智能交互大屏完成开机。本专利技术缩短了智能交互大屏的开机时间。
[0005]又如专利申请202110611495.1公开了一种用于Android系统的多蓝牙交互方法及系统,通过在Android原生的蓝牙Bluetooth apk的基础上,增加一个扩展蓝牙服务BluetoothExt apk;在Android原生FW接口android.bluetooth的基础上,增加一个扩展接口包bluetoothext,进而将蓝牙通信的AIDL服务接口扩展为Ext类型的接口文件,通过扩展的Bluetooth Manager ServiceExt来启动扩展蓝牙进程bluetoothext的服务的方式,在原生拦他模块的基础上新增扩展蓝牙模块,从而满足多蓝牙模块同时交互的需求,由于兼容的设计,也进一步提升了开发效率,节约了开发成本。
[0006]然而,目前对Android APP应用分析它在交互行为内容,基本是通过网络抓包的方式捕获交互行为信息。通过抓包也只能看到Android APP应用交互的表面内容(例如:url请求链接、请求参数、响应参数、以及交互明文数据),并不能更加深层次的发现该次交互的代码层调用与处理逻辑。在解决交互上的问题,不能直观提供问题所在根源,也不能侧面的证明问题。

技术实现思路

[0007]为解决上述问题,本专利技术的首要目的在于提供一种基于沙箱捕获Android应用交互行为的方法,该方法能够发现该次交互的代码层调用与处理逻辑,在解决交互上的问题,能够直观提供问题所在根源。
[0008]本专利技术的另一目的在于提供一种基于沙箱捕获Android应用交互行为的方法,该方法利用沙箱技术,通过hook、反射、代理技术将系统服务代理替换为自定义的系统服务代理,:pn进程的目标应用hook所有的系统服务代理,应用进程与:x进程的虚拟服务进行通
信。
[0009]申请人发现:所有Android APP应用都是运行在Framework层上,它实际是Android的一个核心进程system server(system_process),启动system server会启动一系列的核心服务,如ams,wms,pms等。
[0010]利用沙箱技术,改变Android APP应用与Android OS之间的交互方式,将Android APP应用运行沙箱中,实现的就是虚拟一个system_process进程并实现自定义的虚拟服务,可以通过在沙箱中预置对使用权限和http访问url的hook点,捕获Android APP应用在行为交互过程中的栈信息。
[0011]为实现上述目的,本专利技术的技术方案如下。
[0012]一种基于沙箱捕获Android应用交互行为的方法,该方法通过虚拟一个system_process进程并实现自定义的虚拟服务,然后通过在沙箱中预置对使用权限和http访问url的hook点,捕获Android APP应用在行为交互过程中的栈信息。
[0013]所述方法首先设置VA Main及VA:x,其中:
[0014]VA Main:即virtual APP的主程序;
[0015]VA:x:virutal APP体系中虚拟服务对象的提供者;
[0016]而Virtual APP在启动plugin时,获得virtual service代理对象;并通过Virtaul:x这个进程与Android系统Service对象发生沟通。
[0017]进一步,在VA:x进程中,在源码中加入两个功能模块用于实现以下功能:
[0018]i.APP应用权限申请操作的日志;
[0019]ii.APP应用http访问url的日志。
[0020]更进一步,为了保证VA:x核心功能和业务功能的松耦合:
[0021]i.VA:x通过hook点收集权限申请和http访问url交互栈信息数据,通过本地格式化文件和外部的APP进行数据交互;
[0022]ii.service priority hooker模块和http hooker模块向关键的virtual service对象中添加hook,在关键函数被调用时,添加的hook函数首先被调用,此时获取调用行为交互栈信息;
[0023]iii.格式化消息写入消息队列,由MSG Writer线程将消息输出sqlite。
[0024]进一步,具体流程为:
[0025]步骤一,VA:Main程序启动,启动时会主动调起VA:x进程。VA:x进程启动,Android沙箱环境就就绪了。
[0026]步骤二,上传Android APP应用进行行为信息捕获,通过VA:Main启动Android APP应用进程,进行APP的各种操作,存在于VA:x中的权限和url模块就会输出日志;
[0027]步骤三,启动VA:x进程,启动时会读入该进程中的权限和url检测的模块配置文件,以便系统功能可以正常运行;
[0028]步骤四,创建的Vritual Service对象,启动plugin,通过VA:x创建的Vritual Service对象和Android OS进行交互。
[0029]步骤五、共享文件,在Android APP应用运行过程中,VA:x会产生消息缓存文件,使用sqlite做进程间的数据库共享。
[0030]本专利技术的有益效果在于:
[0031]利用沙箱技术,通过hook、反射、代理技术将系统服务代理替换为自定义的系统服务代理,:pn进程的目标应用hook所有的系统服务代理,应用进程与:x进程的虚拟服务进行通信。
附图说明
[0032]图1是本专利技术所实现的总体框图。
[0033]图2是本专利技术所实现的总体流程图。
[0034]图3是本专利技术所实现的总体线程模型图。...

【技术保护点】

【技术特征摘要】
1.一种基于沙箱捕获Android应用交互行为的方法,其特征在于该方法通过虚拟一个system_process进程并实现自定义的虚拟服务,然后通过在沙箱中预置对使用权限和http访问url的hook点,捕获Android APP应用在行为交互过程中的栈信息。2.如权利要求1所述的基于沙箱捕获Android应用交互行为的方法,其特征在于所述方法首先设置VA Main及VA:x,其中:VA Main:即virtual APP的主程序;VA:x:virutal APP体系中虚拟服务对象的提供者;而Virtual APP在启动plugin时,获得virtual service代理对象;并通过Virtaul:x这个进程与Android系统Service对象发生沟通。3.如权利要求2所述的基于沙箱捕获Android应用交互行为的方法,其特征在于在VA:x进程中,在源码中加入两个功能模块用于实现以下功能:i.APP应用权限申请操作的日志;ii.APP应用http访问url的日志。4.如权利要求3所述的基于沙箱捕获Android应用交互行为的方法,其特征在于为了保证VA:x核心功能和业务功能的松耦合:i.VA:x通过hook点收集权限申请和http访问url交互栈信息数据,...

【专利技术属性】
技术研发人员:魏永红张志邓凌峰
申请(专利权)人:北京中科世盈科技有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1