CN114995955B - 一种Android插件化虚拟化Binder Hook方法 - Google Patents

一种Android插件化虚拟化Binder Hook方法 Download PDF

Info

Publication number
CN114995955B
CN114995955B CN202210683840.7A CN202210683840A CN114995955B CN 114995955 B CN114995955 B CN 114995955B CN 202210683840 A CN202210683840 A CN 202210683840A CN 114995955 B CN114995955 B CN 114995955B
Authority
CN
China
Prior art keywords
plug
virtual
service
data
system services
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210683840.7A
Other languages
English (en)
Other versions
CN114995955A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Qianyue Technology Co ltd
Original Assignee
Guangzhou Qianyue Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Qianyue Technology Co ltd filed Critical Guangzhou Qianyue Technology Co ltd
Priority to CN202210683840.7A priority Critical patent/CN114995955B/zh
Publication of CN114995955A publication Critical patent/CN114995955A/zh
Application granted granted Critical
Publication of CN114995955B publication Critical patent/CN114995955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种Android插件化虚拟化Binder Hook方法,包括:启动插件之前,获取ServiceManager中所有系统服务;将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;在虚拟客户端基于虚拟系统服务初始化ServiceManager;启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。插件端任何运行环境未遭到破坏,ServiceManager中无法进行分辨或检测是否被修改,可达到最大化的兼容性与反检测性。

Description

一种Android插件化虚拟化Binder Hook方法
技术领域
本发明涉及Android系统技术领域,具体涉及一种Android插件化虚拟化BinderHook方法。
背景技术
Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService(用户交互操作管理),ClipboardManager(剪切板管理),AudioManager(手机音频管理)等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。
在虚拟化领域内,作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,框架需要对系统提供的Binder机制进行Hook,从而进行实现对插件的管理。
例如:插件内需要判断手机剪切板内是否有内容,为了保护隐私,我们需要在拦截android.content.IClipboard中的hasPrimaryClip方法,进行强制返回没有内容,这样一来就可以避免用户隐私信息被泄漏的风险。
现有方案实施流程如下:
1.在启动插件之前,需要获取ServiceManager中sCache的所有系统服务。
2.将系统服务进行“代理”操作,代理的作用等同于拦截并且发送。
3.启动插件,在插件使用系统服务时能够被“代理”拦截,实现相关虚拟化功能。
现有方案存在的弊端如下:
1.从上述技术分析,我们所有操作都在插件内进行“代理”与入侵,如果插件对ServiceManager的sCache中进行检测,那么可以检测出并非真实的系统代理,而是被Hook(入侵/修改)过的。2.从上述技术分析,插件可以利用Java语言中的反射技术,是可以通过拿到原始的系统服务直接与系统交互,绕过“代理”,可能导致用户隐私被窃取。
发明内容
本发明提供一种Android插件化虚拟化Binder Hook方法,以解决现有技术中存在的上述问题。
本发明提供一种Android插件化虚拟化Binder Hook方法,包括:
S100,启动插件之前,获取ServiceManager中所有系统服务;
S200,将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;
S300,在虚拟客户端基于虚拟系统服务初始化ServiceManager;
S400,启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。
优选的,所述S200包括:
S201,将所有系统服务通过IPC机制发送至虚拟服务端;
S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
优选的,所述S300包括:
S301,在虚拟客户端基于虚拟系统服务模拟Android系统服务行为;
S302,将ServiceManager中的sCache对应的系统服务替换,初始化ServiceManager。
优选的,所述S400中虚拟服务端处理相应的请求,包括:
S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
优选的,所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
优选的,所述虚拟客户端为插件端,插件端ServiceManager中的sCache对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互。
优选的,还包括:
对Android系统的隐私泄露进行动态检测;
获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
优选的,所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
优选的,所述匹配算法包括:
从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
优选的,将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
将记录的数据通过树形数据结构对用户的行为进行存储;
当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
当再次发生相同调用时,通过查询得到历史数据引导用户操作。
与现有技术相比,本发明具有以下优点:
本发明提供一种Android插件化虚拟化Binder Hook方法,包括:启动插件之前,获取ServiceManager中所有系统服务;将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;在虚拟客户端基于虚拟系统服务初始化ServiceManager;启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。插件端任何运行环境未遭到破坏,ServiceManager中无法进行分辨或检测是否被修改,可达到最大化的兼容性与反检测性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种Android插件化虚拟化Binder Hook方法的流程图;
图2为本发明实施例中生成虚拟系统服务的方法流程图;
图3为本发明实施例中初始化ServiceManager的方法流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提供了一种Android插件化虚拟化Binder Hook方法,请参照图1,该方法包括以下几个步骤:
S100,启动插件之前,获取ServiceManager中所有系统服务;
S200,将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;
S300,在虚拟客户端基于虚拟系统服务初始化ServiceManager;
S400,启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。
上述技术方案的工作原理为:本实施例采用的方案是S100,启动插件之前,获取ServiceManager中所有系统服务;
S200,将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;
S300,在虚拟客户端基于虚拟系统服务初始化ServiceManager;
S400,启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求。
具体的,通过设置虚拟系统服务,让插件在使用远程系统服务时,将虚拟系统服务充当远程系统服务,通过虚拟系统的方式完全实现一套服务,这样一来就不存在所谓的代理。
由于设置的虚拟系统服务需要面对海量的机型与系统,不可能硬编码所有成千上万的系统的服务方法,这是不现实并且是不可靠的。本实施例的方案根据每一个手机,使用动态生成技术,为每一台手机量身定做所需的系统服务类。
例如:在“服务端”中初始化这个动态生成的IClipboard服务,将通过IPC跨进程的方式传递到“客户端”,将“客户端”ServiceManager中的sCache对应的系统服务替换。这样一来,我们完全模拟了系统初始化ServiceManager的逻辑,不需要任何的“代理”。
具体实现步骤:
1.在启动插件之前,需要获取ServiceManager中sCache的所有系统服务。
2.将所有系统服务通过IPC机制发送到“服务端”。
3.服务端通过代码生成技术,生成继承系统服务XXXXX$Stub的代码,例:android.app.IActivityManager$Stub等,生成“虚拟系统服务”。
4.通过IPC机制将“虚拟系统服务”发送回“客户端”。
5.“客户端”通过“服务端”返回的“虚拟系统服务”,模拟Android系行为,重新初始化ServiceManager,将其服务替换。
6.启动插件,在插件使用系统服务时,数据将通过“虚拟系统服务”发送至“服务端”,由“服务端”处理实现相关虚拟化功能。如果不处理,则转发到真实系统,完成一整套服务。
上述技术方案的有益效果为:采用本实施例提供的方案可产生如下效果:
1.根据上述原理,本方案的核心思想是完全模拟了真实系统是如何初始化插件的ServiceManager,使虚拟系统与真实系统的行为是一样的。虚拟系统进程与真实系统进程,在插件眼里其实是一样的。只是一个android.os.BinderProxy对象。所以插件并不知道这个服务是真实系统进程的还是虚拟系统进程的。
2.根据上述原理,插件无法正常直接获取到原始Binder,无法与系统服务直接交互,所有交互均被管控,不存在隐私泄漏问题。
3.根据上述原理,插件端任何运行环境未遭到破坏,ServiceManager中进行分辨或检测是否被修改,可达到最大化的兼容性与反检测性。
在另一实施例中,如图2所示,所述S200包括:
S201,将所有系统服务通过IPC机制发送至虚拟服务端;
S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
上述技术方案的工作原理为:本实施例采用的方案是所述S200包括:
S201,将所有系统服务通过IPC机制发送至虚拟服务端;
S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
上述技术方案的有益效果为:采用本实施例提供的方案所述S200包括:
S201,将所有系统服务通过IPC机制发送至虚拟服务端;
S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
在另一实施例中,如图3所示,所述S300包括:
S301,在虚拟客户端基于虚拟系统服务模拟Android系统服务行为;
S302,将ServiceManager中的sCache对应的系统服务替换,初始化ServiceManager。
上述技术方案的工作原理为:本实施例采用的方案是所述S300包括:
S301,在虚拟客户端基于虚拟系统服务模拟Android系统服务行为;
S302,将ServiceManager中的sCache对应的系统服务替换,初始化ServiceManager。
上述技术方案的有益效果为:采用本实施例提供的方案所述S300包括:
S301,在虚拟客户端基于虚拟系统服务模拟Android系统服务行为;
S302,将ServiceManager中的sCache对应的系统服务替换,初始化ServiceManager。
在另一实施例中,所述S400中虚拟服务端处理相应的请求,包括:
S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
上述技术方案的工作原理为:本实施例采用的方案是所述S400中虚拟服务端处理相应的请求,包括:
S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
上述技术方案的有益效果为:采用本实施例提供的方案所述S400中虚拟服务端处理相应的请求,包括:
S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
在另一实施例中,所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
上述技术方案的工作原理为:所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
上述技术方案的有益效果为:采用本实施例提供的方案所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
在另一实施例中,所述虚拟客户端为插件端,插件端ServiceManager中的sCache对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互。
上述技术方案的工作原理为:本实施例采用的方案是所述虚拟客户端为插件端,插件端ServiceManager中的sCache对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互。
上述技术方案的有益效果为:采用本实施例提供的方案所述虚拟客户端为插件端,插件端ServiceManager中的sCache对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互。
另外,本实施例的优点如下:
1.通过代码生成技术,动态生成继承系统服务XXXXX$Stub的代码服务端代码,例:android.app.IActivityManager$Stub等。
2.通过传递虚拟进程服务中的服务端Binder,替换插件端ServiceManager,插件端请求数据由“服务端”处理或代转发至真实系统。
3.形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
在另一实施例中,还包括:
对Android系统的隐私泄露进行动态检测;
获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
上述技术方案的工作原理为:本实施例采用的方案是还包括:
对Android系统的隐私泄露进行动态检测;
获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
上述技术方案的有益效果为:采用本实施例提供的方案还包括:
对Android系统的隐私泄露进行动态检测;
获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
在另一实施例中,所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
上述技术方案的工作原理为:本实施例采用的方案是所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
上述技术方案的有益效果为:采用本实施例提供的方案所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
具体的,相似度计算公式如下:
Figure BDA0003697292800000101
Figure BDA0003697292800000102
其中,S为相似度,fi为第i个动态执行上下文信息,i=1,2…n,n为函数调用栈中函数的个数,nj为第j个调用路径,j=1,2…m,m为调用路径中函数的个数,F(fi,nj)为fi和nj的分段函数,用于标识动态执行上下文信息和调用路径之间是否相等,若相等该函数为1,不相等该函数为0。
使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
在另一实施例中,所述匹配算法包括:
从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
上述技术方案的工作原理为:本实施例采用的方案是所述匹配算法包括:
从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
上述技术方案的有益效果为:采用本实施例提供的方案所述匹配算法包括:
从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
在另一实施例中,对插件端的操作进行引导操作,具体的:
将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
将记录的数据通过树形数据结构对用户的行为进行存储;
当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
当再次发生相同调用时,通过查询得到历史数据引导用户操作。
上述技术方案的技术原理为:将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
将记录的数据通过树形数据结构对用户的行为进行存储;
当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
当再次发生相同调用时,通过查询得到历史数据引导用户操作。
上述技术方案的有益效果为:将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
将记录的数据通过树形数据结构对用户的行为进行存储;
当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
当再次发生相同调用时,通过查询得到历史数据引导用户操作。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (7)

