CN116302903A - 调用关系分析方法、设备、存储介质及装置 - Google Patents
调用关系分析方法、设备、存储介质及装置 Download PDFInfo
- Publication number
- CN116302903A CN116302903A CN202111495168.0A CN202111495168A CN116302903A CN 116302903 A CN116302903 A CN 116302903A CN 202111495168 A CN202111495168 A CN 202111495168A CN 116302903 A CN116302903 A CN 116302903A
- Authority
- CN
- China
- Prior art keywords
- application program
- call
- analyzed
- association
- file
- 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.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 131
- 238000012098 association analyses Methods 0.000 claims description 29
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000010219 correlation analysis Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 19
- 238000012216 screening Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及车联网技术领域,公开了一种调用关系分析方法、设备、存储介质及装置,该方法包括:获取车机系统中待分析应用程序的可执行文件,将可执行文件转换为反编译文件,根据反编译文件获取待分析应用程序的关联信息,根据关联信息对待分析应用程序进行隐藏调用分析,获得待分析应用程序的调用关系;由于本发明中通过将可执行文件转换为反编译文件,并根据反编译文件对待分析应用程序进行隐藏调用分析,从而能够提高了调用关系分析的准确性和效率。
Description
技术领域
本发明涉及车联网技术领域,尤其涉及一种调用关系分析方法、设备、存储介质及装置。
背景技术
车辆网在汽车领域的应用越来越多,而程序测试属于车机系统中较为重要的一部分。目前,分析车机系统中应用程序的文件通常通过人工打开文件逐个分析,费时费力,分析效率低。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种调用关系分析方法、设备、存储介质及装置,旨在解决现有技术中分析应用程序的文件通常通过人工打开文件逐个分析,费时费力,分析效率低的技术问题。
为实现上述目的,本发明提供一种调用关系分析方法,所述调用关系分析方法包括以下步骤:
获取车机系统中待分析应用程序的可执行文件;
将所述可执行文件转换为反编译文件;
根据所述反编译文件获取所述待分析应用程序的关联信息;
根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系。
可选地,所述根据所述反编译文件获取所述待分析应用程序的关联信息的步骤,包括:
根据所述反编译文件确定所述待分析应用程序的申请权限;
获取所述车机系统中已安装应用程序的程序权限;
将所述申请权限与所述程序权限进行匹配,并根据匹配结果确定所述待分析应用程序的权限调用关联;
根据所述权限调用关联生成所述待分析应用程序的关联信息。
可选地,所述根据所述反编译文件确定所述待分析应用程序的申请权限的步骤,包括:
从所述反编译文件中提取所述待分析应用程序的权限声明文件;
根据所述权限声明文件确定所述待分析应用程序的申请权限。
可选地,所述根据所述权限调用关联生成所述待分析应用程序的关联信息的步骤,包括:
获取所述可执行文件的基础信息,并根据所述基础信息确定所述可执行文件的基础组件;
从所述反编译文件中提取所述基础组件对应的调用代码;
根据所述调用代码确定所述待分析应用程序的Intent调用关联;
根据所述权限调用关联和所述Intent调用关联生成所述待分析应用程序的关联信息。
可选地,所述根据所述调用代码确定所述待分析应用程序的Intent调用关联的步骤,包括:
从所述调用代码中提取包名和组件名称;
根据所述包名和所述组件名称确定所述待分析应用程序的Intent调用关联。
可选地,所述根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系的步骤,包括:
从所述关联信息中提取所述待分析应用程序的权限调用关联;
根据所述权限调用关联确定所述待分析应用程序的调用关系。
可选地,所述根据所述权限调用关联确定所述待分析应用程序的调用关系的步骤,包括:
从所述关联信息中提取所述待分析应用程序的Intent调用关联;
根据所述权限调用关联和所述Intent调用关联确定所述待分析应用程序的调用关系。
可选地,所述获取车机系统中待分析应用程序的可执行文件的步骤,包括:
获取车机系统中的已安装应用程序;
对所述已安装应用程序进行筛选,获得待分析应用程序;
获取所述待分析应用程序的可执行文件。
可选地,所述对所述已安装应用程序进行筛选,获得待分析应用程序的步骤,包括:
通过预设白名单从所述已安装应用程序中选取系统应用程序和库文件;
根据所述系统应用程序和所述库文件对所述已安装应用程序进行筛选,获得待分析应用程序。
可选地,所述获取车机系统中待分析应用程序的可执行文件的步骤之前,还包括:
在检测到车机系统中的控制指令时,确定所述控制指令是否为调用命令;
相应地,所述获取车机系统中待分析应用程序的可执行文件的步骤,包括:
若是,则获取车机系统中待分析应用程序的可执行文件。
可选地,所述在检测到车机系统中的控制指令时,确定所述控制指令是否为调用命令的步骤,包括:
在检测到车机系统中的控制指令时,将所述控制指令与预设指令进行匹配,获得匹配结果;
检测所述车机系统中是否存在shell命令执行;
根据所述匹配结果和所述检测结果确定所述控制指令是否为调用命令。
此外,为实现上述目的,本发明还提出一种调用关系分析设备,所述调用关系分析设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的调用关系分析程序,所述调用关系分析程序配置为实现如上文所述的调用关系分析方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有调用关系分析程序,所述调用关系分析程序被处理器执行时实现如上文所述的调用关系分析方法。
此外,为实现上述目的,本发明还提出一种调用关系分析装置,所述调用关系分析装置包括:文件获取模块、文件转换模块、关联分析模块以及调用分析模块;
所述文件获取模块,用于获取车机系统中待分析应用程序的可执行文件;
所述文件转换模块,用于将所述可执行文件转换为反编译文件;
所述关联分析模块,用于根据所述反编译文件获取所述待分析应用程序的关联信息;
所述调用分析模块,用于根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系。
可选地,所述关联分析模块,还用于根据所述反编译文件确定所述待分析应用程序的申请权限;
所述关联分析模块,还用于获取所述车机系统中已安装应用程序的程序权限;
所述关联分析模块,还用于将所述申请权限与所述程序权限进行匹配,并根据匹配结果确定所述待分析应用程序的权限调用关联;
所述关联分析模块,还用于根据所述权限调用关联生成所述待分析应用程序的关联信息。
可选地,所述关联分析模块,还用于从所述反编译文件中提取所述待分析应用程序的权限声明文件;
所述关联分析模块,还用于根据所述权限声明文件确定所述待分析应用程序的申请权限。
可选地,所述关联分析模块,还用于获取所述可执行文件的基础信息,并根据所述基础信息确定所述可执行文件的基础组件;
所述关联分析模块,还用于从所述反编译文件中提取所述基础组件对应的调用代码;
所述关联分析模块,还用于根据所述调用代码确定所述待分析应用程序的Intent调用关联;
所述关联分析模块,还用于根据所述权限调用关联和所述Intent调用关联生成所述待分析应用程序的关联信息。
可选地,所述关联分析模块,还用于从所述调用代码中提取包名和组件名称;
所述关联分析模块,还用于根据所述包名和所述组件名称确定所述待分析应用程序的Intent调用关联。
可选地,所述调用分析模块,还用于从所述关联信息中提取所述待分析应用程序的权限调用关联;
所述调用分析模块,还用于根据所述权限调用关联确定所述待分析应用程序的调用关系。
可选地,所述调用分析模块,还用于从所述关联信息中提取所述待分析应用程序的Intent调用关联;
所述调用分析模块,还用于根据所述权限调用关联和所述Intent调用关联确定所述待分析应用程序的调用关系。
在本发明中,公开了获取车机系统中待分析应用程序的可执行文件,将可执行文件转换为反编译文件,根据反编译文件获取待分析应用程序的关联信息,根据关联信息对待分析应用程序进行隐藏调用分析,获得待分析应用程序的调用关系;由于本发明中通过将可执行文件转换为反编译文件,并根据反编译文件对待分析应用程序进行隐藏调用分析,从而能够提高了调用关系分析的准确性和效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的调用关系分析设备的结构示意图;
图2为本发明调用关系分析方法第一实施例的流程示意图;
图3为本发明调用关系分析方法第二实施例的流程示意图;
图4为本发明调用关系分析方法第三实施例的流程示意图;
图5为本发明调用关系分析方法第四实施例的流程示意图;
图6为本发明调用关系分析装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的调用关系分析设备结构示意图。
如图1所示,该调用关系分析设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对调用关系分析设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,认定为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及调用关系分析程序。
在图1所示的调用关系分析设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述调用关系分析设备通过处理器1001调用存储器1005中存储的调用关系分析程序,并执行本发明实施例提供的调用关系分析方法。
基于上述硬件结构,提出本发明调用关系分析方法的实施例。
参照图2,图2为本发明调用关系分析方法第一实施例的流程示意图,提出本发明调用关系分析方法第一实施例。
在第一实施例中,所述调用关系分析方法包括以下步骤:
步骤S10:获取车机系统中待分析应用程序的可执行文件。
应当理解的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的调用关系分析设备,例如,车载电脑、服务器等,或者是其他能够实现相同或相似功能的电子设备,本实施例对此不加限制。
需要说明的是,待分析应用程序可以是需要进行调用分析的应用程序,待分析应用程序可以由用户预先设置,也可以由调用关系分析设备根据预设筛选条件自动确定,本实施例对此不加限制。其中,预设筛选条件可以预先设置。
可执行文件可以包括dex、jar以及apk等安卓文件。
可以理解的是,获取车机系统中待分析应用程序的可执行文件可以是获取车机系统中待分析应用程序的文件列表,并获取文件列表中各文件的文件格式,根据文件格式从文件列表中选取可执行文件。
步骤S20:将所述可执行文件转换为反编译文件。
需要说明的是,反编译文件可以是smali文件。
应当理解的是,将可执行文件转换为反编译文件可以是通过预设反编译脚本将可执行文件转换成反编译文件。其中,预设反编译脚本可以预先设置。例如,将apktool、dex2jar、jd-gui以及Auto-Sign设置为反编译脚本。
步骤S30:根据所述反编译文件获取所述待分析应用程序的关联信息。
需要说明的是,关联信息用于表示待分析应用程序与车机系统中的其他应用程序的关联关系。
关联信息可以包括权限调用关联和/或Intent调用关联。其中,权限调用关联表示待分析应用程序与车机系统中的其他应用程序的申请权限相同,Intent调用关联表示待分析应用程序启动了车机系统中的其他应用程序。
可以理解的是,根据反编译文件获取待分析应用程序的关联信息可以是从反编译文件中获取反编译代码,对反编译代码逐行分析,获得待分析应用程序的关联信息。
步骤S40:根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系。
应当理解的是,根据关联信息对待分析应用程序进行隐藏调用分析,获得待分析应用程序的调用关系可以是根据关联信息确定待分析应用程序与车机系统中已安装应用程序的调用关联,并将待分析应用程序与车机系统中已安装应用程序的调用关联作为待分析应用程序的调用关系。
需要说明的是,已安装应用程序可以是车机系统中已经安装的应用程序。
在第一实施例中,公开了获取车机系统中待分析应用程序的可执行文件,将可执行文件转换为反编译文件,根据反编译文件获取待分析应用程序的关联信息,根据关联信息对待分析应用程序进行隐藏调用分析,获得待分析应用程序的调用关系;由于本实施例中通过将可执行文件转换为反编译文件,并根据反编译文件对待分析应用程序进行隐藏调用分析,从而能够提高了调用关系分析的准确性和效率。
参照图3,图3为本发明调用关系分析方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明调用关系分析方法的第二实施例。
在第二实施例中,所述步骤S10,包括:
步骤S101:获取车机系统中的已安装应用程序。
需要说明的是,已安装应用程序可以是车机系统中已经安装的应用程序。
应当理解的是,获取车机系统中的已安装应用程序可以是获取车机系统中的程序标识,并根据程序标识确定车机系统中的已安装应用程序。其中,程序标识用于区别各应用程序。
步骤S102:对所述已安装应用程序进行筛选,获得待分析应用程序。
可以理解的是,在实际应用中,车机系统中除了额外安装的应用程序,还存在系统自带的应用程序和库文件,而系统自带的应用程序和库文件并不需要进行调用关系分析。因此,为了避免系统自带的应用程序和库文件的干扰,本实施例中,对已安装应用程序进行筛选,获得待分析应用程序。
应当理解的是,对已安装应用程序进行筛选,获得待分析应用程序可以是对已安装应用程序进行特征提取,获得程序特征,并根据程序特征对已安装应用程序进行筛选,获得待分析应用程序。其中,程序特征可以包括程序安装位置和程序版本等特征。
进一步地,考虑到逐一分析应用程序的程序特征运算量大,处理速度慢。因此,为了克服上述缺陷,所述步骤S102,包括:
通过预设白名单从所述已安装应用程序中选取系统应用程序和库文件;
根据所述系统应用程序和所述库文件对所述已安装应用程序进行筛选,获得待分析应用程序。
需要说明的是,预设白名单可以由用户预先设置,也可以由调用关系分析设备从互联网上爬取,本实施例对此不加以限制。
可以理解的是,通过预设白名单从已安装应用程序中选取系统应用程序和库文件可以是将已安装应用程序与预设白名单中的应用程序进行匹配,并根据匹配结果从已安装应用程序中选取系统应用程序和库文件。
应当理解的是,根据系统应用程序和库文件对已安装应用程序进行筛选,获得待分析应用程序可以是从已安装应用程序中删除系统应用程序和库文件,获得待分析应用程序。
步骤S103:获取所述待分析应用程序的可执行文件。
可以理解的是,获取待分析应用程序的可执行文件可以是获取待分析应用程序的文件列表,并获取文件列表中各文件的文件格式,根据文件格式从文件列表中选取可执行文件。
在第二实施例中,公开了获取车机系统中的已安装应用程序,对已安装应用程序进行筛选,获得待分析应用程序,获取待分析应用程序的可执行文件;由于本实施例在获取可执行文件前,会对已安装应用程序进行筛选,从而避免了系统自带的应用程序和库文件的干扰,提高了可执行文件获取的速度,进而提高了调用关系分析的速度。
在第二实施例中,所述步骤S30,包括:
步骤S301:根据所述反编译文件确定所述待分析应用程序的申请权限。
应当理解的是,在实际应用中,对反编译文件中的反编译代码逐行分析,费时费力,处理效率低。为了克服上述缺陷,本实施例中,通过将待分析应用程序的申请权限与已安装应用程序的程序权限进行匹配来确定待分析应用程序的关联信息。
需要说明的是,申请权限可以是待分析应用程序在运行过程中申请的权限。
可以理解的是,根据反编译文件确定待分析应用程序的申请权限可以是将反编译文件中的反编译代码与预设权限代码进行匹配,并根据匹配结果确定待分析应用程序的申请权限。其中,预设权限代码可以预先设置。
进一步地,考虑到预设权限代码无法实时更新,容易导致申请权限认定错误。因此,为了避免上述缺陷,所述步骤S301,包括:
从所述反编译文件中提取所述待分析应用程序的权限声明文件;
根据所述权限声明文件确定所述待分析应用程序的申请权限。
需要说明的是,权限声明文件可以是so文件,也可以是其他用户自定义的文件,本实施例对此不加以限制。
应当理解的是,根据权限声明文件确定待分析应用程序的申请权限可以是从权限声明文件中提取权限声明信息,并根据权限声明信息待分析应用程序的申请权限。
步骤S302:获取所述车机系统中已安装应用程序的程序权限。
需要说明的是,程序权限可以是已安装应用程序在运行过程中申请的权限。
可以理解的是,获取车机系统中已安装应用程序的程序权限可以是获取车机系统中已安装应用程序的权限标识,并根据权限标识确定已安装应用程序的程序权限。其中,权限标识用于表示应用程序的权限。
步骤S303:将所述申请权限与所述程序权限进行匹配,并根据匹配结果确定所述待分析应用程序的权限调用关联。
应当理解的是,根据匹配结果确定待分析应用程序的权限调用关联在匹配结果为匹配成功时,确定待分析应用程序与已安装应用程序之间存在权限调用关联;在匹配结果为匹配失败时,确定待分析应用程序与已安装应用程序之间不存在权限调用关联。
步骤S304:根据所述权限调用关联生成所述待分析应用程序的关联信息。
可以理解的是,根据权限调用关联生成待分析应用程序的关联信息可以是将权限调用关联作为待分析应用程序的关联信息。
在第二实施例中,公开了根据反编译文件确定待分析应用程序的申请权限,获取车机系统中已安装应用程序的程序权限,将申请权限与程序权限进行匹配,并根据匹配结果确定待分析应用程序的权限调用关联,根据权限调用关联生成待分析应用程序的关联信息;由于本实施例通过将待分析应用程序的申请权限与已安装应用程序的程序权限进行匹配来确定待分析应用程序的关联信息,从而无需对反编译文件中的反编译代码逐行分析,提高了关联信息的生成效率,进而提高了调用关系分析的处理速度。
在第二实施例中,所述步骤S40,包括:
步骤S401:从所述关联信息中提取所述待分析应用程序的权限调用关联。
需要说明的是,权限调用关联表示待分析应用程序与车机系统中的已安装应用程序的申请权限相同。
应当理解的是,从关联信息中提取待分析应用程序的权限调用关联可以是根据信息标识从关联信息中提取待分析应用程序的权限调用关联。其中,信息标识用于表示信息内容。
步骤S402:根据所述权限调用关联确定所述待分析应用程序的调用关系。
可以理解的是,根据权限调用关联确定待分析应用程序的调用关系可以是将待分析应用程序与车机系统中的已安装应用程序的权限调用关联作为待分析应用程序的调用关系。
在第二实施例中,公开了从关联信息中提取待分析应用程序的权限调用关联,根据权限调用关联确定待分析应用程序的调用关系,从而能够提高调用关系分析的准确性。
参照图4,图4为本发明调用关系分析方法第三实施例的流程示意图,基于上述图3所示的第二实施例,提出本发明调用关系分析方法的第三实施例。
在第三实施例中,所述步骤S304,包括:
步骤S3041:获取所述可执行文件的基础信息,并根据所述基础信息确定所述可执行文件的基础组件。
应当理解的是,在实际应用中,仅依靠权限调用关联生成待分析应用程序的关联信息,精度不够,容易出现误报。因此,为了克服上述缺陷,本实施例中,还引入Intent调用关联来生成关联信息。
需要说明的是,基础信息可以包括文件类型、文件数据以及文件地址等信息。
基础组件可以包括Service、Provider、Activity以及Receiver组件。
可以理解的是,根据基础信息确定可执行文件的基础组件可以是从基础信息提取组件标识,并根据组件标识确定可执行文件的基础组件。
步骤S3042:从所述反编译文件中提取所述基础组件对应的调用代码。
应当理解的是,从反编译文件中提取基础组件对应的调用代码可以是从反编译文件中提取反编译代码,并从反编译代码中筛选基础组件对应的调用代码。
步骤S3043:根据所述调用代码确定所述待分析应用程序的Intent调用关联。
需要说明的是,Intent可以是消息传递对象,使用Intent可以向其他Android组件请求操作。
可以理解的是,根据调用代码确定待分析应用程序的Intent调用关联根据调用代码确定被待分析应用程序启动的应用,判定待分析应用程序与被待分析应用程序启动的应用之间存在Intent调用关联。
进一步地,对调用代码逐行分析,分析效率低,处理速度慢。为了克服上述缺陷,所述步骤S3043,包括:
从所述调用代码中提取包名和组件名称;
根据所述包名和所述组件名称确定所述待分析应用程序的Intent调用关联。
步骤S3044:根据所述权限调用关联和所述Intent调用关联生成所述待分析应用程序的关联信息。
应当理解的是,根据权限调用关联和Intent调用关联生成待分析应用程序的关联信息可以是将权限调用关联和Intent调用关联作为待分析应用程序的关联信息。
在第三实施例中,公开了获取可执行文件的基础信息,并根据基础信息确定可执行文件的基础组件,从反编译文件中提取基础组件对应的调用代码,根据调用代码确定待分析应用程序的Intent调用关联,根据权限调用关联和Intent调用关联生成待分析应用程序的关联信息;由于本实施例还引入Intent调用关联来生成关联信息,从而提高了关联信息的可靠性。
在第三实施例中,所述步骤S402,包括:
步骤S4021:从所述关联信息中提取所述待分析应用程序的Intent调用关联。
需要说明的是,Intent调用关联表示待分析应用程序启动了车机系统中的已安装应用程序。
应当理解的是,从关联信息中提取待分析应用程序的Intent调用关联可以是根据信息标识从关联信息中提取待分析应用程序的Intent调用关联。其中,信息标识用于表示信息内容。
步骤S4022:根据所述权限调用关联和所述Intent调用关联确定所述待分析应用程序的调用关系。
可以理解的是,根据权限调用关联和Intent调用关联确定待分析应用程序的调用关系可以是将待分析应用程序与车机系统中的已安装应用程序权限调用关联和Intent调用关联作为待分析应用程序的调用关系。
在第三实施例中,公开了从关联信息中提取待分析应用程序的Intent调用关联,根据权限调用关联和Intent调用关联确定待分析应用程序的调用关系;由于本实施例中,额外引入了Intent调用关联来确定待分析应用程序的调用关系,从而能够进一步提高调用关系分析的准确性。
参照图5,图5为本发明调用关系分析方法第四实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明调用关系分析方法的第四实施例。
在第四实施例中,所述步骤S10之前,还包括:
步骤S01:在检测到车机系统中的控制指令时,确定所述控制指令是否为调用命令。
应当理解的是,在实际应用中,如果车机系统中不存在调用命令,则说明车机系统中的待分析应用程序不存在调用动作,无法检测待分析应用程序的调用关系。因此,为了避免不必要的资源浪费,本实施例预先检测车机系统中是否存在调用命令,在车机系统中存在调用命令时,才分析待分析应用程序的可执行文件。
需要说明的是,控制指令可以由车机系统中的各应用程序发出,也可以由用户通过车机系统发出,本实施例对此不加以限制。
可以理解的是,确定控制指令是否为调用命令可以是将所述控制指令与预设指令进行匹配,在匹配结果为匹配成功时,判定控制指令为调用指令;在匹配结果为匹配失败时,判定控制指令不为调用指令。其中,预设指令可以预先设置,例如,可以将Runtime.exec()和ProcessBuilder设置为预设指令。
进一步地,考虑到实际应用中,还存在应用程序接收调用指令,不执行调用指令的情况。因此,为了避免误判,所述步骤S01,包括:
在检测到车机系统中的控制指令时,将所述控制指令与预设指令进行匹配,获得匹配结果;
检测所述车机系统中是否存在shell命令执行;
根据所述匹配结果和所述检测结果确定所述控制指令是否为调用命令。
需要说明的是,shell命令用于接收用户命令,并调用相应的应用程序。
应当理解的是,在控制指令与预设指令匹配成功,且车机系统中存在shell命令执行时,说明应用程序接收调用指令,且执行调用指令。因此,可以判定控制指令为调用命令。
在控制指令与预设指令匹配失败,或车机系统中不存在shell命令执行时,说明应用程序未接收到调用指令,或不执行调用指令。因此,可以判定控制指令不为调用命令。
相应地,所述步骤S10,包括:
步骤S10':若是,则获取车机系统中待分析应用程序的可执行文件。
可以理解的是,在检测到车机系统中存在调用命令时,说明待分析应用程序存在调用动作,可以进一步分析待分析应用程序的调用关系。因此,需要获取车机系统中待分析应用程序的可执行文件。
在第四实施例中,公开了在检测到车机系统中的控制指令时,确定控制指令是否为调用命令,若是,则获取车机系统中待分析应用程序的可执行文件;由于本实施例在分析待分析应用程序的可执行文件之前,会预先检测车机系统中是否存在调用命令,从而避免了不必要的资源浪费。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有调用关系分析程序,所述调用关系分析程序被处理器执行时实现如上文所述的调用关系分析方法。
此外,参照图6,本发明实施例还提出一种调用关系分析装置,所述调用关系分析装置包括:文件获取模块10、文件转换模块20、关联分析模块30以及调用分析模块40;
所述文件获取模块10,用于获取车机系统中待分析应用程序的可执行文件。
需要说明的是,待分析应用程序可以是需要进行调用分析的应用程序,待分析应用程序可以由用户预先设置,也可以由调用关系分析设备根据预设筛选条件自动确定,本实施例对此不加限制。其中,预设筛选条件可以预先设置。
可执行文件可以包括dex、jar以及apk等安卓文件。
可以理解的是,获取车机系统中待分析应用程序的可执行文件可以是获取车机系统中待分析应用程序的文件列表,并获取文件列表中各文件的文件格式,根据文件格式从文件列表中选取可执行文件。
所述文件转换模块20,用于将所述可执行文件转换为反编译文件。
需要说明的是,反编译文件可以是smali文件。
应当理解的是,将可执行文件转换为反编译文件可以是通过预设反编译脚本将可执行文件转换成反编译文件。其中,预设反编译脚本可以预先设置。例如,将apktool、dex2jar、jd-gui以及Auto-Sign设置为反编译脚本。
所述关联分析模块30,用于根据所述反编译文件获取所述待分析应用程序的关联信息。
需要说明的是,关联信息用于表示待分析应用程序与车机系统中的已安装应用程序的关联关系。
关联信息可以包括权限调用关联和/或Intent调用关联。其中,权限调用关联表示待分析应用程序与车机系统中的已安装应用程序的申请权限相同,Intent调用关联表示待分析应用程序启动了车机系统中的已安装应用程序。
可以理解的是,根据反编译文件获取待分析应用程序的关联信息可以是从反编译文件中获取反编译代码,对反编译代码逐行分析,获得待分析应用程序的关联信息。
所述调用分析模块40,用于根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系。
应当理解的是,根据关联信息对待分析应用程序进行隐藏调用分析,获得待分析应用程序的调用关系可以是根据关联信息确定待分析应用程序与车机系统中已安装应用程序的调用关联,并将待分析应用程序与车机系统中已安装应用程序的调用关联作为待分析应用程序的调用关系。
需要说明的是,已安装应用程序可以是车机系统中已经安装的应用程序。
在本实施例中,公开了获取车机系统中待分析应用程序的可执行文件,将可执行文件转换为反编译文件,根据反编译文件获取待分析应用程序的关联信息,根据关联信息对待分析应用程序进行隐藏调用分析,获得待分析应用程序的调用关系;由于本实施例中通过将可执行文件转换为反编译文件,并根据反编译文件对待分析应用程序进行隐藏调用分析,从而能够提高了调用关系分析的准确性和效率。
本发明所述调用关系分析装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
本发明公开了A1、一种调用关系分析方法,所述调用关系分析方法包括以下步骤:
获取车机系统中待分析应用程序的可执行文件;
将所述可执行文件转换为反编译文件;
根据所述反编译文件获取所述待分析应用程序的关联信息;
根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系。
A2、如A1所述的调用关系分析方法,所述根据所述反编译文件获取所述待分析应用程序的关联信息的步骤,包括:
根据所述反编译文件确定所述待分析应用程序的申请权限;
获取所述车机系统中已安装应用程序的程序权限;
将所述申请权限与所述程序权限进行匹配,并根据匹配结果确定所述待分析应用程序的权限调用关联;
根据所述权限调用关联生成所述待分析应用程序的关联信息。
A3、如A2所述的调用关系分析方法,所述根据所述反编译文件确定所述待分析应用程序的申请权限的步骤,包括:
从所述反编译文件中提取所述待分析应用程序的权限声明文件;
根据所述权限声明文件确定所述待分析应用程序的申请权限。
A4、如A2所述的调用关系分析方法,所述根据所述权限调用关联生成所述待分析应用程序的关联信息的步骤,包括:
获取所述可执行文件的基础信息,并根据所述基础信息确定所述可执行文件的基础组件;
从所述反编译文件中提取所述基础组件对应的调用代码;
根据所述调用代码确定所述待分析应用程序的Intent调用关联;
根据所述权限调用关联和所述Intent调用关联生成所述待分析应用程序的关联信息。
A5、如A4所述的调用关系分析方法,所述根据所述调用代码确定所述待分析应用程序的Intent调用关联的步骤,包括:
从所述调用代码中提取包名和组件名称;
根据所述包名和所述组件名称确定所述待分析应用程序的Intent调用关联。
A6、如A1至A5中任一项所述的调用关系分析方法,所述根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系的步骤,包括:
从所述关联信息中提取所述待分析应用程序的权限调用关联;
根据所述权限调用关联确定所述待分析应用程序的调用关系。
A7、如A6所述的调用关系分析方法,所述根据所述权限调用关联确定所述待分析应用程序的调用关系的步骤,包括:
从所述关联信息中提取所述待分析应用程序的Intent调用关联;
根据所述权限调用关联和所述Intent调用关联确定所述待分析应用程序的调用关系。
A8、如A1至A5中任一项所述的调用关系分析方法,所述获取车机系统中待分析应用程序的可执行文件的步骤,包括:
获取车机系统中的已安装应用程序;
对所述已安装应用程序进行筛选,获得待分析应用程序;
获取所述待分析应用程序的可执行文件。
A9、如A8所述的调用关系分析方法,所述对所述已安装应用程序进行筛选,获得待分析应用程序的步骤,包括:
通过预设白名单从所述已安装应用程序中选取系统应用程序和库文件;
根据所述系统应用程序和所述库文件对所述已安装应用程序进行筛选,获得待分析应用程序。
A10、如A1至A5中任一项所述的调用关系分析方法,所述获取车机系统中待分析应用程序的可执行文件的步骤之前,还包括:
在检测到车机系统中的控制指令时,确定所述控制指令是否为调用命令;
相应地,所述获取车机系统中待分析应用程序的可执行文件的步骤,包括:
若是,则获取车机系统中待分析应用程序的可执行文件。
A11、如A10所述的调用关系分析方法,所述在检测到车机系统中的控制指令时,确定所述控制指令是否为调用命令的步骤,包括:
在检测到车机系统中的控制指令时,将所述控制指令与预设指令进行匹配,获得匹配结果;
检测所述车机系统中是否存在shell命令执行;
根据所述匹配结果和所述检测结果确定所述控制指令是否为调用命令。
本发明还公开了B12、一种调用关系分析设备,所述调用关系分析设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的调用关系分析程序,所述调用关系分析程序被所述处理器执行时实现如上文所述的调用关系分析方法。
本发明还公开了C13、一种存储介质,所述存储介质上存储有调用关系分析程序,所述调用关系分析程序被处理器执行时实现如上文所述的调用关系分析方法。
本发明还公开了D14、一种调用关系分析装置,所述调用关系分析装置包括:文件获取模块、文件转换模块、关联分析模块以及调用分析模块;
所述文件获取模块,用于获取车机系统中待分析应用程序的可执行文件;
所述文件转换模块,用于将所述可执行文件转换为反编译文件;
所述关联分析模块,用于根据所述反编译文件获取所述待分析应用程序的关联信息;
所述调用分析模块,用于根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系。
D15、如D14所述的调用关系分析装置,所述关联分析模块,还用于根据所述反编译文件确定所述待分析应用程序的申请权限;
所述关联分析模块,还用于获取所述车机系统中已安装应用程序的程序权限;
所述关联分析模块,还用于将所述申请权限与所述程序权限进行匹配,并根据匹配结果确定所述待分析应用程序的权限调用关联;
所述关联分析模块,还用于根据所述权限调用关联生成所述待分析应用程序的关联信息。
D16、如D15所述的调用关系分析装置,所述关联分析模块,还用于从所述反编译文件中提取所述待分析应用程序的权限声明文件;
所述关联分析模块,还用于根据所述权限声明文件确定所述待分析应用程序的申请权限。
D17、如D15所述的调用关系分析装置,所述关联分析模块,还用于获取所述可执行文件的基础信息,并根据所述基础信息确定所述可执行文件的基础组件;
所述关联分析模块,还用于从所述反编译文件中提取所述基础组件对应的调用代码;
所述关联分析模块,还用于根据所述调用代码确定所述待分析应用程序的Intent调用关联;
所述关联分析模块,还用于根据所述权限调用关联和所述Intent调用关联生成所述待分析应用程序的关联信息。
D18、如D17所述的调用关系分析装置,所述关联分析模块,还用于从所述调用代码中提取包名和组件名称;
所述关联分析模块,还用于根据所述包名和所述组件名称确定所述待分析应用程序的Intent调用关联。
D19、如D14至D18中任一项所述的调用关系分析装置,所述调用分析模块,还用于从所述关联信息中提取所述待分析应用程序的权限调用关联;
所述调用分析模块,还用于根据所述权限调用关联确定所述待分析应用程序的调用关系。
D20、如D19所述的调用关系分析装置,所述调用分析模块,还用于从所述关联信息中提取所述待分析应用程序的Intent调用关联;
所述调用分析模块,还用于根据所述权限调用关联和所述Intent调用关联确定所述待分析应用程序的调用关系。
Claims (10)
1.一种调用关系分析方法,其特征在于,所述调用关系分析方法包括以下步骤:
获取车机系统中待分析应用程序的可执行文件;
将所述可执行文件转换为反编译文件;
根据所述反编译文件获取所述待分析应用程序的关联信息;
根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系。
2.如权利要求1所述的调用关系分析方法,其特征在于,所述根据所述反编译文件获取所述待分析应用程序的关联信息的步骤,包括:
根据所述反编译文件确定所述待分析应用程序的申请权限;
获取所述车机系统中已安装应用程序的程序权限;
将所述申请权限与所述程序权限进行匹配,并根据匹配结果确定所述待分析应用程序的权限调用关联;
根据所述权限调用关联生成所述待分析应用程序的关联信息。
3.如权利要求2所述的调用关系分析方法,其特征在于,所述根据所述反编译文件确定所述待分析应用程序的申请权限的步骤,包括:
从所述反编译文件中提取所述待分析应用程序的权限声明文件;
根据所述权限声明文件确定所述待分析应用程序的申请权限。
4.如权利要求2所述的调用关系分析方法,其特征在于,所述根据所述权限调用关联生成所述待分析应用程序的关联信息的步骤,包括:
获取所述可执行文件的基础信息,并根据所述基础信息确定所述可执行文件的基础组件;
从所述反编译文件中提取所述基础组件对应的调用代码;
根据所述调用代码确定所述待分析应用程序的Intent调用关联;
根据所述权限调用关联和所述Intent调用关联生成所述待分析应用程序的关联信息。
5.如权利要求4所述的调用关系分析方法,其特征在于,所述根据所述调用代码确定所述待分析应用程序的Intent调用关联的步骤,包括:
从所述调用代码中提取包名和组件名称;
根据所述包名和所述组件名称确定所述待分析应用程序的Intent调用关联。
6.如权利要求1至5中任一项所述的调用关系分析方法,其特征在于,所述根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系的步骤,包括:
从所述关联信息中提取所述待分析应用程序的权限调用关联;
根据所述权限调用关联确定所述待分析应用程序的调用关系。
7.如权利要求6所述的调用关系分析方法,其特征在于,所述根据所述权限调用关联确定所述待分析应用程序的调用关系的步骤,包括:
从所述关联信息中提取所述待分析应用程序的Intent调用关联;
根据所述权限调用关联和所述Intent调用关联确定所述待分析应用程序的调用关系。
8.一种调用关系分析设备,其特征在于,所述调用关系分析设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的调用关系分析程序,所述调用关系分析程序被所述处理器执行时实现如权利要求1至7中任一项所述的调用关系分析方法。
9.一种存储介质,其特征在于,所述存储介质上存储有调用关系分析程序,所述调用关系分析程序被处理器执行时实现如权利要求1至7中任一项所述的调用关系分析方法。
10.一种调用关系分析装置,其特征在于,所述调用关系分析装置包括:文件获取模块、文件转换模块、关联分析模块以及调用分析模块;
所述文件获取模块,用于获取车机系统中待分析应用程序的可执行文件;
所述文件转换模块,用于将所述可执行文件转换为反编译文件;
所述关联分析模块,用于根据所述反编译文件获取所述待分析应用程序的关联信息;
所述调用分析模块,用于根据所述关联信息对所述待分析应用程序进行隐藏调用分析,获得所述待分析应用程序的调用关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111495168.0A CN116302903A (zh) | 2021-12-08 | 2021-12-08 | 调用关系分析方法、设备、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111495168.0A CN116302903A (zh) | 2021-12-08 | 2021-12-08 | 调用关系分析方法、设备、存储介质及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302903A true CN116302903A (zh) | 2023-06-23 |
Family
ID=86780172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111495168.0A Pending CN116302903A (zh) | 2021-12-08 | 2021-12-08 | 调用关系分析方法、设备、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302903A (zh) |
-
2021
- 2021-12-08 CN CN202111495168.0A patent/CN116302903A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103778373A (zh) | 病毒检测方法及装置 | |
CN112084497A (zh) | 嵌入式Linux系统恶意程序检测方法及装置 | |
CN112749088B (zh) | 应用程序检测方法、装置、电子设备和存储介质 | |
CN111475390A (zh) | 日志采集系统部署方法、装置、设备及存储介质 | |
CN112019609A (zh) | 基于物联网的设备监控方法、装置、设备及计算机介质 | |
CN110852259A (zh) | 活体识别方法、系统、装置、设备及计算机可读存储介质 | |
CN110691090B (zh) | 网站检测方法、装置、设备及存储介质 | |
CN116302903A (zh) | 调用关系分析方法、设备、存储介质及装置 | |
CN109960656B (zh) | 程序的检测方法、装置及电子设备 | |
CN112364340B (zh) | 权限管理方法、装置、设备及计算机可读存储介质 | |
CN111314326A (zh) | Http漏洞扫描主机的确认方法、装置、设备及介质 | |
CN111061637A (zh) | 接口测试方法、接口测试装置及存储介质 | |
CN116305120A (zh) | 一种双重验证的安卓恶意软件混合检测系统及方法 | |
CN112528286B (zh) | 终端设备安全检测方法、关联设备以及计算机程序产品 | |
CN113282906B (zh) | 权限检测方法、装置、终端及存储介质 | |
CN114237931A (zh) | 接口调用的配置方法、装置、计算机设备及存储介质 | |
CN111078571B (zh) | 模拟响应的测试方法、终端设备及计算机可读存储介质 | |
CN110941814B (zh) | 行为验证兼容方法、设备、存储介质及装置 | |
CN109788001B (zh) | 可疑互联网协议地址发现方法、用户设备、存储介质及装置 | |
CN113934198A (zh) | 车辆诊断方法、装置、电子设备及存储介质 | |
CN112579129A (zh) | 基于服务器的软件更新方法、装置、设备及存储介质 | |
CN113420302A (zh) | 主机漏洞检测方法及装置 | |
CN110928754A (zh) | 运维审计方法、装置、设备及介质 | |
CN111797016A (zh) | 应用程序的测试方法、设备、存储介质及装置 | |
CN112000313A (zh) | 请求响应方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231128 Address after: 1739, 17th Floor, 15th Floor, Building 3, No.10 Jiuxianqiao Road, Chaoyang District, Beijing, 100000 Applicant after: Anxinxing (Beijing) Technology Co.,Ltd. Address before: 100020 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing Applicant before: Sanliu0 Digital Security Technology Group Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |