运算环境安全方法和电子运算系统的制作方法

文档序号:6498780阅读:125来源:国知局
运算环境安全方法和电子运算系统的制作方法
【专利摘要】运算环境安全方法和电子运算系统。该运算环境安全方法包括:(a)解开待测的应用程序包以取得至少一数据组,其中各该至少一数据组是为应用程序包的多个方面中的相关的内容。(b)依据该至少一数据组,估计待测的应用程序包是否重新包装程序。(b)包括以下:(c)对于各该至少一数据组,分析该数据组的对应的方面的相关的内容的特征关系,并据以产生该数据组对应的特征数据。(d)依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定是否为重新包装的应用程序包。
【专利说明】运算环境安全方法和电子运算系统
【技术领域】
[0001]本公开涉及一种运算环境安全方法和电子运算系统。
【背景技术】
[0002]在智能手机上,软件安全的防护除了应用传统个人计算机上的机制外,因为有集中的软件市集例如安卓(Android)平台的“Google Play”,因此在智能手机上的应用软件,都会利用程序代码签章(Code Signing)的机制来做安全防护。在智能手机上执行的软件,需要有签章过才能执行,如此可以确保应用软件没被修改,也可证明此软件的开发者有经过软件市集的验证。另外智能手机上的软件并不像个人计算机可以自由取得安装和散布,软件的安装过程和安装后都有保护,无法任意复制并传播出去。
[0003]虽然在智能手机上的保护比个人计算机上严谨,但是通过系统漏洞,取得手机root或JB后,破解者就有办法,取得受保护的应用软件。然后,破解者将取得的应用软件加入恶意程序代码并适当修改后,产生新的程序代码签章再重新包装。此种破解应用软件签章,进行修改或加入恶意程序代码再重新包装后散布的动作,称为「重新包装」(Repackage)。此等重新包装的程序被再上架到软件市集,或放到盗版软件网站或论坛上,让不知情的使用者下载安装,而达到恶意程序散布的目的。由于破解者直接修改或植入恶意软件后,再行重签即可,故重新包装的情况在安卓(Android)平台上屡见不鲜。而相关报告指出,2011年下半年,在Google Android平台上的恶意软件,月增长率平均有60%,其中大部分均为重新包装产生至各市集或网络论坛散布,可见在如Android平台的恶意软件防治成为运算环境安全所关注的议题。

【发明内容】

[0004]本公开有关于一种运算环境安全方法和电子运算系统。
[0005]根据一实施例,提出一种运算环境安全方法,包括:(a)通过电子运算系统,解开待测的应用程序包以取得至少一数据组,其中各该至少一数据组是为该应用程序包的多个方面中的相关的内容。(b)依据该至少一数据组,估计该待测的应用程序包是否重新包装程序。(b)包括以下:(C)对于各该至少一数据组,分析该数据组的该对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据。(d)依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包。该电子运算系统依据该决定的结果对该待测的应用程序包进行处理。
[0006]根据一实施例,一种电子运算系统,包括:通信单元以及控制单元。控制单元,通过该通信单元,接收待测的应用程序包,其中该控制单元至少:解开待测的应用程序包以取得至少一数据组,其中该待测的应用程序包包括多个方面相关的内容,各该至少一数据组是为该应用程序包的这些方面中的相关的内容;对于各该至少一数据组,分析该数据组的该对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据;依据该至少一数据组的特征数据及从数据库单元中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包。该电子运算系统依据该决定的结果对该待测的应用程序包进行处理。
[0007]为了对本公开的上述及其他方面有更佳的了解,下文以实施例,并配合附图,作详细说明如下:
【专利附图】