1.一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,包括:
S100,启动插件之前,获取ServiceManager中所有系统服务;
S200,将所有系统服务发送至虚拟服务端,虚拟服务端生成虚拟系统服务,将虚拟系统服务返回至虚拟客户端;
S300,在虚拟客户端基于虚拟系统服务初始化 ServiceManager;
S400,启动插件,在插件使用真实系统服务时,请求数据通过所述虚拟系统服务发送至虚拟服务端,由虚拟服务端处理相应的请求;
所述S300包括:
S301,在虚拟客户端基于虚拟系统服务模拟Android 系统服务行为;
S302,将ServiceManager 中的 sCache 对应的系统服务替换,初始化ServiceManager;
所述虚拟客户端为插件端,插件端ServiceManager 中的 sCache 对应的系统服务被替换,插件无法正常直接获取到原始Binder,当虚拟客户端处理插件端的请求时,插件的运行与真实系统服务之间不能进行交互;
还包括:
对Android系统的隐私泄露进行动态检测;
获取某一隐私相关api的动态执行上下文信息,该信息表明api函数是由哪些函数调用或触发的;
通过匹配算法预测在实时api调用过程中发生的隐私泄露行为。
2.根据权利要求1所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述S200包括:
S201,将所有系统服务通过IPC机制发送至虚拟服务端;
S202,虚拟服务端通过代码生成技术,生成继承系统服务的代码,形成虚拟系统服务;
S203,形成虚拟系统服务后经过IPC机制发送回插件,使用IPC机制,将真实Binder变成android.os.BinderProxy,隐藏真实Binder身份。
3.根据权利要求1所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述S400中虚拟服务端处理相应的请求,包括:
S401,虚拟服务端处理相应的请求或数据,实现虚拟化功能;
S402,当虚拟服务端不处理相应的请求或数据时,将数据或请求转入至真实系统服务,基于真实系统服务返回相应的指令或数据。
4.根据权利要求2所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述继承系统服务包括以下一系列的若干个系统服务中的一个或者多个:用户交互操作管理服务、剪切板管理服务、通知管理服务、手机音频管理服务和Package的管理服务。
5.根据权利要求1所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述通过匹配算法预测在实时api调用过程中发生的隐私泄露行为,包括:
若存在某一api动态执行上下文信息与静态软件函数调用图中的一条调用路径,则计算两者之间的相似度;
相似度计算通过求和的方式统计出相同的函数在函数栈中所占的比例;
使用匹配算法找到与该api函数调用最接近的上下文信息,并使用信息预测此次api调用发生的隐私泄露的几率。
6.根据权利要求5所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,所述匹配算法包括:
从函数栈中取出具有相同函数名称的隐私相关api上下文信息;
通过相似性计算公式计算上下文信息与函数栈的相似性,基于相似性计算结果确定最相似的上下文以预测发生的隐私泄露。
7.根据权利要求5所述的一种 Android 插件化虚拟化 Binder Hook 方法,其特征在于,将每次实时api调用的动态执行上下文信息与用户的授权选择进行记录,记录的数据包括:软件包名、软件的动态执行情况和用户的选择;
将记录的数据通过树形数据结构对用户的行为进行存储;
当调用某一接口或数据时存在获取隐私数据操作行为,且对获取隐私数据操作执行了三次拒绝操作时,将调用及拒绝操作同步反馈给上下文匹配模块;
当再次发生相同调用时,通过查询得到历史数据引导用户操作。
CN202210683840.7A 2022-06-16 2022-06-16 一种Android插件化虚拟化Binder Hook方法 Active CN114995955B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210683840.7A CN114995955B (zh) 2022-06-16 2022-06-16 一种Android插件化虚拟化Binder Hook方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210683840.7A CN114995955B (zh) 2022-06-16 2022-06-16 一种Android插件化虚拟化Binder Hook方法

