公开/公告号CN112463128A
专利类型发明专利
公开/公告日2021-03-09
原文格式PDF
申请/专利权人 北京指掌易科技有限公司;
申请/专利号CN202011461451.7
申请日2020-12-08
分类号G06F8/20(20180101);G06F9/455(20060101);
代理机构11371 北京超凡志成知识产权代理事务所(普通合伙);
代理人李强
地址 100000 北京市海淀区东北旺西路8号中关村软件园8号楼三层309
入库时间 2023-06-19 10:08:35
技术领域
本发明涉及软件工具包行为控制技术领域,尤其是涉及一种软件开发工具包行为控制方法及装置。
背景技术
随着移动互联网技术的快速发展,越来越多的企业及移动开发者在开发应用产品时,都会集成第三方SDK(Software Development Kit,软件开发工具包),以方便其开发或者提升应用产品的功能体验。
然而,随之而来的问题是第三方SDK会带来了不可控的安全问题,比如SDK是否会访问非法网络地址,SDK是否会访问通讯录、媒体库等用户隐私数据从而造成用户隐私数据被窃取,因此,集成SDK的应用产品存在信息安全风险,不利于应用产品的销售及推广。
发明内容
有鉴于此,本发明的目的在于提供一种软件开发工具包行为控制方法及装置,以改善上述技术问题。
第一方面,本发明实施例提供了一种软件开发工具包行为控制方法,所述方法包括以下步骤:
建立虚拟接口与钩子函数的对应关系,其中,所述虚拟接口为安全虚拟接口或不安全虚拟接口;
检测是否存在目标软件开发工具包调用到所述虚拟接口中的目标虚拟接口;
如果是,则通过对应的目标钩子函数确定所述目标虚拟接口是否安全;
如果是,则通过所述目标软件开发工具包继续调用到系统服务器接口。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,应用包含原始应用线程和所述目标软件开发工具包线程,其中所述目标软件开发工具包线程标记有线程ID;
在所述检测是否存在目标软件开发工具包调用到所述虚拟接口中的目标虚拟接口的步骤之前,包括:
检测线程是否标记有线程ID;
如果是,则所述线程为目标软件开发工具包对应的目标软件开发工具包线程,其中,每个目标软件开发工具包线程中包含一个目标软件开发工具包。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,在所述如果是,则通过对应的目标钩子函数确定所述目标虚拟接口是否安全的步骤之前,所述方法还包括:
控制所述目标软件开发工具包向所述目标虚拟接口发送接口调用请求。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述建立虚拟接口与钩子函数的对应关系的步骤,包括:
通过动态代理方式建立虚拟接口与钩子函数的对应关系。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述虚拟接口为应用程序编程接口。
第二方面,本发明实施例还提供一种软件开发工具包行为控制装置,所述装置包括:
关系建立模块,用于建立虚拟接口与钩子函数的对应关系,其中,所述虚拟接口为安全虚拟接口或不安全虚拟接口;
接口调用模块,用于检测是否存在目标软件开发工具包调用到所述虚拟接口中的目标虚拟接口;
第一确定模块,用于如果是,则通过对应的目标钩子函数确定所述目标虚拟接口是否安全;
继续调用模块,用于如果是,则通过所述目标软件开发工具包继续调用到系统服务器接口。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,应用包含原始应用线程和所述目标软件开发工具包线程,其中所述目标软件开发工具包线程标记有线程ID;
在所述接口调用模块之前,所述装置还包括:
检测模块,用于检测线程是否标记有线程ID;
第二确定模块,用于如果是,则所述线程为目标软件开发工具包对应的目标软件开发工具包线程,其中,每个目标软件开发工具包线程中包含一个目标软件开发工具包。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,在所第一确定模块之前,所述装置还包括:
控制模块,用于控制所述目标软件开发工具包向所述目标虚拟接口发送接口调用请求。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述关系建立模块用于:
通过动态代理方式建立虚拟接口与钩子函数的对应关系。
结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述虚拟接口为应用程序编程接口。
本发明实施例带来了以下有益效果:本发明实施例提供的一种软件开发工具包行为控制方法及装置,首先建立虚拟接口与钩子函数的对应关系;然后检测是否存在目标软件开发工具包调用到虚拟接口中的目标虚拟接口;并且然后如果是,则通过对应的目标钩子函数确定目标虚拟接口是否安全;最后如果是,则通过目标软件开发工具包继续调用到系统服务器接口。本发明实施例的软件开发工具包行为控制方法及装置通过对软件开发工具包的虚拟接口调用过程进行监测管理,达到了使软件开发工具包安全接入系统服务器接口的技术效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构中实现和获得。
为使本发明的上述目的、特征和优点能够更加明显易懂,下文特举优选实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明的具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图进行简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种软件开发工具包行为控制方法的流程图;
图2为本发明实施例提供的另一种软件开发工具包行为控制方法的流程图;
图3本发明实施例提供的一种软件开发工具包行为控制装置的结构框图;
图4为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着移动互联网技术的快速发展,越来越多的企业及移动开发者在开发应用产品时,都会集成第三方SDK,以方便其开发或者提升应用产品的功能体验。然而,随之而来的问题是第三方SDK会带来了不可控的安全问题,比如SDK是否会访问非法网络地址,SDK是否会访问通讯录、媒体库等用户隐私数据从而造成用户隐私数据被窃取,因此,集成SDK的应用产品存在信息安全风险,不利于应用产品的销售及推广。基于此,本发明实施例提供了一种软件开发工具包行为控制方法及装置,以缓解上述问题。
为了便于对本实施例进行理解,首先对本发明实施例所公开的一种软件开发工具包行为控制方法进行详细介绍。
在一种可能的实施方式中,本发明提供了一种软件开发工具包行为控制方法。如图1所示为本发明实施例提供的一种软件开发工具包行为控制方法的流程图,该方法包括以下步骤:
步骤S102:建立虚拟接口与钩子函数的对应关系。
其中,所述虚拟接口为安全虚拟接口或不安全虚拟接口。
步骤S104:检测是否存在目标软件开发工具包调用到所述虚拟接口中的目标虚拟接口。
步骤S106:如果是,则通过对应的目标钩子函数确定所述目标虚拟接口是否安全。
进一步地,如果否,则无需对调用该目标虚拟接口的过程进行监控管理。
步骤S108:如果是,则通过所述目标软件开发工具包继续调用到系统服务器接口。
进一步地,如果否,则不允许通过目标软件开发工具包继续调用到系统服务器接口。
需要进一步说明的是,系统服务器接口在功能运行初期便被替换为虚拟接口,因此,当目标软件开发工具包调用到虚拟接口时,通过对应的目标钩子函数确定目标虚拟接口是否安全,并在确定目标虚拟接口安全时通过目标软件开发工具包继续调用到系统服务器接口,也就是说,该虚拟接口为最终系统服务器接口之前使用的媒介接口。
本发明实施例带来了以下有益效果:本发明实施例通过一种软件开发工具包行为控制方法,首先建立虚拟接口与钩子函数的对应关系;然后检测是否存在目标软件开发工具包调用到虚拟接口中的目标虚拟接口;并且然后如果是,则通过对应的目标钩子函数确定目标虚拟接口是否安全;最后如果是,则通过目标软件开发工具包继续调用到系统服务器接口。本发明实施例的软件开发工具包行为控制方法及装置通过对软件开发工具包的虚拟接口调用过程进行监测管理,达到了使软件开发工具包安全接入系统服务器接口的技术效果。
在实际使用时,为了对本发明的过程进行更加详细的描述,本发明实施例在图2中示出了本发明实施例提供的另一种软件开发工具包行为控制方法的流程图,该方法包括以下步骤:
步骤S202:通过动态代理方式建立虚拟接口与钩子函数的对应关系。
其中,所述虚拟接口为安全虚拟接口或不安全虚拟接口。同时,该虚拟接口为应用程序编程接口。
需要进一步说明的是,该动态代理方式为Java编程中的一种常见对应关系建立方式。
另外,由于每个应用中均包含一个或多个原始应用线程和一个或多个目标软件开发工具包线程,而只有目标软件开发工具包线程调用到虚拟接口的过程需要进行监控,而原始应用线程调用到虚拟接口的过程则无需监控,因此,通过对应用中包含的目标软件开发工具包线程标记线程ID来将其与原始应用线程区分开来,大大提高了对目标软件开发工具包线程调用到虚拟接口的过程的监控效率。
因此,具体地,应用包含原始应用线程和所述目标软件开发工具包线程,其中所述目标软件开发工具包线程标记有线程ID;
在所述检测是否存在目标软件开发工具包调用到所述虚拟接口中的目标虚拟接口的步骤之前,所述方法还包括:
检测线程是否标记有线程ID;
如果是,则所述线程为目标软件开发工具包对应的目标软件开发工具包线程,其中,每个目标软件开发工具包线程中包含一个目标软件开发工具包。
步骤S204:检测是否存在目标软件开发工具包调用到所述虚拟接口中的目标虚拟接口。
步骤S206:控制所述目标软件开发工具包向所述目标虚拟接口发送接口调用请求。
步骤S208:如果是,则通过对应的目标钩子函数确定所述目标虚拟接口是否安全。
进一步地,如果否,则无需对调用该目标虚拟接口的过程进行监控管理。
步骤S210:如果是,则通过所述目标软件开发工具包继续调用到系统服务器接口。
进一步地,如果否,则不允许通过目标软件开发工具包继续调用到系统服务器接口。
此外,本发明的软件开发工具包行为控制方法也可应用于多线程形式中对软件开发工具包的调用过程进行控制管理。其中,在多线程形式中,每个进程中均包括原始应用线程与软件开发工具包线程,能够通过先后顺序开关来选择是否开启访问控制功能而允许其先后进行系统接口调用操作。
综上所述,本发明的软件开发工具包行为控制方法及装置,首先建立虚拟接口与钩子函数的对应关系;然后检测是否存在目标软件开发工具包调用到虚拟接口中的目标虚拟接口;并且然后如果是,则通过对应的目标钩子函数确定目标虚拟接口是否安全;最后如果是,则通过目标软件开发工具包继续调用到系统服务器接口。本发明实施例的软件开发工具包行为控制方法及装置通过对软件开发工具包的虚拟接口调用过程进行监测管理,达到了使软件开发工具包安全接入系统服务器接口的技术效果。
在另一种可能的实施方式中,对应于上述实施方式提供的软件开发工具包行为控制方法,本发明实施例还提供了一种软件开发工具包行为控制装置,图3本发明实施例提供的一种软件开发工具包行为控制装置的结构框图。如图3所示,该装置包括:
关系建立模块301,用于建立虚拟接口与钩子函数的对应关系,其中,所述虚拟接口为安全虚拟接口或不安全虚拟接口;
接口调用模块302,用于检测是否存在目标软件开发工具包调用到所述虚拟接口中的目标虚拟接口;
第一确定模块303,用于如果是,则通过对应的目标钩子函数确定所述目标虚拟接口是否安全;
继续调用模块304,用于如果是,则通过所述目标软件开发工具包继续调用到系统服务器接口。
在实际使用时,为了对本发明的装置进行更加详细的描述,本发明实施例在图4中示出了本发明实施例提供的另一种软件开发工具包行为控制装置的结构框图,其中,该软件开发工具包行为控制装置还包括检测模块401和控制模块402。
具体地,在实际使用时,应用包含原始应用线程和所述目标软件开发工具包线程,其中所述目标软件开发工具包线程标记有线程ID;
在所述接口调用模块302之前,所述装置还包括:
检测模块401,用于检测线程是否标记有线程ID;
第二确定模块,用于如果是,则所述线程为目标软件开发工具包对应的目标软件开发工具包线程,其中,每个目标软件开发工具包线程中包含一个目标软件开发工具包。
在实际使用时,在所第一确定模块303之前,所述装置还包括:
控制模块402,用于控制所述目标软件开发工具包向所述目标虚拟接口发送接口调用请求。
在实际使用时,所述关系建立模块301用于:
通过动态代理方式建立虚拟接口与钩子函数的对应关系。
在实际使用时,所述虚拟接口为应用程序编程接口。
本发明实施例提供的软件开发工具包行为控制装置,与上述实施例提供的软件开发工具包行为控制方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例所提供的软件开发工具包行为控制方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,ReaD-Only Memory)、随机存取存储器(RAM,RanDom Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
机译: 用于提供软件开发工具包的系统和方法,该软件开发工具包用于配置动作人偶或动作人偶配件的虚拟对应物
机译: 软件开发预处理方法,软件控制方法,软件开发方法和软件开发装置
机译: 软件开发预处理方法,软件控制方法,软件开发方法和软件开发装置