【附图说明】
[0008]图1绘示针对应用程序的上架或安装时实现运算环境安全的机制的示意图。
[0009]图2示意一应用程序具有多个方面相关的内容。
[0010]图3绘示运算环境安全方法的一实施例的流程图。
[0011]图4绘示运算环境安全方法应用于提供软件上架的服务系统上的一实施例的流程图。
[0012]图5绘示运算环境安全方法应用于欲进行软件安装的电子装置的一实施例的流程图。
[0013]图6是为依据运算环境安全方法的一实施例的软件架构的方块图。
[0014]图7绘示实现运算环境安全方法的实施例的一电子运算系统的基本架构的方块图。
[0015]图8是为针对应用程序包中使用者接口方面的相关内容作分析的一实施例的示意图。
[0016]图9是为针对使用者接口方面的相关内容作相似度评估的一实施例的流程图。
[0017]图10是为针对程序运作方面的相关内容作相似度评估的一实施例的流程图。
[0018]图11是为针对程序所使用的资源方面的相关内容作相似度评估的一实施例的流程图。
[0019]图12是为一电子装置及一服务系统上实现运算环境安全方法的实施例的方块图。
[0020]【主要元件符号说明】
[0021]10:服务系统
[0022]11,21:筛选机制
[0023]20:电子装置
[0024]100:运算环境安全系统
[0025]110:前置处理模块
[0026]120:分析模块
[0027]121:使用者接口方面的分析模块
[0028]123:程序运作方面的分析模块
[0029]125:程序使用的资源方面的分析模块
[0030]130:相似度评估模块
[0031]131:使用者接口方面的相似度评估模块
[0032]133:程序运作方面的相似度评估模块
[0033]135:程序使用的资源方面的相似度评估模块[0034]140:决定模块
[0035]150:数据库模块
[0036]200:电子运算系统
[0037]210:控制单元
[0038]220:通信单元
[0039]230:存储单元
[0040]240:显示单元
[0041]300:画面
[0042]400:电子装置
[0043]410、510:通信模块
[0044]500:服务系统
[0045]S10-S35、S110-S137、S210-S237、S310-S330、S410-440、S510-S540:步骤【具体实施方式】
[0046]以下提供有关于一种运算环境安全方法和电子运算系统的实施例。
[0047]图1绘示针对应用程序的上架或安装时实现运算环境安全的机制的示意图。如图1所示,在以服务系统10提供软件下载如应用程序市集的运算环境中,服务系统10如独立服务器或分散式服务系统或云端系统具有筛选机制11,在应用程序未上架前,通过筛选机制11以助决定应用程序(例如应用程序I及2)是否可能为重新包装的应用程序,进而判定应用程序是否为恶意程序如包含恶意代码,从而决定是否拒绝此应用程序上架或允许上架。此外,在取得应用程序下载使用的运算环境中,如应用程序市集或其他网站或来源中可能不具有筛选机制11。为免在不知情下安装了恶意程序的风险,通过在电子装置20上实现筛选机制21,可在应用程序(例如应用程序3)未安装以前,产生如筛选机制11的作用,从而决定是否允许或拒绝安装此应用程序。
[0048]黑客与抄袭软件者,通过破解或修改他人合法软件并重新包装为新的应用程序的方式,统称重新包装方式(repackage),散播恶意软件的与剽窃软件从而获利或达成其他不正当意图。而修改软件的基本作法,就是在原有程序的基础之下,插入具有修改者或黑客目的的程序代码,因此对原始程序的功能或程序代码的删除或修改将会非常的少(一般来说是不会更动)。重新包装方式的情形,例如在Android Market (或称Google Play)上的亦有出现,因为Android Market上的APK采用Safe Sign的机制(即开发者自行签章),可对其他部分进行检验,但实际上并未加密,因此可以轻易的从破解的应用程序包(如APK)中移除其原有的签章(如signed A)并在加入恶意代码后,重新签署一个新的签章(如称为signed B)并因此获得上架许可,因次传播速度非常的快。
[0049]由上可知对于原有程序及重新包装的程序的可能在内容上具有相似性,故筛选机制11或21可据此观点实施以决定应用程序是否可能为重新包装的应用程序。如图2所示,应用程序可视作包括多个方面相关的内容,例如使用者接口方面的相关内容、程序运作方面的相关内容、程序所使用的资源方面的相关内容、或针对其他方面的内容。重新包装的应用程序,在各个方面的相关内容的比较上,将会大于或等于原始程序。
[0050]此外,一般程序间,通常会有一定比例的相似,如某部分程序代码使用相同的应用程序接口(API)、使用者接口布局(UI Layout)等。但若是重新包装的应用程序的特性,通常以于原始程序中新增或插入欲达成其目的的恶意程序代码达成,故其相关程序代表性参数与原始程序间的关系如:
[0051]AppO c AppR (关系式 I),
[0052]即原始程序所涵盖的相关内容(AppO)被重新包装的应用程序的相关内容(AppR)所包含。故筛选机制11或21的一些实施例对于程序各方面相关的内容的比对,可基于此关系从而决定应用程序是否为重新包装。
[0053]图3绘示运算环境安全方法的一实施例的流程图。上述的筛选机制11或21可据图3的实施例实现于电子运算系统(如服务系统或电子装置)中筛选重新包装的应用程序。
[0054]如步骤SlO所示,通过电子运算系统,解开待测的应用程序包(applicationpackage)以取得至少一数据组,其中该待测的应用程序包包括多个方面相关的内容(如图2所示意),各该至少一数据组是为该应用程序包的这些方面中的相关的内容。例如,可实施步骤SlO针对使用者接口方面、程序运作方面和程序所使用的资源方面中至少一、二或三方面的相关内容以得出相对应的至少一数据组,以供步骤S20针对所采用的数据组作为步骤20中作分析之用。又例如,步骤SlO可利用剖析(parsing)的方式,取得采用的数据组。
[0055]如步骤S20所示,依据该至少一数据组,估计该待测的应用程序包是否重新包装程序,步骤S20包括步骤S21、S23。
[0056]如步骤S21所示,对于各该至少一数据组,分析该数据组的该对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据。例如,对于使用者接口方面的相关的内容的数据组而言,针对如使用者接口的布局(user interface layout)的关系或使用者接口中元件的阶层关系(hierarchy)作出分析,并量化这些被分析出来的关系据以产生特征数据如以矩阵或阵列的方式描述,以便于后续的相似度评估步骤S21中使用。有关对应用程序的某方面的相关的内容的数据组的分析处理,将以实施例说明于后。
[0057]如步骤S23所示,依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包。电子运算系统可依据步骤S23的决定的结果对待测的应用程序包进行处理。其中另一实施例,决定该待测的应用程序包是否为重新包装的应用程序包后,输出该决定的结果O
[0058]在步骤S23中,此数据库例如包括多个应用程序包所对应的这些方面相关的特征数据,例如已知的多个应用程序对于前述的使用者接口方面相关的特征数据。在步骤S23中,搜寻结果是从数据库搜寻与待测的应用程序包的某一或多个数据组的特征数据相距对应距离内的数据库中已知应用程序的特征数据,其中对于不同的数据组,可以有不同的对应距离。
[0059]故此,从数据库中取得搜寻结果亦即基于前述关系式1:AppO C AppR的观念,从数据库中找出可能的已知应用程序并假设为原始程序AppO。假设待测的应用程序的某数据组的特征数据以矩阵或向量来表达,例如是Vl=[ml,m2,…,mk],其中ml至mk为数值,k为大于等于I的整数。在此数据库中可以寻找与向量Vl在距离内的向量(可能有一个至多个向量),而寻找到的一或多个向量(可将之视为向量的集合)以Vx代表,可对应到此数据库中一或多个已知的应用程序包(可视为程序包集合)记作Αχ。例如,对某数据组的特征数据,对于向量Vl与数据库中的向量Vk的距离(或差异的大小),可以利用数学上各种向量之间的距离(distance)(如欧几里得距离(Euclidean Distance)及其推广)或相似度(similarity)的定义来加以运算。
[0060]例如,将向量Vl与Vs进行余弦数值的计算相似度(cosine similarity)=(Vl*Vs)/(|Vl|*|Vs|),所计算出的余弦值即为相似度指数a ; a =1时,表示两向量的相似度高(距离最小),a =0时,表示两向量的相似度最小(或视为距离最大或不相关)。故此在一实施例中,可以设对应的距离的范围值,例若向量Vl与Vs的相似度(或距离)于0.9至I之间,即可视为在此对应的距离内,从而在数据库中找出合符此条件的向量Vs (可能有一或多个)以及其对应的应用程序包(可能有一或多个)作为搜寻结果。据此搜寻结果,例如找到的程序包Vx的数量或当中距离最小的结果,决定该待测的应用程序包是否为重新包装的应用程序包。此外,在其他步骤S23实施例中,也可针对待测的应用程序的多个数据组的特征数据,找出搜寻结果,以决定是否为重新包装。
[0061]在其他实施例中,步骤S23也可包括如步骤S33及S35。如步骤S33所示,依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,评估该待测的应用程序包的相似度。而该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度。
[0062]如步骤S35所示,依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包。电子运算系统可依据步骤S35的决定的结果对待测的应用程序包进行处理。其中另一实施例,决定该待测的应用程序包是否为重新包装的应用程序包后,输出该决定的结果。
[0063]例如,图4绘示运算环境安全方法应用于提供软件上架的服务系统上的一实施例的流程图。如步骤SllO所示,响应于软件上架的请求,该服务系统接收该待测的应用程序包。如步骤S120所示,通过该服务系统,进行依据如图3中实施例的筛选方法。如步骤S130所示,依据该决定的结果,如果该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则如步骤S135所示,该服务系统拒绝该上架的请求,使该待测的应用程序包不能上架。如果否,则如步骤S137所示,该服务系统例如使待测的应用程序包上架。
[0064]又如图5绘示运算环境安全方法应用于欲进行软件安装的电子装置的一实施例的流程图。如步骤S210所示,通过电子装置,接收该待测的应用程序包。如步骤S220所示,该电子装置,响应软件安装程序的请求,在欲安装该待测的应用程序包之前,进行依据如图3中实施例的筛选方法。如步骤S230所示,依据该决定的结果,如果该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则如步骤S235所示该电子装置拒绝安装该待测的应用程序包。如果否,则如步骤S237所示,该电子装置例如可安装待测的应用程序包。
[0065]图6是为依据运算环境安全方法的一实施例的软件架构的方块图。运算环境安全系统100包括前置处理模块110、分析模块120、相似度评估模块130、决定模块140以及数据库模块150。前置处理模块110例如实现如图3所示的步骤S10。分析模块120用以实现步骤S21。相似度评估模块130例如用以实现步骤S33。决定模块140例如用以实现步骤S35。数据库模块150例如用以实现步骤S23中所使用的数据库。
[0066]而图6的实例示意分析模块120针对应用程序包的三个方面相关的内容作出分析其中的关系,故相对地前置处理模块110及相似度评估模块130亦作因应的实现。例如前置处理模块110实现剖析方式(parsing)解开应用程序包以取得三个数据组,分别给予分析模块120的三个子模块:使用者接口方面的分析模块121、程序运作方面的分析模块123以及程序使用的资源方面的分析模块125,其中分析模块120中各子模块的执行次序可以是平行方式执行或依各种次序执行。
[0067]又例如相似度评估模块130亦作因应的实现,由三个子模块:使用者接口方面的相似度评估模块131、程序运作方面的相似度评估模块133以及程序使用的资源方面的相似度评估模块135,分别接收来自分析模块120的三个子模块所产生的特征数据。相似度评估模块130的三个子模块分别决定使用者接口方面的相似性元数据、程序运作方面的相似性元数据以及程序使用的资源方面的相似性元数据。而相似度评估模块130基于这些相似性元数据,决定待测的应用程序包的相似度,以让决定模块140据以决定该待测的应用程序包是否为重新包装的应用程序包。其中另一实施例,决定该待测的应用程序包是否为重新包装的应用程序包后,输出该决定的结果。
[0068]此外,在一些实施例中,分析模块120中各子模块也可将所得到的特征数据上传至数据库中进行搜寻;而评估模块130可自数据库模块150取得对应的搜寻结果。
[0069]在其他实施例中,分析模块120也可实施为针对应用程序包的二个方面相关的内容分析其中的关系,例如包括两个子模块:使用者接口方面的分析模块121和程序运作方面的分析模块123。
[0070]图7是为实现运算环境安全方法的实施例的电子运算系统的基本硬件架构的方块图。如图7所示,电子运算系统200,包括控制单元210、通信单元220、存储单元230以及显示单元240。控制单元210可用以实现如图3所的运算环境安全方法的实施例。又一些实施例中,电子运算系统200是为服务系统,可实施为单一的服务器;或由多台服务机台组成的分散式的服务系统,其中的各单元也可以实作为服务器,如存储单元230可视为存储数据库并作为数据库服务器供步骤S23使用。又或服务系统是云端运算系统,其中各单元可为云端中的服务器。又一些实施例中,电子运算系统200可实现电子装置,如智能装置如手机、平板计算机或智能电视或导航装置等具有通信功能的装置,能下载应用程序并安装的功能。例如,电子装置利用通信单元220可接收应用程序包,或通过通信连结(如有线或无线网络连结)从外部的数据库中取得的搜寻结果。此电子运算系统200也可视所要实现的产品的设计需求而加上其他装置。
[0071]此外,如图6所举例的软件架构也可利用图7所示的电子运算系统200实施例,例如控制单元210 (如处理器或多台服务器)实现前置处理模块110、分析模块120、相似度评估模块130、决定模块140,而数据库模块150以存储单元230或外部的存储单元实现(如存储装置中的数据库或外部的数据库服务器)。而通信单元220 (如服务器中的通信电路)用以使前置处理模块110、分析模块120、相似度评估模块130、决定模块140得以与外部的数据库连结。
[0072]以下举例说明如图3的步骤S21针对应用程序的某方面的相关的内容的数据组的分析处理以及步骤S23的相似度评估的实施例。而如图6的分析模块120及相似度评估模块130也可据以实现。
[0073]针对使用者接口方的分析
[0074]对于使用者接口方面的相关的内容的分析而言,一些实施例中,可针对如使用者接口的布局(user interface layout)、使用者接口中元件的阶层关系(hierarchy)、相关的事件(event)、应用程序接口(application interface,API)等的一或多个来作出分析,进而得知待测的应用程序与已知的应用程序的相似度。
[0075]如图8中,应用程序包的使用者接口程序代码所对应的画面(view) 300中具有的使用者接口元件例如命令列Ml、选择功能的按钮B1、B2,这些元件可分别对应到事件1、2、
3。故可针对应用程序的使用者界面或各个画面中的使用者接口元件及相关使用的信息,如元件间的关系、处理的事件内容或操作,进行分析,并得出可描述用作比对的特征关系,产生对应的特征数据,或可称为诠释数据或元数据(metadata)。例如以矩阵或阵列或各种合适的编码方式描述特征数据,从而有助于从数据库中检索及比对之用。
[0076]举例来说,如图8中示意的使用者接口的布局(layout),包含图形、图片、选项、及其间排列的相对位置与对应关系,以及与事件处理相关元件(如命令列Ml、按钮B1、B2)。又事件的对应的处理函数的API呼叫及相关的程序信息,也可纳入分析,并将其分析得出的特征数据,交由步骤S33的相似度评估或相似度评估模块130进行处理。
[0077]针对使用者接口方面,在一实施例中,步骤S21可包括:依据该第一数据组,分析使用者接口中各画面与各元件的阶层关系以作为特征关系之一,并依据该特征关系产生该第一数据组对应的第一特征数据。又在另一实施例中,步骤S21可还包括:依据该第一数据组,分析使用者接口中各元件与布局相关执行程序代码,以得出各元件与对应的k处理事件之间的关系及对应的应用程序接口的名称与数量作为特征关系之一,并依据该特征关系产生该第一数据组对应的第二特征数据。相对于上述步骤S21的实施例,步骤S33可包括:依据该第一数据组的该第一特征数据和该第二特征数据以及从该数据库中取得的与该特征数据相距对应距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;其中该待测的应用程序包的相似度是为基于使用者接口方面的该相似性元数据而决定。此外,针对使用者接口方面,步骤S21也可仅产生一种特征数据或更多的特征数据。
[0078]请参考图9,步骤S33可基于此实施例而评估待测的应用程序(如称为Al)与从数据库搜寻得到的已知的程序包(或可视为程序包集合)Ax的相似性。如步骤S310所示,决定待测的应用程序Al与程序包Ax是否相似。例如设定程序接口如称为Layout (Ax,Al)函数用来计算Ax与Al间的相似度。依据前述关系式I的观念,假设Al是Ax的重新包装,Ax与Al在使用者接口的层级与所包含的元件关系及数量上,则依然会是重新包装的程序会包含(大于或等于)原始程序。如果是Layout (Ax,Al)判断出来的差距过大,表示使用者接口的布局中各元件信息的统计或关联计算产生的结果差距过大使Layout (Ax, Al) =F,则如步骤S315所示,代表待测的应用程序包Al与程序包Ax不相似。如果Layout (Ax, Al) =T,即结果为是,则如步骤S320所示,继续以事件的处理函数中所用的应用程序接口(API)来进行比较。例如设定程序接口如称为Api (Ax,Al)函数用来计算Ax与Al间有关应用程序接口方面的相似度。
[0079]例如,Layout (Αχ, Al)可包括以下关系(称关系式2),如果存在:
[0080]Ax的布局元件的集合G Al的布局元件的集合的关系;且[0081](Al的布局元件的数量)-(Ax的布局元件的数量)(dl
[0082]则Layout (Αχ,Α1)=Τ(即判定为相似),其中dl为有关布局元件方面的对应的距离(或称为差异)的条件。此函数Layout (Ax,Al)在数据库中,寻找被Al所包含但距离小于dl的所有应用程序Ax来进行比对,来判定Ax是否可能为重新包装产生Al前的原始程序。
[0083]例如,Api (Αχ, Al)可包括以下关系(称关系式3),如果存在:
[0084]Ax的UI相关API的集合£ Al的UI相关API的集合的关系;且
[0085](Al的这些API的数量)-(Ax的这些API的数量)(d2
[0086]则Api (Ax, Al) =T (即判定为相似),其中d2为有关布局元件方面的API的对应的距离的条件。此函数Api(Ax,Al)在数据库中,寻找被Al所包含但距离小于d2的所有应用程序Ax来进行比对,来判定Ax是否可能为重新包装产生Al前的原始程序。
[0087]若Layout (Ax, Al) =T且Api (Ax, Al) =T,此时表示程序包Ax和Al相似度高,则如步骤S330所示,决定有关于(Αχ,Al)的相似性元数据Siml。故此实施例可视为前述步骤S33的实施例中,基于第一特征数据和第二特征数据以产生使用者接口方面对应的相似性元数据,以供步骤S35或评估模块130使用。
[0088]此外,在一些实施例中,可将关系式3所得的Al与Ax有差异的API (其中对应的API数量的差值少于d 2)记录起来,如存于报告文件之中,此记录的信息可用作动态检测时,寻找恶意程序代码位置时的参考信息。
[0089]又在一些实施例中,此部分LayoutO与Api O所使用的元数据,也可用来建立前述数据库的索引,以便依照其距离参数,以提取适当的已知应用程序的特征数据与Al的特征数据进行比对,从而找出适当的Ax。
[0090]针对程序运作方面
[0091]针对程序运作方面,可从程序代码中使用的应用程序接口或数据进行分析。在一实施例中,步骤S21可包括:依据程序运作方面相关的内容的数据组,分析执行代码中各应用程序接口(API)所使用的参数及参数内容的关系以作为特征关系,并依据该特征关系产生该数据组对应的特征数据。
[0092]在另一实施例中,步骤S21可包括:依据程序运作方面相关的内容的数据组,分析执行代码的数据流程,对此数据组中多个输入数据(或称为来源数据(source))、这些输入数据所历经的处理动作(或称为处理路径(path))及所对应的最后动作(或称为最后流向(sink))以作为特征关系,并依据该特征关系产生该数据组对应的特征数据。这些输入数据所历经的处理动作及所对应的最后动作是对应到此数据组的码流(code flow)中的应用程序接口。
[0093]这些程序运作方面有关于数据流向的分析有助判断重新包装的应用程序甚至是恶意程序代码。例如,步骤S21(或分析模块120)可针对程序运作方面,对于应用程序内核的执行代码部分(如通过步骤SlO产生的数据组),提取出所需的相关信息:如被呼叫的AP1、敏感性数据于程序中的输入输出流向与处理路径、程序内核片段等,加以分析。
[0094]举例而言,分析程序代码后,得出关于某数据的码流以虚拟程序代码表示如下:
[0095]宣告datal为整数;
[0096]data2=APIl (datal);
[0097]data3=API2(data2);[0098]API3 (data3);
[0099]故此,来源数据为:datal,处理路径为:[API1,API2],而最后流向为:API3,故特征关系为:{datal,[API1,API2],API3}。而一般来说,程序代码中有许多来源数据,以及相对应的数据路径以及最后流向,这些有关来源数据的特征关系的集合,可据以产生待测的应用程序针对程序运作方面的特征数据,或可称为诠释数据或元数据(metadata)。例如以矩阵或阵列或各种合适的编码方式描述特征数据,从而有助于从数据库中检索及比对之用。特征数据是为供步骤S33或相似度评估模块130使用。
[0100]为了运算环境安全,除了一般的来源数据外,还可针对相关的敏感数据进行分析,例如对于移动通信装置(如手机或平板计算机)的应用程序来说,敏感数据如机器码、国际移动设备识别码(IEMI)、个人识别码(PIN)、通信记录等。举例而言,分析程序代码发现应用程序接口 API_1读取了手机的机器码mCode (如表示为API_l(mCode)),在经历一连串的处理路径后,最后由应用程序接口 API_2送至某一网络目的位置(如表示为API_2 (URL)),由此{mCode,[API_1 (mCode),…],API_2 (URL)}代表程序处理数据的特征关系,可据以产生特征数据。
[0101]在一些实施例中,程序运作方面有关于数据流向的分析,可采用动态分析方法中的污染源分析(TaintAnalysis)。污染源分析可追踪预先定义的敏感性数据或具有危险动作的数据操作,记录数据的扩散的历程及数据目的端(sink),可据以发出警告,例如数据目的端可能令数据外泄的程序操作及目的端,如网络或外接存储卡等。故应用此污染源分析中有关来源数据到数据目的端的历程的技术可作为辨识软件的特征关系而应用在步骤S33或分析模块123 ;此外,也可用以监控数据外泄的方式,从而分辨是否恶意程序。
[0102]步骤S21或分析模块120针对程序运作方面的实施例所产生的特征数据,可进一步由步骤S33或相似度评估模块130进行处理。请参考图10,步骤S33或相似度评估模块130可基于此实施 例而评估待测的应用程序(如称为Al)与从数据库搜寻得到的已知的程序包(或可视为程序包集合)Bx的相似度。如步骤S410所示,依据针对程序运作方面的特征数据例如前述从来源数据至目的端的处理路径,比较已知的程序包Bx与待测的应用程序Al。步骤S410是使用数据库中已有的记录作比对;另外,一些例子中,比对的范围可利用待测的应用程序的其他方面的分析中所搜寻到的范围例如对于前述静态检测中令Layout () =T或Api O =T的程序包集合Αχ。此外,例如设定程序接口如称为Path (Αχ, Al)函数用来计算Ax与Al间有关数据流向的相似度。
[0103]Path ()例如可包括以下关系(称关系式4),如果存在:
[0104]Ax的处理路径的集合G Al的处理路径集合的关系;且
[0105](Al的处理路径的数量)-(Ax的处理路径的数量)(d3
[0106]则Path(Ax,A1)=T(即判定为相似),其中d3为有关处理路径方面的对应的距离(或称为差异)的条件。此函数Path (Ax,Al)在数据库中,寻找被Al所包含但距离小于d3的所有应用程序Ax来进行比对,来判定Ax是否可能为重新包装产生Al前的原始程序。
[0107]如步骤S430所示,判断处理路径是否相似。如果Path(Ax,Al) =F,则如步骤S435所示,待测的应用程序包Al与程序包Ax不相似。如果Path (Ax, Al) =T,表示找出了相似且符合条件的已知的程序包,此时表示程序包Ax和Al相似度高,则如步骤S440所示,决定有关于(Αχ,Α1)的相似性元数据Sim2。[0108]针对程序所使用的资源方面
[0109]在一实施例中,针对程序所使用的资源方面,步骤S21可包括:依据程序所使用的资源方面的数据组,分析程序使用的资源的关系以作为特征关系之一,并依据特征关系产生该数据组对应的特征数据。程序使用的资源是指程序所用的数据,故可以视为程序代码中所设定请求的资源(resource)、权限设定(permission)或非程序代码的内容的关系。非程序代码的内容例如程序代码中所使用的超连结、程序脚本(script)、呈现内容的文件(content file)。
[0110]例如在安卓(Android)平台上,应用程序包的格式为APK文件(为封装格式),其中包含数个dex文件(程序执行代码)、属性内容(properties)(所包含的图片、数据与其他文件)与清单文件(manifest),其中清单文件是为对权限与相关资源使用的设定与程序宣告,并以XML描述。故此,从步骤SlO或前置处理模块110,可以产生针对程序所使用的资源方面的数据组。
[0111]例如,针对程序所使用的资源方面,步骤S21或分析模块120可将例如以XML数据表示的所设定请求的资源或权限设定的名称、个数解析并对其他程序相关参数合并为特征数据。
[0112]又一实施例中,步骤S21或分析模块120可将其他资源数据,如图片、音频或其他数据,采用哈希方式(hash,杂凑)产生相关的特征数据,以供步骤S33或相似度评估模块130进行评估。
[0113]请参考图11,步骤S33或相似度评估模块130可基于此实施例而评估待测的应用程序(如称为Al)与从数据库搜寻得到的已知的程序包(或可视为程序包集合)Ax的相似性。针对程序所使用的资源方面,如步骤S510所示,决定待测的应用程序Al与程序包Ax是否相似。例如设定程序接口如称为Per (Ax,Al)函数用来计算Ax与Al间关于权限设定(permission)的相 似度。如果是Per (Αχ, Al)判断出来的差距过大,贝U如步骤S515所示,代表待测的应用程序包Al与程序包Ax不相似。如果Per(Ax,Al) =T,即结果为是,则进一步评估其他资源方面的相似度。如步骤S520所示,从数据库中取得与应用程序包Al相关的元数据,例如是前述XML描述的元数据。如步骤S530所示,决定程序包Ax相关的元数据的相似性元数据Sim3。如步骤S540所示,决定其他媒体文件(如图像文件等)的相似性元数据Sim4。
[0114]在步骤S510中,例如将待测的应用程序Al与数据库中得到的程序包Ax进行比对。由前述关系式I的观念,如果应用程序Al是某支程序的重新包装的话,其所包括的权限设定将会是大于或等于原始程序的权限设定。故此,Per(Ax,Al)例如可包括以下关系(称关系式5),如果存在:
[0115]Ax的权限设定的集合£ Al的权限设定集合的关系;且
[0116](Al的权限设定的数量)-(Ax的权限设定的数量)(d4
[0117]贝iJPeHAx,Al)=T (即判定为相似),其中d4为有关权限设定方面的对应的距离(或称为差异)的条件。此函数Per(Ax,Al)在数据库中,寻找被Al所包含但距离小于d4的所有程序包Ax来进行比对,来判定Ax是否可能为重新包装产生A前的原始程序。
[0118]待测的应用程序是否重新包装
[0119]对于前述步骤S21、S23或分析模块120、评估模块130的不同实施例,能产生一个或多个相似性元数据,以供如步骤S35或决定模块140决定待测的应用程序是否重新包装。在一实施例中,步骤S23、或步骤S33或评估模块130所产生的相似性元数据(如Siml至Sim4中的一个或多个),可用来评估出Ax与Al的相似度指数α,以决定待测的应用程序Al是否属于重新包装或其他属性的决定结果。例如,将所有元数据(如siml至sim4)排列成向量与搜寻到的Vl (转换成数值排列)进行如前述的余弦数值的计算相似度α。另外,也可对每一元数据进行加权(表示其所占比重也许不同)后,所计算出的余弦值即为相似度指数α。
[0120]相似度指数α评估的结果关系表示如下:
[0121]若a ≥β (0<β<1), β表示预设的相似度临界值:则Ax与Al两者为相似程序。亦即决定结果是为应用程序Al可视为Ax的重新包装。
[0122]若α〈β,则程序包Al为新的程序。亦即,决定结果是为应用程序Al可视为不是Ax的重新包装。
[0123]如此步骤S35或决定模块140可得出决定结果。请参考图4及图5,步骤S130或步骤S230可依据此决定结果而进一步判断待测的应用程序包Al是否恶意程序。例如,在一实施例中,决定结果是为应用程序Al可视为Ax的重新包装,如果检查发现Al不是Ax的改版,且并非同一作者或公司的应用程序,则待测的应用程序包Al为恶意程序或侵权程序的可能性非常高,则据此拒绝其上架(如步骤S135)或拒绝安装(如步骤S235)。此外,也可记录此待测的应用程序包Al的相关信息于数据库,也可进一步分析此待测的应用程序包Al,以确认是否有新型恶意程序发现。又一实施例中,如果Al不是Ax的重新包装,可再针对其他相关特征数据进行分析,以确认是否为恶意程序或正常程序。
[0124]在其他实施例中,针对待测的应用程序Al的一个或多方面作分析所产生的差异(如步骤S21或分析模块120),例如令PathO=T的程序包Ax与待测的应用程序包Al有差异的处理路径的相关信息,如权限设定(对应到Per O)、使用者接口布局(对应到LayoutO)或应用程序接口(对应ApiO)有差异的相关信息,可用来评估是否为恶意程序。此外,而所差异的一个或多个处理路径更可以直接与既有的恶意程序信息泄漏的特征数据比对,可提前找出明确的恶意程序代码或恶意程序类型。
[0125]此外,在其他实施例中,判定产生的结果则依照预先设定的条件决定此程序可否进行上架或是安装于装置端,不论可安装或不可安装,均可依照市集或是营运商的政策决定后续是否继续进行其他检测。
[0126]此外,在其他实施例中,拒绝应用程序包的上架或安装或是否进行如步骤S20的估计也可配合运算平台的已有机制而进行。例如在安卓(Android)平台上,应用程序包的格式为APK文件(为封装格式),其中包含数个dex文件(程序执行代码)、属性内容(properties)(所包含的图片、数据与其他文件)与清单文件(manifest),其中清单文件是为对权限与相关资源使用的设定与程序宣告,并以XML描述。
[0127]步骤SlO或前置处理模块110例如实施为对APK文件进行解析的动作,并将dexfiles、properties及manifest中对应之后的步骤S20或分析模块120所需的相关信息,进行解析与整理成针对各方面(如使用者接口方面、程序操作方面、程序使用的资源方面的一或多个方面)相关的数据组,或称为元数据(metadata)。步骤SlO或前置处理模块110的一实施例在接收到待测的APK Al时,会将APK中所组成的各个部分解析出来,在将相关信息交给下一步骤S20或分析模块120以前,会先将待测的APK的安全性信息(如APK名称、开发者信息与签章等),先作初步筛选。
[0128]实现此筛选可设定比对函数Mt (APKName, Sign_Key)来处理,其中APKName代表此APK的名称与开发者信息,而SignJfey则代表签章所使用的金钥,APKName与SignJfey的组合,可用来验证APK与开发者的身份。 [0129]如果比对函数Mt O回传为(T,T)表示待测的APK Al为已知的程序与合法的签章金钥,则APK Al可不用再行测试。待测的APK Al为已知即表示之前已测试过并在数据库中建有记录,由于合法签章代表程序内容并未被修改过,可确认其完整性,故APK Al可不用再行测试。但需要进一步比对此待测的APK Al是否在黑名单(blacklist)上。如果不在黑名单上,则允许上架或安装,否则拒绝此黑名单上有记录的APK进行安装。
[0130]第二种情形为Mt O = (T,F),表示此为已知程序与开发者,但签章金钥验证有误,表示此程序可能为窜改或传输时发生错误。无论如何,签章信息有误,表示程序完整性出现问题,则无须进行下一步检查,直接拒绝。
[0131]第三种情形为MtO = (F,T)或(F,F),Mt() = (F,T)表示签章金钥无误,但是程序名称未有记录,则表示待测的APK Al应该是新的程序,需要进行进一步的分析测试。Mt () = (F,F)表示此程序为全新的程序,数据库中对其名称与金钥信息均未有记录,则也应该继续进一步的分析测试。故在此种情形下,步骤SlO或前置处理模块110所取得的分析数据,将如图3所示,由步骤S20继续处理。
[0132]上述有关Android平台的步骤SlO或前置处理模块110的实施例,可将不需要进行进一步筛检的程序先过滤出来。然而,上述仅是一种实施方式而已,运算环境安全方法的实施方式亦不受限于此。
[0133]另外,在一些实施例中,前述如图3的实施例的步骤S21的依据分析待测的应用程序包所得的特征关系产生该数据组对应的特征数据,或是步骤S23中使用的数据库中的特征数据,可采用统计的方式取得。例如,对于数据库的建立而言,对于已知的应用程序包如APK1、APK2、AP3等,可以利用剖析(parsing)后统计程序元件等被使用的数量、或被呼叫的次数或其他引用情况等,并予以量化,例如以如前述的向量或阵列或矩阵等方式,以作为某
一APK的特征数据。例如,表一所示,为使用者接口方面或程序运作方面以其他方面,有关于程序的描述,如Android程序中Activity, service、view的数目的个数等,对APKl而言,此特征数据为[4,2,2,2,I],其他可如此类推。又如表二所示,某种或多种程序接口,如个别或不同的AP1、类别(class)、类别的方法(method)的使用情况。对于待测的应用程序包而言,也可以采用与同样的方式,予以量化,以得到对应的特征数据,以便于前述的数据库中进行搜寻。
[0134]实
【权利要求】
1.一种运算环境安全方法,包括: (a)通过电子运算系统,解开待测的应用程序包以取得至少一数据组,其中各该至少一数据组是为该应用程序包的多个方面中的相关的内容;以及 (b)依据该至少一数据组,估计该待测的应用程序包是否重新包装程序,该步骤(b)包括: (C)对于各该至少一数据组,分析该数据组的该对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据;以及 (d)依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包,其中该数据库包括多个应用程序包所对应的这些方面相关的特征数据; 其中该电子运算系统依据该决定的结果对该待测的应用程序包进行处理。
2.如权利要求1所述的运算环境安全方法,其中在解开待测的应用程序包的步骤之前,还包括: 响应于软件上架的请求,通过该电子运算系统的通信单元,接收该待测的应用程序包; 其中通过该电子运算系统,进行该步骤(b); 其中该电子运算系统是为服务系统,依据该决定的结果,如果该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则该服务系统拒绝该上架的请求,使该待测的应用程序包不能上架。
3.如权利要求1所述的运算环境安全方法,其中在解开待测的应用程序包的步骤之前,还包括: 通过该电子运算系统的通信单元,接收该待测的应用程序包; 其中通过该电子运算系统的控制单元,响应软件安装程序的请求,在欲安装该待测的应用程序包之前,进行该步骤(b); 其中依据该决定的结果,如果该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则该电子运算系统拒绝安装该待测的应用程序包。
4.如权利要求1所述的运算环境安全方法,其中该步骤(d)包括: 依据该至少一数据组的特征数据及从数据库中取得的与该特征数据相距对应距离内的对应的搜寻结果,评估该待测的应用程序包的相似度,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度;以及 依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包;其中,通过该电子运算系统的该通信单元,该电子运算系统通过通信连结从该数据库中取得该搜寻结果。
5.如权利要求1所述的运算环境安全方法,其中这些方面相关的内容包括使用者接口方面的内容,该至少一数据组包括:第一数据组,该第一数据组是为该应用程序包中与使用者接口方面相关的内容。
6.如权利要求5所述的运算环境安全方法,其中该步骤(c)包括: 依据该第一数据组,分析使用者接口中各画面与各元件的阶层关系以作为特征关系之一,并依据该特征关系产生该第一数据组对应的第一特征数据。
7.如权利要求6所述的运算环境安全方法,其中该步骤(c)还包括: 依据该第一数据组,分析使用者接口中各元件与布局相关执行程序代码,以得出各元件与对应的处理事件之间的关系及对应的应用程序接口的名称与数量作为特征关系之一,并依据该特征关系产生该第一数据组对应的第二特征数据。
8.如权利要求7所述的运算环境安全方法,其中该步骤(d)包括: 依据该第一数据组的该第一特征数据和该第二特征数据以及从该数据库中取得的与该特征数据相距对应距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据; 基于使用者接口方面的该相似性元数据,决定该待测的应用程序包的相似度,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度;以及 依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包。
9.如权利要求5所述的运算环境安全方法,其中这些方面相关的内容还包括程序运作方面的内容,各该至少一数据组还包括:第二数据组,该第二数据组是为该应用程序包中与程序运作方面相关的内容。
10.如权利要求9所述的运算环境安全方法,其中该步骤(c)包括: 依据该第二数据组,分析执 行代码中各应用程序接口(API)所使用的参数及参数内容的关系以作为特征关系,并依据该特征关系产生该第二数据组对应的第一特征数据。
11.如权利要求9所述的运算环境安全方法,其中该步骤(c)包括: 依据该第二数据组,分析执行代码的数据流程,对该第二数据组中多个输入数据、这些输入数据所历经的处理动作及所对应的最后动作以作为特征关系,并依据该特征关系产生该第二数据组对应的第一特征数据,其中这些输入数据所历经的处理动作及所对应的最后动作对应到该第二数据组的码流中的应用程序接口。
12.如权利要求9所述的运算环境安全方法,其中该步骤(d)包括: 依据该第一数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第一定距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;以及 依据该第二数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第二定距离内的特征数据对应的搜寻结果,决定程序运作方面的相似性元数据; 基于使用者接口方面的该相似性元数据及该程序运作方面的该相似性元数据,决定该待测的应用程序包的相似度,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度;以及 依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包。
13.如权利要求9所述的运算环境安全方法,其中这些方面相关的内容还包括程序使用的资源方面的内容,各该至少一数据组包括:第三数据组,该第三数据组是为该应用程序包中与程序使用的资源方面的内容。
14.如权利要求13所述的运算环境安全方法,其中该步骤(c)包括:依据该第三数据组,分析程序使用的资源的关系以作为特征关系之一,并依据该特征关系产生该第三数据组对应的特征数据。
15.如权利要求14所述的运算环境安全方法,其中程序使用的资源的关系是为该待测的应用程序包的所设定请求的权限设定的关系。
16.如权利要求14所述的运算环境安全方法,其中程序使用的资源的关系是为该待测的应用程序包的非程序代码的内容的关系。
17.如权利要求13所述的运算环境安全方法,其中该步骤(d)包括: 依据该第一数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第一定距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据; 依据该第二数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第二定距离内的特征数据对应的搜寻结果,决定程序运作方面的相似性元数据; 依据该第三数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第三定距离内的特征数据对应的搜寻结果,决定程序使用的资源方面的相似性元数据; 基于使用者接口方面的该相似性元数据及该程序运作方面的该相似性元数据及程序使用的资源方面的该相似性元数据,决定该待测的应用程序包的相似度,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度;以及 依据该待测的应用程序的相似度,决定该待测的应用程序包是否为重新包装的应用程序包。
18.—种为运算系统可读 取记录介质,其中记录包括运算系统可执行的多个指令,当运算系统执行这些指令后,该运算系统用以执行如权利要求1至17项的任一所述的运算环境安全方法。
19.一种电子运算系统,包括: 通信单元;以及 控制单元,通过该通信单元,接收待测的应用程序包,其中该控制单元至少: 解开待测的应用程序包以取得至少一数据组,其中该待测的应用程序包包括多个方面相关的内容,各该至少一数据组是为该应用程序包的这些方面中的相关的内容; 对于各该至少一数据组,分析该数据组的该对应的方面的相关的内容的特征关系,并依据该特征关系产生该数据组对应的特征数据; 依据该至少一数据组的特征数据及从数据库单元中取得的与该特征数据相距对应距离内的对应的搜寻结果,决定该待测的应用程序包是否为重新包装的应用程序包,其中该电子运算系统依据该决定的结果对该待测的应用程序包进行处理。
20.如权利要求19所述的电子运算系统,还包括该数据库单元,该数据库单元具有多个应用程序包所对应的这些方面相关的特征数据,其中该电子运算系统是为服务系统,如果该控制单元决定该待测的应用程序包为重新包装的应用程序包且为恶意程序,则该服务系统拒绝该待测的应用程序包的上架的请求,使该待测的应用程序包不能上架。
21.如权利要求19所述的电子运算系统,其中该电子运算系统是为电子装置,通过该通信单元,该电子运算系统通过通信连结从该数据库单元中取得该搜寻结果。
22.如权利要求21所述的电子运算系统,其中若该待测的应用程序包被决定为重新包装的应用程序包且为恶意程序,则该电子运算系统拒绝安装该待测的应用程序包。
23.如权利要求21所述的电子运算系统,其中若该控制单元决定该待测的应用程序包并非为重新包装且为全新的程序,则该电子运算系统通过通信连结将该至少一数据组的特征数据回传到该数据库单元存储。
24.如权利要求19所述的电子运算系统,其中这些方面相关的内容包括使用者接口方面的内容,各该至少一数据组包括:第一数据组,该第一数据组是为该应用程序包中与使用者接口方面相关的内容。
25.如权利要求24所述的电子运算系统,其中这些方面相关的内容还包括程序运作方面的内容,各该至少一数据组还包括:第二数据组,该第二数据组是为该应用程序包中与程序运作方面相关的内容。
26.如权利要求25所述的电子运算系统,其中该控制单元: 依据该第一数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第一定距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;以及 依据该第二数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第二定距离内的特征数据对应的搜寻结果,决定程序运作方面的相似性元数据; 该控制单元基于使用者接口方面的该相似性元数据及该程序运作方面的该相似性元数据,决定该待测的应用程序包的相似度,并依据该待测的应用程序包的相似度决定该待测的应用程序包是否为重新包装的应用程序包,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度。
27.如权利要求25所述的电子运算系统,其中这些方面相关的内容还包括程序使用的资源方面的内容,各该至少一 数据组包括:第三数据组,该第三数据组是为该应用程序包中与使用者接口方面相关的内容。
28.如权利要求27所述的电子运算系统,其中该控制单元: 依据该第一数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第一定距离内的特征数据对应的搜寻结果,决定使用者接口方面的相似性元数据;以及 依据该第二数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第二定距离内的特征数据对应的搜寻结果,决定程序运作方面的相似性元数据; 依据该第三数据组的特征数据及从该数据库中取得的与该特征数据相距对应的第三定距离内的特征数据对应的搜寻结果,决定程序使用的资源方面的相似性元数据; 该控制单元基于该使用者接口方面的该相似性元数据及该程序运作方面的该相似性元数据及程序使用的资源方面的该相似性元数据,决定该待测的应用程序包的相似度,并依据该待测的应用程序包的相似度决定该待测的应用程序包是否为重新包装的应用程序包,其中该待测的应用程序包的相似度是为该待测的应用程序包与该搜寻结果所对应的该数据库中的应用程序包的相似度。
【文档编号】G06F21/50GK103544430SQ201310000890
【公开日】2014年1月29日 申请日期:2013年1月4日 优先权日:2012年7月12日
【发明者】王邦杰, 石俊彬, 杨淑芬, 陈俊宇 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1