Publications (2)

Publication Number Publication Date
CN114995955A CN114995955A (zh) 2022-09-02
CN114995955B true CN114995955B (zh) 2023-03-21

Family

ID=83035356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210683840.7A Active CN114995955B (zh) 2022-06-16 2022-06-16 一种Android插件化虚拟化Binder Hook方法

Country Status (1)

Country Link
CN (1) CN114995955B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017063512A1 (zh) * 2015-10-15 2017-04-20 成都电科致远网络科技有限公司 应用于虚拟化桌面场景的存储服务平台及其实现方法
CN109241731A (zh) * 2018-09-11 2019-01-18 厦门市美亚柏科信息股份有限公司 一种基于虚拟应用的隐私信息保护方法、装置及存储介质
CN113329130A (zh) * 2021-06-15 2021-08-31 上海云鱼智能科技有限公司 基于互联网的伪虚拟电话号码使用方法、装置及服务器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009329B2 (en) * 2008-11-25 2015-04-14 Microsoft Technology Licensing, Llc Platform for enabling terminal services virtualization
CN103593225B (zh) * 2013-10-30 2016-10-05 浙江大学 移动虚拟化场景中多Android系统复用Binder IPC机制的方法
CN105808320B (zh) * 2016-03-11 2018-12-04 四川安嵌科技有限公司 基于Linux容器的设备虚拟化系统及方法
US10339039B2 (en) * 2017-01-25 2019-07-02 Ca, Inc. Virtual service interface

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017063512A1 (zh) * 2015-10-15 2017-04-20 成都电科致远网络科技有限公司 应用于虚拟化桌面场景的存储服务平台及其实现方法
CN109241731A (zh) * 2018-09-11 2019-01-18 厦门市美亚柏科信息股份有限公司 一种基于虚拟应用的隐私信息保护方法、装置及存储介质
CN113329130A (zh) * 2021-06-15 2021-08-31 上海云鱼智能科技有限公司 基于互联网的伪虚拟电话号码使用方法、装置及服务器

Also Published As

Publication number Publication date
CN114995955A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
CN108737325B (zh) 一种多租户数据隔离方法、装置及系统
US8099472B2 (en) System and method for a mobile cross-platform software system
US7877091B2 (en) Method and system for executing a container managed application on a processing device
US11556348B2 (en) Bootstrapping profile-guided compilation and verification
US11188667B2 (en) Monitoring and preventing unauthorized data access
US20180115613A1 (en) Providing access to a smartcard within a remote session
US9665465B1 (en) Automated determination of application permissions
US9990214B2 (en) Dynamic agent delivery
CN113553204B (zh) 一种数据传输方法及装置
US10628591B2 (en) Method for fast and efficient discovery of data assets
US11481508B2 (en) Data access monitoring and control
US10536559B2 (en) Blocking an interface of a redirected USB composite device
US10587652B2 (en) Generating false data for suspicious users
WO2021189257A1 (zh) 恶意进程的检测方法、装置、电子设备及存储介质
CN111881470B (zh) 数据访问方法及其装置、计算机可读存储介质
CN115859274B (zh) 一种监控Windows进程清空系统事件日志行为的方法及系统
CN115934404A (zh) 应用程序的异常处理方法及设备
US11151273B2 (en) Controlling installation of unauthorized drivers on a computer system
CN114995955B (zh) 一种Android插件化虚拟化Binder Hook方法
CN116028917A (zh) 权限检测方法及装置、存储介质及电子设备
JP5828457B2 (ja) Api実行制御装置およびプログラム
CN101336429B (zh) 处理脚本内容的外部配置方法和系统
CN112470443B (zh) 将复位向的生物辨识装置隔离到远程会话
US11790082B2 (en) Reasoning based workflow management
US10104099B2 (en) System and method for monitoring a computer system using machine interpretable code

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant