CN113127859B - 待检测文件的检测方法、装置、终端及存储介质 - Google Patents

待检测文件的检测方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN113127859B
CN113127859B CN201911390029.4A CN201911390029A CN113127859B CN 113127859 B CN113127859 B CN 113127859B CN 201911390029 A CN201911390029 A CN 201911390029A CN 113127859 B CN113127859 B CN 113127859B
Authority
CN
China
Prior art keywords
file
target
detected
application program
hash value
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
CN201911390029.4A
Other languages
English (en)
Other versions
CN113127859A (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.)
Wuhan University WHU
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Wuhan University WHU
Guangdong Oppo Mobile Telecommunications Corp 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 Wuhan University WHU, Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Wuhan University WHU
Priority to CN201911390029.4A priority Critical patent/CN113127859B/zh
Publication of CN113127859A publication Critical patent/CN113127859A/zh
Application granted granted Critical
Publication of CN113127859B publication Critical patent/CN113127859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种待检测文件的检测方法、装置、终端及存储介质,涉及终端技术领域。所述方法包括:响应于目标应用程序在Native层动态加载目标待检测文件,获取目标待检测文件;计算目标待检测文件的目标哈希值;根据目标哈希值以及目标应用程序的签名文件中的各个哈希值,检测目标待检测文件是否是目标应用程序在运行过程中下载的文件。本申请实施例通过响应于目标应用程序在Native层动态加载目标待检测文件,获取目标待检测文件,计算目标待检测文件的目标哈希值,根据目标哈希值以及目标应用程序的签名文件中的各个哈希值,检测目标待检测文件是否是目标应用程序在运行过程中下载的文件,提高了终端的安全性。

Description

待检测文件的检测方法、装置、终端及存储介质
技术领域
本申请实施例涉及终端技术领域,特别涉及一种待检测文件的检测方法、装置、终端及存储介质。
背景技术
终端中可以安装有不同的应用程序,以满足用户的不同需求。
在相关技术中,应用程序在安装时会检测是否存在病毒,当确定应用程序不存在病毒时,才会安装该应用程序。然而应用程序在运行一段时间之后会在网络上下载附带恶意程序的可执行文件,并通过动态加载的方式运行这些恶意程序进而对终端造成恶意攻击。因此,检测可执行文件是否是应用程序在运行过程中下载的文件是一个急需解决的问题。
发明内容
本申请实施例提供一种待检测文件的检测方法、装置、终端及存储介质。
所述技术方案如下:
一方面,本申请实施例提供一种待检测文件的检测方法,所方法包括:
响应于目标应用程序在Native层动态加载目标待检测文件,获取所述目标待检测文件;
计算所述目标待检测文件的目标哈希值;
根据所述目标哈希值以及所述目标应用程序的签名文件中的各个哈希值,检测所述目标待检测文件是否是所述目标应用程序在运行过程中下载的文件。
另一方面,本申请实施例提供一种待检测文件的检测装置,所述装置包括:
文件获取模块,用于响应于目标应用程序在Native层动态加载目标待检测文件,获取所述目标待检测文件;
哈希值计算模块,用于计算所述目标待检测文件的目标哈希值;
文件检测模块,用于根据所述目标哈希值以及所述目标应用程序的签名文件中的各个哈希值,检测所述目标待检测文件是否是所述目标应用程序在运行过程中下载的文件。
另一方面,本申请实施例提供一种终端,所述终端包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如上述方面所述的待检测文件的检测方法。
又一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上述方面所述的待检测文件的检测方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过响应于目标应用程序在Native层动态加载目标待检测文件,获取目标待检测文件,计算目标待检测文件的目标哈希值,根据目标哈希值以及目标应用程序的签名文件中的各个哈希值,检测目标待检测文件是否是目标应用程序在运行过程中下载的文件,操作简单易实现,提高了终端的安全性。
附图说明
图1是本申请一个实施例提供的待检测文件的检测方法的流程图;
图2是本申请另一个实施例提供的待检测文件的检测方法的流程图;
图3是本申请一个实施例提供的DEX文件的加载示意图;
图4是本申请又一个实施例提供的待检测文件的检测方法的流程图;
图5是本申请一个实施例提供的待检测文件的检测装置的框图;
图6是本申请一个实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的技术方案,各步骤的执行主体可以是终端,例如,手机、平板电脑、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等。终端中安装有不同的应用程序,例如,视频类应用程序、社交类应用程序、购物类应用程序、拍摄类应用程序等,本申请实施例对终端中安装的应用程序的类型不作限定。本申请实施例提供的技术方案,适用于Android(安卓)操作系统的终端中,该Android操作系统可以是Android原生的操作系统,也可以是其它一些基于Android操作系统开发的定制化操作系统,在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为终端进行介绍,但对此不构成限定。
请参考图1,其示出了本申请一个实施例提供的待检测文件的检测方法的流程图。该方法可以包括如下几个步骤。
步骤101,响应于目标应用程序在Native层动态加载目标待检测文件,获取目标待检测文件。
目标应用程序可以是终端中安装的任意一个应用程序。应用程序可以是系统应用程序,也可以是第三方应用程序。在本申请实施例中,对应用程序的种类不作限定,如其可以是视频类应用程序、社交类应用程序、购物类应用程序、拍摄类应用程序等。
Native层属于Android系统的一部分,Native层可以理解为本地框架层,Native层中存储一些本地服务和链接库,Native层可以通过C和C++语言实现。
目标待检测文件是指需要检测的文件,目标待检测文件包括以下任意一项:目标DEX(Dexterity)文件、目标APK(Android Application Package,安卓应用程序包)文件、目标JAR文件。目标DEX文件是Android系统中可执行文件的类型,目标JAR文件是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件。目标APK文件是Android系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。
步骤102,计算目标待检测文件的目标哈希值。
目标哈希值可以是SHA(Secure Hash Algorithm,安全哈希算法)-256Hash值,SHA-256Hash值的消息摘要长度为256位。目标哈希值是唯一的,用于唯一表征目标待检测文件。
步骤103,根据目标哈希值以及目标应用程序的签名文件中的各个哈希值,检测目标待检测文件是否是目标应用程序在运行过程中下载的文件。
目标应用程序的签名文件是目标应用程序在安装时获取到的文件,是目标应用程序的安装包中的文件。
由于不同文件的哈希值不一样,通过比对目标待检测文件的目标哈希值和目标应用程序的签名文件中的各个哈希值,可以检测目标待检测文件是否是目标应用程序在运行过程中下载的文件。
本申请实施例在Native层监控是否有待检测文件动态加载,当有动态加载时通过跟应用程序安装时备份的签名文件中的各个哈希值进行比对判断该待检测文件是否是应用程序在运行过程中下载的文件。在加载流程中添加代码,使用比对签名文件的方法判断其动态加载的待检测文件是否为运行时下载的,既简单易实现,系统运行性能影响较小,又可尽可能减少漏判的可能。
综上所述,本申请实施例提供的技术方案中,通过响应于目标应用程序在Native层动态加载目标待检测文件,获取目标待检测文件,计算目标待检测文件的目标哈希值,根据目标哈希值以及目标应用程序的签名文件中的各个哈希值,检测目标待检测文件是否是目标应用程序在运行过程中下载的文件,操作简单易实现,提高了终端的安全性。
请参考图2,其示出了本申请另一个实施例提供的待检测文件的检测方法的流程图。该方法可以包括如下几个步骤。
步骤201,响应于目标应用程序在Native层动态加载目标待检测文件,获取位置参数。
在本申请实施例中,位置参数用于指示目标待检测文件的加载路径。以目标待检测文件为目标DEX文件为例,位置参数可以表示为dex_location。
步骤202,根据位置参数,确定加载路径。
例如,dex_location指示system:\xxxx,则终端可以确定加载路径为system:\xxxx。
步骤203,从加载路径中获取目标待检测文件。
终端从system:\xxxx中获取目标DEX文件。
以目标待检测文件为目标DEX文件、签名文件为MANIFEST.MF文件为例进行介绍说明,请参考图3,其示出了本申请一个实施例提供的DEX文件的加载示意图。
首先终端需要修改应用程序安装过程中会调用到的getminpackageinfo()等函数内容,解压出APK中的MANIFEST.MF文件(签名文件)。
简单介绍一下Native层的DEX文件加载流程部分:DEX文件加载过程从在Java层传入DEX文件的加载路径,创建一个DEXClassLoader类加载器开始,经过一系列函数调用直到DexFile.java的openDexFile()调用openDexFileNative()函数,加载过程正式从Java层进入Native层。
Native层的对应函数为dalvik_system_DexFile.cc的DexFileopenDexFileNative(),该函数首先获取当前runtime(运行时刻)实例和classlinker,创建一个名为dexfiles的容器,它的主要作用是调用函数OpenDexFilesFromOat()获取Dex文件,并返回给dex files。
OpenDexFilesFromOat()函数主要构造一个OatFileAssistant对象,它用来协助Dex文件解析成oat文件,它的构造函数内会首先获取Dex文件的真实加载路径,然后检查isa,之后调用DexLocationToOdexFilename()获取odex name,调用DexLocationToOatFilename()获取oat name,并会根据有无odex文件、oat文件和它们的状态来给status赋值。根据oat file的状态,调用函数IsUpToDate()判断是否需要更新/生成oat文件,需要更新则调用MakeUpToDate()来更新oat文件。然后调用GetBestOatFile()返回一个可以加载Dex文件的oat文件。之后会进行一些检查,然后调用RegisterOatFile()将oatfile赋给sourceoatfile,再赋给outoatfile。注册其实就是将oatfile插入到oatiles表中。最后从oat文件中提取出Dex文件,调用LoadDexFiles()从oat文件中加载Dex文件。
如果通过前面的操作,无法顺利加载Dex文件,且原始的Dex文件仍然可访问,就直接调用DexFile::Open()函数,直接传入dex_loaction等参数,尝试加载Dex文件。
可选地,本申请实施例可以在Native层加载流程中,在oat_file_manager.cc的OpenDexFilesFromOat()中添加监控,以捕捉加载的Dex文件。
步骤204,计算目标待检测文件的目标哈希值。
步骤205,将目标哈希值与签名文件中的各个哈希值进行比对。
用本次计算的SHA-256Hash值对比MANIFEST.MF中的JAR、Dex、APK文件所对应的SHA-256Hash值,根据对比结果判断,当前者的SHA-256Hash值不曾在MANIFEST.MF记录,则判断为应用运行时下载的动态加载的文件。
步骤206,当签名文件中的各个哈希值与目标哈希值不同时,确定目标待检测文件是目标应用程序在运行过程中下载的文件。
由于每个文件的哈希值是不一样的,如果目标待检测文件是目标应用程序在运行过程中下载的文件,那么目标待检测文件的哈希值是不会出现在签名文件中的。因此,当签名文件中的各个哈希值与目标哈希值不同时,确定目标待检测文件是目标应用程序在运行过程中下载的文件。
在示意性实施例中,以签名文件为MANIFEST.MF文件进行介绍说明。如图4所示,终端还可以执行以下步骤:
1、在安装目标应用程序时,提取目标应用程序的安装包中的目标MANIFEST.MF文件;
2、将目标MANIFEST.MF文件存储至目标目录下,目标目录用于存储终端中安装的各个应用程序的安装包中的MANIFEST.MF文件;
首个APK的MANIFEST.MF文件备份到目标目录下,后续APK的MANIFEST.MF文件以追加的方式存到前者MANIFEST.MF文件中。MANIFEST.MF文件的存储方式统一,有利于后续分析流程。
3、将目标哈希值与目标目录下的各个MANIFEST.MF文件中的各个哈希值进行比对;
例如,目标目录下存在3个MANIFEST.MF文件,则终端将目标哈希值与该3个MANIFEST.MF文件中的各个哈希值进行比对。
4、当目标目录下的各个MANIFEST.MF文件中的各个哈希值与目标哈希值不同时,确定目标待检测文件是目标应用程序在运行过程中下载的文件。
仍然以上述示例为例,当上述3个MANIFEST.MF文件中的各个哈希值与目标哈希值不同时,确定目标待检测文件是目标应用程序在运行过程中下载的文件。
可选地,在终端提取目标应用程序的安装包中的目标MANIFEST.MF文件之后,终端还可以执行下述流程:
在一个可能的实现方式中,终端获取目标MANIFEST.MF文件中的压缩包,压缩包包括Java归档JAR压缩包或安卓安装包APK压缩包;获取压缩包内的MANIFEST.MF文件;将压缩包内的MANIFEST.MF文件存储至目标目录下。
在另一个可能的实现方式中,终端获取目标MANIFEST.MF文件中的未加密ZIP文件;计算解压后的未加密ZIP文件的哈希值;将解压后的未加密ZIP文件的哈希值存储至目标目录下。
在又一个可能的实现方式中,终端获取目标MANIFEST.MF文件中的META-INF文件夹;计算META-INF文件夹内各个文件的哈希值;将META-INF文件夹内各个文件的哈希值存储至目标目录下。
在应用程序安装时获取其MANIFEST.MF文件,考虑到该MF文件可能并未记录所有文件信息,如应用内有JAR/APK压缩包、ZIP文件等,可添加方法:对于应用目录的JAR/APK压缩包,获取内部的MF文件,把它加到备份的MF文件中;对于未加密的ZIP文件,计算解压后的文件的哈希值,加入MF文件中。同时MF文件中不包括META-INF文件夹内文件的哈希值,在获取安装内的MF文件时,判断META-INF文件夹内有无额外的文件,有的话计算其哈希值,一并加入到MF文件内。本申请实施例提供的技术方案,通过遍历应用程序安装时的安装包,将所有的哈希值都存储到MF文件中,可以有效减少漏判的情况。
可选地,若确定目标待检测文件是目标应用程序在运行过程中下载的文件,则终端对目标待检测文件进行安全检测操作,安全检测操作包括以下至少一项:加壳检测操作、敏感函数检测操作,恶意程序检测操作。加壳检测操作是指检测是否加壳的操作,敏感函数检测操作是指检测是否存在敏感函数的操作,恶意程序检测操作是指检测是否附带恶意程序的操作。加壳是指在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的操作。敏感函数可以是指获取用户个人信息、个人位置、个人通话信息等敏感数据的函数。本申请实施例可以结合杀毒引擎进行安全检测操作,从而有效提高系统安全性。
在可能的实现方式中,终端会获取当前进程的pid(process identifier,进程标识符)和父进程的pid,当前进程的pid用于指示加载目标待检测文件的进程,父进程的pid用于指示运行目标应用程序的进程。当终端对目标待检测文件进行安全检测后,发现该目标待检测文件是危险文件时,终端将根据当前进程的pid关闭当前进程,并根据父进程的pid对目标应用程序做更进一步的检测,以排除该目标应用程序是危险应用程序的可能性。
综上所述,本申请实施例提供的技术方案中,通过检测动态加载的目标待检测文件是否是目标应用程序在运行过程中下载的文件,实时掌握监控应用程序运行时下载的代码文件动态加载的情况,可以有针对性地对此类动态加载的文件进行下一步的安全检测操作,有效杜绝应用程序通过动态加载代码企图实施恶意攻击的行为,提高系统病毒查杀能力,提高系统安全性。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图5,其示出了本申请一个实施例提供的待检测文件的检测装置的框图,该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置500可以包括:文件获取模块510、哈希值计算模块520和文件检测模块530。
文件获取模块510,用于响应于目标应用程序在Native层动态加载目标待检测文件,获取所述目标待检测文件。
哈希值计算模块520,用于计算所述目标待检测文件的目标哈希值。
文件检测模块530,用于根据所述目标哈希值以及所述目标应用程序的签名文件中的各个哈希值,检测所述目标待检测文件是否是所述目标应用程序在运行过程中下载的文件。
综上所述,本申请实施例提供的技术方案中,通过响应于目标应用程序在Native层动态加载目标待检测文件,获取目标待检测文件,计算目标待检测文件的目标哈希值,根据目标哈希值以及目标应用程序的签名文件中的各个哈希值,检测目标待检测文件是否是目标应用程序在运行过程中下载的文件,操作简单易实现,提高了终端的安全性。
可选地,所述文件获取模块510,用于:
获取位置参数,所述位置参数用于指示所述目标待检测文件的加载路径;
根据所述位置参数,确定所述加载路径;
从所述加载路径中获取所述目标待检测文件。
可选地,所述文件检测模块530,用于:
将所述目标哈希值与所述签名文件中的各个哈希值进行比对;
当所述签名文件中的各个哈希值与所述目标哈希值不同时,确定所述目标待检测文件是所述目标应用程序在运行过程中下载的文件。
可选地,所述装置500,还包括:文件存储模块(图中未示出)。
所述文件获取模块510,还用于在安装所述目标应用程序时,提取所述目标应用程序的安装包中的目标MANIFEST.MF文件;
文件存储模块,用于将所述目标MANIFEST.MF文件存储至目标目录下,所述目标目录用于存储终端中安装的各个应用程序的安装包中的MANIFEST.MF文件;
所述文件检测模块530,用于:
将所述目标哈希值与所述目标目录下的各个MANIFEST.MF文件中的各个哈希值进行比对;
当所述目标目录下的各个MANIFEST.MF文件中的各个哈希值与所述目标哈希值不同时,确定所述目标待检测文件是所述目标应用程序在运行过程中下载的文件。
可选地,所述文件获取模块510,还用于:
获取所述目标MANIFEST.MF文件中的压缩包,所述压缩包包括Java归档JAR压缩包或安卓安装包APK压缩包;获取所述压缩包内的MANIFEST.MF文件;将所述压缩包内的MANIFEST.MF文件存储至所述目标目录下;
或者,
获取所述目标MANIFEST.MF文件中的未加密ZIP文件;计算解压后的所述未加密ZIP文件的哈希值;将解压后的所述未加密ZIP文件的哈希值存储至所述目标目录下;
或者,
获取所述目标MANIFEST.MF文件中的META-INF文件夹;计算所述META-INF文件夹内各个文件的哈希值;将所述META-INF文件夹内各个文件的哈希值存储至所述目标目录下。
可选地,所述文件检测模块530,还用于:
若确定所述目标待检测文件是所述目标应用程序在运行过程中下载的文件,则对所述目标待检测文件进行安全检测操作,所述安全检测操作包括以下至少一项:加壳检测操作、敏感函数检测操作,恶意程序检测操作。
可选地,所述目标待检测文件包括以下任意一项:目标DEX文件、目标APK文件、目标JAR文件。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图6,其示出了本申请一个实施例提供的终端的结构框图。
本申请实施例中的终端可以包括一个或多个如下部件:处理器610和存储器620。
处理器610可以包括一个或者多个处理核心。处理器610利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器620内的指令、程序、代码集或指令集,以及调用存储在存储器620内的数据,执行终端的各种功能和处理数据。可选地,处理器610可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器610可集成中央处理器(CentralProcessing Unit,CPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器610中,单独通过一块芯片进行实现。
可选地,处理器610执行存储器620中的程序指令时实现上述各个方法实施例提供的方法。
存储器620可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器620包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器620可用于存储指令、程序、代码、代码集或指令集。存储器620可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据终端的使用所创建的数据等。
上述终端的结构仅是示意性的,在实际实现时,终端可以包括更多或更少的组件,比如:显示屏等,本实施例对此不作限定。
本领域技术人员可以理解,图6中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由计算机设备的处理器加载并执行以实现上述待检测文件的检测方法实施例中的各个步骤。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述待检测文件的检测方法。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (8)

1.一种待检测文件的检测方法,其特征在于,所述方法包括:
获取位置参数,所述位置参数用于指示目标待检测文件的加载路径;
根据所述位置参数,确定所述加载路径,所述加载路径用于指示所述目标待检测文件从Java层进入Native层的加载过程;
响应于目标应用程序在所述Native层动态加载所述目标待检测文件,从所述加载路径中获取所述目标待检测文件;
计算所述目标待检测文件的目标哈希值;
根据所述目标哈希值以及所述目标应用程序的签名文件中的各个哈希值,检测所述目标待检测文件是否是所述目标应用程序在运行过程中下载的文件,所述签名文件是所述目标应用程序在安装时获取到的,所述目标应用程序的安装包中的文件;
若确定所述目标待检测文件是所述目标应用程序在运行过程中下载的文件,则对所述目标待检测文件进行安全检测操作,所述安全检测操作包括以下至少一项:加壳检测操作、敏感函数检测操作,恶意程序检测操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标哈希值以及所述目标应用程序的签名文件中的各个哈希值,检测所述目标待检测文件是否是所述目标应用程序在运行过程中下载的文件,包括:
将所述目标哈希值与所述签名文件中的各个哈希值进行比对;
当所述签名文件中的各个哈希值与所述目标哈希值不同时,确定所述目标待检测文件是所述目标应用程序在运行过程中下载的文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在安装所述目标应用程序时,提取所述目标应用程序的安装包中的目标MANIFEST.MF文件;
将所述目标MANIFEST.MF文件存储至目标目录下,所述目标目录用于存储终端中安装的各个应用程序的安装包中的MANIFEST.MF文件;
所述根据所述目标哈希值以及所述目标应用程序的签名文件中的各个哈希值,检测所述目标待检测文件是否是所述目标应用程序在运行过程中下载的文件,包括:
将所述目标哈希值与所述目标目录下的各个MANIFEST.MF文件中的各个哈希值进行比对;
当所述目标目录下的各个MANIFEST.MF文件中的各个哈希值与所述目标哈希值不同时,确定所述目标待检测文件是所述目标应用程序在运行过程中下载的文件。
4.根据权利要求3所述的方法,其特征在于,所述提取所述目标应用程序的安装包中的目标MANIFEST.MF文件之后,还包括:
获取所述目标MANIFEST.MF文件中的压缩包,所述压缩包包括Java归档JAR压缩包或安卓安装包APK压缩包;获取所述压缩包内的MANIFEST.MF文件;将所述压缩包内的MANIFEST.MF文件存储至所述目标目录下;
或者,
获取所述目标MANIFEST.MF文件中的未加密ZIP文件;计算解压后的所述未加密ZIP文件的哈希值;将解压后的所述未加密ZIP文件的哈希值存储至所述目标目录下;
或者,
获取所述目标MANIFEST.MF文件中的META-INF文件夹;计算所述META-INF文件夹内各个文件的哈希值;将所述META-INF文件夹内各个文件的哈希值存储至所述目标目录下。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述目标待检测文件包括以下任意一项:目标DEX文件、目标APK文件、目标JAR文件。
6.一种待检测文件的检测装置,其特征在于,所述装置包括:
文件获取模块,用于获取位置参数,所述位置参数用于指示目标待检测文件的加载路径;根据所述位置参数,确定所述加载路径,所述加载路径用于指示所述目标待检测文件从Java层进入Native层的加载过程;响应于目标应用程序在所述Native层动态加载所述目标待检测文件,从所述加载路径中获取所述目标待检测文件;
哈希值计算模块,用于计算所述目标待检测文件的目标哈希值;
文件检测模块,用于根据所述目标哈希值以及所述目标应用程序的签名文件中的各个哈希值,检测所述目标待检测文件是否是所述目标应用程序在运行过程中下载的文件,所述签名文件是所述目标应用程序在安装时获取到的,所述目标应用程序的安装包中的文件;若确定所述目标待检测文件是所述目标应用程序在运行过程中下载的文件,则对所述目标待检测文件进行安全检测操作,所述安全检测操作包括以下至少一项:加壳检测操作、敏感函数检测操作,恶意程序检测操作。
7.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至5任一项所述的待检测文件的检测方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至5任一项所述的待检测文件的检测方法。
CN201911390029.4A 2019-12-30 2019-12-30 待检测文件的检测方法、装置、终端及存储介质 Active CN113127859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911390029.4A CN113127859B (zh) 2019-12-30 2019-12-30 待检测文件的检测方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911390029.4A CN113127859B (zh) 2019-12-30 2019-12-30 待检测文件的检测方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN113127859A CN113127859A (zh) 2021-07-16
CN113127859B true CN113127859B (zh) 2024-04-12

Family

ID=76767523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911390029.4A Active CN113127859B (zh) 2019-12-30 2019-12-30 待检测文件的检测方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN113127859B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101019106A (zh) * 2005-02-14 2007-08-15 松下电器产业株式会社 应用程序执行装置、管理方法和程序
CN104834862A (zh) * 2015-03-25 2015-08-12 南京大学 一种安卓权限提升攻击的全面静态分析系统
CN106293790A (zh) * 2015-05-28 2017-01-04 Tcl集团股份有限公司 基于Firefox操作系统的应用程序升级方法和装置
CN106528086A (zh) * 2016-10-10 2017-03-22 广州视源电子科技股份有限公司 一种安卓软件升级的方法及系统
CN106971098A (zh) * 2016-10-11 2017-07-21 阿里巴巴集团控股有限公司 一种防重打包的方法及其装置
CN109391673A (zh) * 2018-04-16 2019-02-26 深圳思为科技有限公司 一种管理更新文件的方法、系统及终端设备
CN109960932A (zh) * 2017-12-22 2019-07-02 北京安天网络安全技术有限公司 文件检测方法、装置和终端设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101019106A (zh) * 2005-02-14 2007-08-15 松下电器产业株式会社 应用程序执行装置、管理方法和程序
CN104834862A (zh) * 2015-03-25 2015-08-12 南京大学 一种安卓权限提升攻击的全面静态分析系统
CN106293790A (zh) * 2015-05-28 2017-01-04 Tcl集团股份有限公司 基于Firefox操作系统的应用程序升级方法和装置
CN106528086A (zh) * 2016-10-10 2017-03-22 广州视源电子科技股份有限公司 一种安卓软件升级的方法及系统
CN106971098A (zh) * 2016-10-11 2017-07-21 阿里巴巴集团控股有限公司 一种防重打包的方法及其装置
CN109960932A (zh) * 2017-12-22 2019-07-02 北京安天网络安全技术有限公司 文件检测方法、装置和终端设备
CN109391673A (zh) * 2018-04-16 2019-02-26 深圳思为科技有限公司 一种管理更新文件的方法、系统及终端设备

Also Published As

Publication number Publication date
CN113127859A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN107038045B (zh) 加载库文件的方法及装置
EP3647981B1 (en) Security scanning method and apparatus for mini program, and electronic device
US9596257B2 (en) Detection and prevention of installation of malicious mobile applications
US10581879B1 (en) Enhanced malware detection for generated objects
CN105427096B (zh) 支付安全沙箱实现方法及系统与应用程序监控方法及系统
US8726387B2 (en) Detecting a trojan horse
CN109635523B (zh) 应用程序检测方法、装置及计算机可读存储介质
KR20150044490A (ko) 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법
CN103793649A (zh) 通过云安全扫描文件的方法和装置
CN111448552A (zh) 设备事件的观察和分类
CN115859274A (zh) 一种监控Windows进程清空系统事件日志行为的方法及系统
CN110210216B (zh) 一种病毒检测的方法以及相关装置
KR101803888B1 (ko) 유사도 기반 악성 어플리케이션 탐지 방법 및 장치
CN113127859B (zh) 待检测文件的检测方法、装置、终端及存储介质
KR101473658B1 (ko) 필터를 이용한 클라우드 기반 악성코드 진단장치, 시스템 및 방법
US8677495B1 (en) Dynamic trap for detecting malicious applications in computing devices
CN112395603B (zh) 基于指令执行序列特征的漏洞攻击识别方法、装置及计算机设备
CN110704131B (zh) 一种html5应用调用原生应用的方法和装置
CN112395593B (zh) 指令执行序列的监测方法及装置、存储介质、计算机设备
CN113132421B (zh) 文件检测方法、装置、终端及存储介质
CN111722994A (zh) 一种任务请求的响应方法及设备
CN110020530B (zh) 用于确定应用程序在运行时的安全性的方法及其装置
Choi et al. Large-scale analysis of remote code injection attacks in android apps
CN106709331B (zh) 一种消息钩子防注入方法、装置以及客户端
CN113127860B (zh) 可执行文件的检测方法、装置、终端及存储介质

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