一种基于安卓的应用程序分析方法、设备及介质与流程

    专利查询2022-07-06  212



    1.本技术涉及计算机领域,具体涉及一种基于安卓的应用程序分析方法、设备及介质。


    背景技术:

    2.安卓系统的源代码(aosp)使用了apache 2.0开源协议,可以在需要时,修改代码并作为开源或商业产品发布或销售。
    3.随着持续关注数据安全问题,各安卓软件提供商也陆续更新了用户使用协议,对用户个人数据的保护问题作出了承诺。但是,目前并没有相应的检测软件,对非法获取用户数据的行为进行分析检测,用户很难确定手机内的安卓程序是否存在恶意监听等其他非法行为。


    技术实现要素:

    4.为了解决上述问题,本技术提出了一种基于安卓的应用程序分析方法,包括:获取安卓系统的开源代码;对所述开源代码进行重新编译,以对所述安卓系统中的预设目标的调用状态进行记录;确定已应用重新编译后的所述安卓系统的终端设备;编写报告生成程序,并将所述报告生成程序安装在所述终端设备中;将待分析的应用程序安装在所述终端设备中,并在所述应用程序运行后,通过所述报告生成程序记录的所述调用状态,生成针对所述应用程序的分析报告。
    5.在一个示例中,所述对所述安卓系统中的预设目标的调用状态进行记录,具体包括:对所述安卓系统中的敏感接口的调用状态进行记录,所述敏感接口能够调用所述终端设备中的相应模块,以获取所述用户在所述终端设备中的隐私数据。
    6.在一个示例中,所述敏感接口包括摄像头接口、麦克风接口、通信录接口、地理位置接口、蓝牙接口、读取外设信息接口、网络使用接口中的至少一种;所述调用状态包括输入参数、返回值中的至少一种。
    7.在一个示例中,所述编写报告生成程序,并将所述报告生成程序安装在所述终端设备中,具体包括:基于安卓编程语言的集成环境,构建安卓工程;在所述安卓工程中编写报告生成程序,以使所述报告生成程序能够读取所述安卓系统中的预设目标的调用状态。
    8.在一个示例中,所述在所述应用程序运行后,通过所述报告生成程序记录的所述调用状态,生成针对所述应用程序的分析报告,具体包括:确定所述应用程序在运行过程中所处的各运行状态;针对每个所述运行状态,确定在该运行状态下对应的部分调用状态,并根据所述部分调用状态,生成针对所述应用程序在该运行状态下的分析报告。
    9.在一个示例中,所述根据所述部分调用状态,生成针对所述应用程序在该运行状态下的分析报告,具体包括:确定该运行状态对应的用户参与等级;根据所述部分调用状态,生成针对所述应用程序在该运行状态下的分析报告,并在所述分析报告中生成分析结果,所述用户参与等级越低,分析结果的严重等级越高。
    10.在一个示例中,所述对所述安卓系统中的敏感接口的调用状态进行记录,具体包括:确定安卓系统中所有敏感接口的调用频率,所述调用频率为基于所述用户需求所产生的调用的频率;根据所述调用频率,对所述所有敏感接口进行排序,并选择排序在最靠前若干个调用频率,所述调用频率越低,所述排序越靠前;对选择的所述若干个调用频率的调用状态进行记录。
    11.在一个示例中,所述对所述开源代码进行重新编译,以对所述安卓系统中的预设目标的调用状态进行记录,具体包括:修改所述开源代码中对所述预设目标的实现,以在其中添加能够被调用的记录功能,从而能对所述安卓系统中的预设目标的调用状态进行记录;所述确定已应用重新编译后的所述安卓系统的终端设备,具体包括:根据修改后的所述开源代码,生成刷机包,并通过所述刷机包将重新编译后的所述安卓系统刷入终端设备。
    12.另一方面,本技术还提出了一种基于安卓的应用程序分析设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:获取安卓系统的开源代码;对所述开源代码进行重新编译,以对所述安卓系统中的预设目标的调用状态进行记录;确定已应用重新编译后的所述安卓系统的终端设备;编写报告生成程序,并将所述报告生成程序安装在所述终端设备中;将待分析的应用程序安装在所述终端设备中,并在所述应用程序运行后,通过所述报告生成程序记录的所述调用状态,生成针对所述应用程序的分析报告。
    13.另一方面,本技术还提出了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:获取安卓系统的开源代码;对所述开源代码进行重新编译,以对所述安卓系统中的预设目标的调用状态进行记录;确定已应用重新编译后的所述安卓系统的终端设备;编写报告生成程序,并将所述报告生成程序安装在所述终端设备中;将待分析的应用程序安装在所述终端设备中,并在所述应用程序运行后,通过所述报告生成程序记录的所述调用状态,生成针对所述应用程序的分析报告。
    14.通过本技术提出基于安卓的应用程序分析方法能够带来如下有益效果:
    15.通过对安卓系统重新编译,并编写相应的报告生成程序,其能够对预设目标的调用状态进行记录,使得用户能够及时准确的获取自身的终端设备中是否存在恶意监听、非法采集信息等应用程序的存在,提高了对用户隐私的保护性。
    附图说明
    16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
    17.图1为本技术实施例中基于安卓的应用程序分析方法的流程示意图;
    18.图2为本技术实施例中基于安卓的应用程序分析设备的示意图。
    具体实施方式
    19.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做
    出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
    20.以下结合附图,详细说明本技术各实施例提供的技术方案。
    21.如图1所示,本技术实施例提供基于安卓的应用程序分析方法,包括:
    22.s101:获取安卓系统的开源代码。
    23.安卓(android)是一种基于linux内核(不包含gnu组件)的自由及开放源代码的操作系统,开源代码也称作开放源代码(open source code)或源代码公开,指的是一种软件发布模式。而安卓系统的开源代码,可以基于用户的需求,在相应的网站上,选择所需版本的安卓系统的开源代码进行下载获取。
    24.s102:对所述开源代码进行重新编译,以对所述安卓系统中的预设目标的调用状态进行记录。
    25.编译的过程可以使用相应的编译软件,预设目标可以基于用户的需求进行设置,通常来说,应用程序若想要获取用户的信息,则需要对安卓系统的相关目标进行调用,然后才能获取用户的相关信息。此时,根据用户的需求,对预设目标进行设置,使得安卓系统本身能够对其中预设目标的调用状态进行记录存储。
    26.具体地,预设目标可以是相应的敏感接口,敏感接口能够调用终端设备中的相应模块,以获取用户在终端设备中的隐私数据。比如,摄像头接口、麦克风接口、通信录接口、地理位置接口、蓝牙接口、读取外设信息接口、网络使用接口等,通过摄像头接口,可以基于用户的选择,在其中选取部分接口进行记录,而记录的调用状态可以包括输入参数、返回值等数据。
    27.进一步地,在选择敏感接口时,可以预先确定所有敏感接口的调用频率,当然,此处的调用频率是基于用户需求所产生的,并非是非法行为产生的,而且采集范围可以是用户的终端设备,也可以是在一定区域范围或使用人群内的整体设备。根据调用频率进行排序,调用频率越低,则排序越靠前,然后选取最靠前的若干个调用频率,以对这若干个调用频率的调用状态进行记录。通常来说,调用频率越低,说明需要该接口的软件越少,该接口可能是因为比较核心,所以不会轻易被调用,那么该接口一旦被调用,则容易对用户产生较大的损失,因此,需要对其进行记录。
    28.s103:确定已应用重新编译后的所述安卓系统的终端设备。
    29.在对安卓系统重新编译的过程中,修改开源代码中对预设目标的实现,以在其中添加能够被调用的记录功能,从而能对安卓系统中的预设目标的调用状态进行记录,此时,根据修改后的开源代码生成刷机包,通过刷机包将重新编译的安卓系统刷入终端设备(比如,智能手机、平板电脑)即可。
    30.s104:编写报告生成程序,并将所述报告生成程序安装在所述终端设备中。
    31.首先可以基于安卓编程语言的集成环境(比如,安卓idea),构建安卓工程,然后,在盖安卓工程中编写报告生成程序,使得报告生成程序能够读取安卓系统中的预设目标的调用状态,即完成了报告生成程序的编写。
    32.s105:将待分析的应用程序安装在所述终端设备中,并在所述应用程序运行后,通过所述报告生成程序记录的所述调用状态,生成针对所述应用程序的分析报告。
    33.在实际使用之前,可以进行测试,以确定安卓系统是否稳定、报告生成程序是否准确等。由于安卓系统已经重新编译过,所以报告生成程序能够记录调用状态,由此生成应用
    程序的分析报告。
    34.通过对安卓系统重新编译,并编写相应的报告生成程序,其能够对预设目标的调用状态进行记录,使得用户能够及时准确的获取自身的终端设备中是否存在恶意监听、非法采集信息等应用程序的存在,提高了对用户隐私的保护性。
    35.在一个实施例中,在生成分析报告的过程中,可以首先确定应用程序在运行过程中的各运行状态,比如,运行状态可以包括前台状态、后台状态、暗屏状态等。然后针对每个运行状态,确定在该运行状态下对应的部分调用状态,无需对所有的调用状态都进行采集,以此减少系统的计算资源的使用,比如,当运行状态为未联网时,则可以无需采集网络使用接口的记录。然后根据部分调用状态,生成针对所述应用程序在该运行状态下的分析报告。
    36.进一步地,生成分析报告时,可以确定运行状态对应的用户参与等级,用户参与等级表示用户在当前运行状态下,能够对该应用程序发起的参与的等级,等级越高,表示该用户可参与性越高。比如,运行状态可以包括前台、后台、暗屏,其对应的用户参与等级分别为前台》后台》暗屏。然后,在生成分析报告时,可以在其中生成分析结果,如果该运行状态下用户参与等级很低,但是调用状态表示预设目标被调用很频繁,则很有可能是应用程序自身进行的非法调用。因此,用户参与等级越低,分析结果的严重等级越高。
    37.如图2所示,本技术实施例还提供了一种基于安卓的应用程序分析设备,包括:
    38.至少一个处理器;以及,
    39.与所述至少一个处理器通信连接的存储器;其中,
    40.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:
    41.获取安卓系统的开源代码;
    42.对所述开源代码进行重新编译,以对所述安卓系统中的预设目标的调用状态进行记录;
    43.确定已应用重新编译后的所述安卓系统的终端设备;
    44.编写报告生成程序,并将所述报告生成程序安装在所述终端设备中;
    45.将待分析的应用程序安装在所述终端设备中,并在所述应用程序运行后,通过所述报告生成程序记录的所述调用状态,生成针对所述应用程序的分析报告。
    46.本技术实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
    47.获取安卓系统的开源代码;
    48.对所述开源代码进行重新编译,以对所述安卓系统中的预设目标的调用状态进行记录;
    49.确定已应用重新编译后的所述安卓系统的终端设备;
    50.编写报告生成程序,并将所述报告生成程序安装在所述终端设备中;
    51.将待分析的应用程序安装在所述终端设备中,并在所述应用程序运行后,通过所述报告生成程序记录的所述调用状态,生成针对所述应用程序的分析报告。
    52.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实
    施例的部分说明即可。
    53.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
    54.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
    55.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
    56.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
    57.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
    58.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
    59.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
    60.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
    61.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
    素。在没有更多限制的情况下,由语句“包括一个
    ……”
    限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
    62.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
    转载请注明原文地址:https://tc.8miu.com/read-228.html

    最新回复(0)