CN105046113B - 基于随机性检验的Android软件加固检测方法 - Google Patents
基于随机性检验的Android软件加固检测方法 Download PDFInfo
- Publication number
- CN105046113B CN105046113B CN201510316849.4A CN201510316849A CN105046113B CN 105046113 B CN105046113 B CN 105046113B CN 201510316849 A CN201510316849 A CN 201510316849A CN 105046113 B CN105046113 B CN 105046113B
- Authority
- CN
- China
- Prior art keywords
- test
- randomness
- inspection
- files
- software
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 52
- 238000001583 randomness test Methods 0.000 title claims abstract description 39
- 238000012360 testing method Methods 0.000 claims abstract description 79
- 238000012549 training Methods 0.000 claims abstract description 19
- 238000007689 inspection Methods 0.000 claims description 42
- 229910002056 binary alloy Inorganic materials 0.000 claims description 13
- 238000001787 Wald–Wolfowitz test Methods 0.000 claims description 12
- 238000005295 random walk Methods 0.000 claims description 12
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 7
- 230000009182 swimming Effects 0.000 claims 2
- 239000007787 solid Substances 0.000 claims 1
- 230000003014 reinforcing effect Effects 0.000 abstract description 15
- 238000000034 method Methods 0.000 description 33
- 238000013461 design Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000010998 test method Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000003556 assay Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000012141 concentrate Substances 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002787 reinforcement Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000000700 radioactive tracer Substances 0.000 description 1
- 230000007115 recruitment Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Investigating Or Analysing Biological Materials (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明是关于一种基于随机性检验的Android软件加固检测方法,其特征在于包括以下步骤:步骤S1,将训练样本集进行预处理后,再通过随机性检测计算确定阈值;步骤S2,将待测apk文件进行预处理后,再通过随机性检测计算得到测试数据;步骤S3,将该测试数据与该阈值进行比对,若该测试数据属于该阈值的范围内,则该待测apk文件为加固的文件,若该测试数据不属于该阈值的范围内,则该待测apk文件不是加固的文件。本发明提出的检测方法对于加固软件的检测是有效的并有较高的准确率和较低的误报率,有助于发现潜在的恶意软件。
Description
技术领域
本发明有关于一种软件检测方法,尤其是有关于一种基于随机性检验的Android软件加固检测方法。
背景技术
随着软件的迅速发展和快速传播,软件面临的威胁日益增多,其安全保护问题受到人们越来越多的关注。目前,针对软件的恶意攻击方法主要有软件盗版、逆向工程技术和软件代码篡改,软件加固是保护软件抵抗威胁的重要手段。常见的软件加固手段有代码混淆技术、防调试追踪技术、完整性校验、软件水印技术、白盒加密技术和软件加壳技术等。但是,相比于传统的PC平台,Android是开源的系统,开发者可以根据需求定制并开发各种各样的操作系统;而且比起其他操作系统,Android应用程序使用的开发语言主要是java,由于其二进制文件中包含了更多的类型信息,使得编译后的二进制代码classes.dex文件极易被攻击者反编译从而绕开Android的安全保护机制。总之,由于Android自身的体系结构和安全保护机制的特性,无法直接将传统PC端的软件保护技术应用到Android平台。
Android平台现有的软件保护技术有代码混淆、软件水印、反跟踪调试、软件加壳、白盒加密等。其中,软件加壳是防止软件被静态反编译或者非法篡改的常用手段,壳对可执行文件进行压缩或者加密,先于原始程序获得控制权,壳在执行过程中对原始程序进行解压缩或者解密,还原后再把程序控制权交还给原始程序。加壳软件根据加壳目的和作用可以分为两类:一是压缩壳,二是加密壳。PC平台现已有大量标准的加壳和脱壳工具,但是目前Android平台市场上针对apk的保护主要是基于dex,公开的加壳工具有DexGuard、梆梆、爱加密、ApkProtect等。软件加壳效果评估标准之一是成功效率,即检验待保护软件是否成功被加密。但是当前检验软件是否加壳一般使用人工分析,并没有有效的大批量自动化检验方法。
对于使用加密算法进行加壳的移动平台,检验当前软件是否加壳,即检验当前应用软件中是否使用了针对整体文件的加密算法。随机性测试可以检测密码算法的输出序列是否符合随机性要求,为算法能够安全运行提供保证。因此,通过随机性测试是保证加密算法安全性的前提和基础。
人们研究了多种随机序列应该满足的性质,并以此为准对所产生的序列的随机程度进行度量。目前,已公开的随机性测试方法不下数百种。不同的随机性测试方法针对不同特性的测试序列,原理并没有显著差别。迄今为止,国内外相关研究人员提出了许多种随机数生成方法,如平方取中法、同余法、斐波那契数列变形法、混沌序列法、利用系统时间和热噪声等等,同时对生成的随机数的随机性测试方法也是在不断地发展。DIEHARD测试方法和美国国家技术标准局提出的密码模块所使用的随机数发生器性能统计检测方法是比较常用的测试方法。
基于以上的分析,以随机性作为移动软件加固前后的指标是可行的。但是,以随机性作为检验软件加固的标准目前并没有学者涉及。
由此可见,上述现有的软件加固的检测方法在使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为了解决上述存在的问题,相关厂商莫不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而一般产品又没有适切结构能够解决上述问题,此显然是相关业者急欲解决的问题。
发明内容
本发明的目的在于克服现有的软件加固检测方法存在的不足,而提供一种基于随机性检验的Android软件加固检测方法。
本发明的目的是采用以下技术方案来实现的。本发明提出一种基于随机性检验的Android软件加固检测方法,其包括以下步骤:步骤S1,将训练样本集进行预处理后,再通过随机性检测计算确定阈值;步骤S2,将待测apk文件进行预处理后,再通过随机性检测计算得到测试数据;步骤S3,将该测试数据与该阈值进行比对,若该测试数据属于该阈值的范围内,则该待测apk文件为加固的文件,若该测试数据不属于该阈值的范围内,则该待测apk文件不是加固的文件。
本发明的目的还可采用以下技术措施进一步实现。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S1中的训练样本集包括:未加固的apk文件和加固过的同样的apk文件。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S1中的将训练样本集进行预处理包括:步骤S11,将训练样本集中的各个apk文件解压,提取apk序列的classes.dex文件;步骤S12,将所述的classes.dex文件输入随机性测试工具,进行二进制分块。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S1包括:将通过二进制分块所得的各个模块进行随机性检测计算,从而确定阈值。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S2中的将待测apk文件进行预处理包括:步骤S21,将待测apk文件解压,提取apk序列的classes.dex文件;步骤S22,将所述的classes.dex文件输入随机性测试工具,进行二进制分块。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S2包括:将通过二进制分块所得的各个模块进行随机性检测计算,从而得到测试数据。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S1中的随机性检测计算包括:频率检验、块内频数检验、游程检验、块内最长游程检验、二元矩阵秩检验、离散傅里叶变换检验、非重叠模块匹配检验、重叠模块匹配检验、Maurer的通用统计检验、Lempel-Ziv压缩检验、线性复杂度检验、序列检验、近似熵检验、累加和检验、随机游动检验、随机游动状态频数检验中的至少一种。
较佳的,前述的基于随机性检验的Android软件加固检测方法,其中所述步骤S2中的随机性检测计算包括:频率检验、块内频数检验、游程检验、块内最长游程检验、二元矩阵秩检验、离散傅里叶变换检验、非重叠模块匹配检验、重叠模块匹配检验、Maurer的通用统计检验、Lempel-Ziv压缩检验、线性复杂度检验、序列检验、近似熵检验、累加和检验、随机游动检验、随机游动状态频数检验中的至少一种。
借由上述技术方案,本发明基于随机性检验的Android软件加固检测方法至少具有下列优点及有益效果:本发明提出的检验方法对于加固软件的检测是有效的并有较高的准确率和较低的误报率,有助于发现潜在的恶意软件。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1是本发明的Android加固软件检测方法的示意图。
图2是样本集B的线性复杂度检验的结果示意图。
图3是样本集B的非重叠模块匹配检验的结果示意图。
图4是样本集B的重叠模块匹配检验的结果示意图。
【主要元件符号说明】
A、B、Q:样本集
TPR:准确率
TP:成功被检测出的软件个数
FN:被误检测为未加固软件的加固软件个数
FPR:误报率
FP:被误报为加固软件的未加固软件个数
TN:正确分类的未加固软件个数
R:判断结果
P-value:随机概率/通过数
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于随机性检验的Android软件加固检测方法的具体实施方式、结构、特征及其功效,详细说明如后。
申请人通过对移动平台上的加固方法进行深入分析,发现由于移动平台架构和硬件等的局限,目前移动平台上的加固方法以加密壳为主。序列经过加密算法处理前后的随机性会有明显变化,根据这种变化的随机性分布图,可以判断当前检测序列是否进行过加固。
在美国国家标准技术研究院(NIST)制定的16种测试方法中,本发明既考虑到测试序列随机特性测试的全面性,又兼顾测试效率,最终选定非重叠模块匹配检验、重叠模块匹配检测和线性复杂度检验三种测试方法作为示例,但是,不同的随机性测试方法针对不同特性的测试序列,原理并没有显著差别,因此,本发明并不限制随机性测试方法的类型,也可采用频率检验、块内频数检验、游程检验、块内最长游程检验、二元矩阵秩检验、离散傅里叶变换检验、Maurer的通用统计检验、Lempel-Ziv压缩检验、序列检验、近似熵检验、累加和检验、随机游动检验、随机游动状态频数检验中的任意一种或多种。
非重叠模板匹配测试是用于检测待检测序列中,子序列是否与许多非周期模板相匹配,如果匹配较多,则该序列是非随机的。重叠模板匹配测试是用于统计待检测序列中,设定长度的连续“I”的数目,是否与真随机序列的情况偏离太大,如果偏离太大,则该序列是非随机的。线性复杂度测试是用于确定待检测序列是否足够复杂,如果是,则该序列是随机的。这三种常用的随机性测试方法,从不同的角度出发考量测试序列的随机特性,理论和实际意义明显。
请参阅图1,是本发明的Android加固软件检测的示意图,包括以下步骤:
步骤S1,将训练样本集进行预处理后,再通过随机性检测计算确定阈值;
其中,训练样本集包括:未加固的apk文件和利用梆梆等加固平台加固过的同样的apk文件。更加具体的,步骤S1是按照以下步骤实现的:首先,将训练样本集进行预处理:将训练样本集中的各个apk文件(包括未加固的apk文件和加固过的apk文件)解压,提取解压后得到的各apk序列的classes.dex文件;将该classes.dex文件输入随机性测试工具,进行二进制分块。然后,将通过二进制分块所得的各个模块进行随机性检测计算,从而确定阈值。其中,步骤S1中的随机性检测计算包括:频率检验、块内频数检验、游程检验、块内最长游程检验、二元矩阵秩检验、离散傅里叶变换检验、非重叠模块匹配检验、重叠模块匹配检验、Maurer的通用统计检验、Lempel-Ziv压缩检验、线性复杂度检验、序列检验、近似熵检验、累加和检验、随机游动检验、随机游动状态频数检验中的至少一种。
步骤S2,将待测apk文件进行预处理后,再通过随机性检测计算得到测试数据;
更加具体的,步骤S2是按照以下步骤实现的:首先,将待测apk文件进行预处理:将待测apk文件解压,提取解压后得到的apk序列的classes.dex文件;将该classes.dex文件输入随机性测试工具,进行二进制分块。然后,将通过二进制分块所得的各个模块进行随机性检测计算,从而得到测试数据。其中,步骤S2中的随机性检测计算包括:频率检验、块内频数检验、游程检验、块内最长游程检验、二元矩阵秩检验、离散傅里叶变换检验、非重叠模块匹配检验、重叠模块匹配检验、Maurer的通用统计检验、Lempel-Ziv压缩检验、线性复杂度检验、序列检验、近似熵检验、累加和检验、随机游动检验、随机游动状态频数检验中的至少一种。
步骤S3,将该测试数据与该阈值进行比对,若该测试数据属于该阈值的范围内,则该待测apk文件为加固的文件,若该测试数据不属于该阈值的范围内,则该待测apk文件不是加固的文件。
需要说明的是,本发明的步骤S1和步骤S2并没有先后顺序,可以如前面列举的先确定阈值,再计算测试数据,也可以先计算测试数据,再确定阈值。
以下,采用非重叠模块匹配检验、重叠模块匹配检测以及线性复杂度检验三种随机性测试方法对本发明Android软件加固检测进行具体说明。
一、针对待测apk文件,得到测试数据。
1、得到待测apk文件。将待测apk文件进行解压,分析apk序列M={m1,m2,m3,……mn}中可能进行加密的文件,此处多为classes.dex。
2、提取待测序列。提取apk序列M={m1,m2,m3,……mn}的classes.dex文件N={n1,n2,n3,……nn}。
3、进行文件分块。将classes.dex文件N={n1,n2,n3,……nn}输入随机性测试工具,由工具自动对文件中的二进制分块ε={ε1,ε2,...εp}。
4、进行随机性检验。
(41)非重叠模块匹配检验。将ε={ε1,ε2,...εp}输入到非重叠模块匹配检验:
利用公式计算均值:μ=(M-m+1)/2m,其中,μ表示均值,M表示待检验数据串的子块的长度,m表示每个模块的长度;
利用公式计算方差:其中,σ2表示方差;
利用公式计算被检测到的模块数与预期的模块数之间的匹配程度:其中,χ2(obs)表示被检测到的模块数与预期的模块数之间的匹配程度,Wj(j=1,...,N)表示在第j个子块中目标模块出现的次数。
(42)进行重叠模块匹配检验。将ε={ε1,ε2,...εp}输入到重叠模块匹配检验:
利用公式计算均值:μ=(M-m+1)/2m;
利用公式计算方差:
其中,Vi(wherei=0,...,5)表示计算每个字块中目标模块发生次数,πi为定值。
(43)进行线性复杂度检验。将ε={ε1,ε2,...εp}输入到线性复杂度检验:
利用公式计算均值:
利用公式计算每个子块的线性距离:Ti=(-1)M·(Li-μ)+2/9,其中,Ti表示每个子块的线性距离,Li表示每个子块的线性复杂度;
利用公式计算方差:其中vi表示子块频数,K表示自由度,N表示长度,πi为定值。
5、计算利用P-value公式。P-value公式分别算得各检验方法所得P-value:
P-value=igamc(p/2,χ2(obs)/2),其中,p表示决策值。
二、针对训练样本集,确定阈值。
在本步骤中,确定阈值的方法与上一步骤的方法类似,在此不再赘述。不同的是,训练样本集包括若干个apk文件,需要对训练样本集中的每一个apk文件进行随机性检验,这样,通过随机性检验训练样本集中的多个apk文件而得到检验结果的一个阈值范围。
以下,选取确定未进行过加固的应用软件和利用梆梆加固平台加固过的同样的应用软件组成训练样本集Q,进行线性复杂度检验、非重叠模块匹配检验以及重叠模块匹配检测得到各结果。
1、进行线性复杂度检验(P-value平均值)的结果如下:
表1线性复杂度检验结果
由上面的表1可知,未加固应用软件的P-value平均值主要集中在0.3到0.6,而经过加固的应用软件的P-value平均值主要集中在0.4到0.8,加固前后的有一些重叠的地方,但是两者主要集中的地方是不同的。
2、相同的训练样本集Q进行非重叠模块匹配检验(在总数为1480中的通过数,此处,通过数即为P-value)的结果如下:
表2非重叠模块匹配检验结果
由上面的表2可知,未加固应用通过数集中在900到1100,而经过加固的应用软件的通过数集中在1200到1480。加固前后差别较大,表明非重叠模块匹配检验方法针对是否加固的随机性检验结果分层比较明显。
3、相同的训练样本集Q进行重叠模块匹配检测(P-value平均值)的结果如下:
表3重叠模块匹配检测结果
由表3可知,未加固应用软件的P-value平均值主要集中在0到0.3,而经过加固的应用软件的P-value平均值主要集中在0到0.1和0.3到0.7。加固前后随机性变化较为明显。
4、综上,可以得到阈值列表如下:
表4三种检验方法阈值表
测试项目 | 加固应用 | 未加固应用 |
线性复杂度检验(P-value) | 0.4~0.8 | 0.3~0.6 |
非重叠模块匹配检验(通过数) | 1200~1480 | 900~1100 |
重叠模块匹配检验(P-value) | 0~0.1&0.3~0.7 | 0~0.3 |
通过以上三种随机性检验方法的计算,可发现应用软件加固前后的随机性分布有着显著区别。
三、将以上的测试数据与阈值对比,判断当前待测应用软件是否进行过加固。
将待测应用程序输入模型中进行三种随机性检验计算,得到当前待测应用程序的随机性结果向量λn={λ1′,λ2′,λ3′},将结果与表4的阈值表进行比对,得到判断结果R(TRUE表示检测结果为加固)如下:
四、热门软件检测结果分析
以下,选取近年热门应用软件438个组成样本集A,其中20个为已被加固软件。样本集来源为Google play应用软件商店和官方网页。样本集A的时间分布如表5,各年软件分布基本持平。
表5样本集A软件分布
年份 | 2011 | 2012 | 2013 | 2014 |
未加固 | 85 | 109 | 101 | 123 |
已加固 | 4 | 5 | 5 | 6 |
通过对样本集A中的软件进行随机性检验后,三种检测方法和最终的检验结果如下:
表6样本集A检测结果
表6为对样本集A的具体检测结果及相关软件加固结果的判定,可以看到,在418个未加固应用中,本方法检测结果为未加固的软件个数为398个,有22个为误报;在20个已加固应用中,本方法检测结果为已加固的软件个数为18个,有2个软件被漏报。
本文定义准确率(TPR)为成功检测出的加固软件的个数和加固软件总数之比,公式如下:
公式中TP表示成功被检测出的软件个数,FN表示被误检测为未加固软件的加固软件个数。
本文同样定义误报率(FPR)为被误报为加固软件的未加固软件的个数和未加固软件总数之比,公式如下:
公式中FP表示被误报为加固软件的未加固软件个数,TN表示正确分类的未加固软件个数。
综上所述,A样本集检测效果如下表所示:
表7样本集A准确率和误报率
FP | TN | FPR | TP | FN | TPR | |
检测系统 | 22 | 396 | 5.3% | 18 | 2 | 90% |
由表7可知,本文提出的检测方法的准确率为90%,误报率为5.3%。表明本文提出的方法具有较高的准确率和较低的误报率。
五、金融类软件检测结果分析
以下,选取金融类移动应用软件61个组成测试样本集B,样本集来源为Googleplay应用软件商店和官方网页,其中2011年13个,2012、2013和2014年出品软件都为16个。测试样本集B的测试结果如图2、图3、图4,根据图2、图3和图4,可以得到本系统测验结果如下:
表8样本集B检验结果
年份 | 2011/13 | 2012/16 | 2013/16 | 2014/16 |
检测加固个数 | 3 | 1 | 0 | 1 |
由表8可知,本方法共发现5个应用软件符合加固特征,后经人工确认,本次检测的全部样本应用程序都没有进行过加固处理。所以,在对金融类软件的检测中,本文提出的检测方法的误报率为8.2%。这表明本文提出的检测方法是有一定的效果。通过人工分析确定,此类软件普遍使用混淆技术进行了保护。混淆技术无法避免信息等的泄露,表明这些软件保护力度还是存在欠缺,容易被攻击者窃取关键代码逻辑,被用于网络钓鱼、窃取用户信息等恶意行为。
本文提出的检测方法不仅仅是针对特定类别软件(例如金融类)有效,而且适用于整体的Android检验,并且能够有效的判断当前应用软件是否经过加固。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (4)
1.一种基于随机性检验的Android软件加固检测方法,其特征在于包括以下步骤:
步骤S1,将训练样本集进行预处理后,再通过随机性检测计算确定阈值;
所述步骤S1中包括:
步骤S11,将训练样本集中的各个apk文件解压,提取apk序列的classes.dex文件;
步骤S12,将所述的classes.dex文件输入随机性测试工具,进行二进制分块;
将通过二进制分块所得的各个模块进行随机性检测计算,从而确定阈值;
步骤S2,将待测apk文件进行预处理后,再通过随机性检测计算得到测试数据;
所述步骤S2包括:
步骤S21,将待测apk文件解压,提取apk序列的classes.dex文件;
步骤S22,将所述的classes.dex文件输入随机性测试工具,进行二进制分块;
将通过二进制分块所得的各个模块进行随机性检测计算,从而得到测试数据;
步骤S3,将该测试数据与该阈值进行比对,若该测试数据属于该阈值的范围内,则该待测apk文件为加固的文件,若该测试数据不属于该阈值的范围内,则该待测apk文件不是加固的文件。
2.根据权利要求1所述的基于随机性检验的Android软件加固检测方法,其特征在于所述步骤S1中的训练样本集包括:未加固的apk文件和加固过的同样的apk文件。
3.根据权利要求1所述的基于随机性检验的Android软件加固检测方法,其特征在于所述步骤S1中的随机性检测计算包括:频率检验、块内频数检验、游程检验、块内最长游程检验、二元矩阵秩检验、离散傅里叶变换检验、非重叠模块匹配检验、重叠模块匹配检验、Maurer的通用统计检验、Lempel-Ziv压缩检验、线性复杂度检验、序列检验、近似熵检验、累加和检验、随机游动检验、随机游动状态频数检验中的至少一种。
4.根据权利要求1所述的基于随机性检验的Android软件加固检测方法,其特征在于所述步骤S2中的随机性检测计算包括:频率检验、块内频数检验、游程检验、块内最长游程检验、二元矩阵秩检验、离散傅里叶变换检验、非重叠模块匹配检验、重叠模块匹配检验、Maurer的通用统计检验、Lempel-Ziv压缩检验、线性复杂度检验、序列检验、近似熵检验、累加和检验、随机游动检验、随机游动状态频数检验中的至少一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510316849.4A CN105046113B (zh) | 2015-06-10 | 2015-06-10 | 基于随机性检验的Android软件加固检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510316849.4A CN105046113B (zh) | 2015-06-10 | 2015-06-10 | 基于随机性检验的Android软件加固检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105046113A CN105046113A (zh) | 2015-11-11 |
CN105046113B true CN105046113B (zh) | 2018-01-05 |
Family
ID=54452653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510316849.4A Active CN105046113B (zh) | 2015-06-10 | 2015-06-10 | 基于随机性检验的Android软件加固检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105046113B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709286A (zh) * | 2016-11-30 | 2017-05-24 | 江苏神州信源系统工程有限公司 | 一种对apk资源包进行安全加固的方法 |
CN107239256A (zh) * | 2016-12-27 | 2017-10-10 | 中国福利彩票发行管理中心 | 基于综合评价的彩票行业随机序列的随机性检测方法 |
CN111913798B (zh) * | 2020-07-09 | 2024-02-09 | 太原理工大学 | 一种基于cuda的快速非重叠模板匹配计算方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708320A (zh) * | 2012-05-04 | 2012-10-03 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN103220299A (zh) * | 2013-04-27 | 2013-07-24 | 上海海事大学 | 一种云端“协同式”恶意检测引擎识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135152B2 (en) * | 2013-05-29 | 2015-09-15 | International Business Machines Corporation | Optimizing test data payload selection for testing computer software applications via computer networks |
-
2015
- 2015-06-10 CN CN201510316849.4A patent/CN105046113B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708320A (zh) * | 2012-05-04 | 2012-10-03 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN103220299A (zh) * | 2013-04-27 | 2013-07-24 | 上海海事大学 | 一种云端“协同式”恶意检测引擎识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105046113A (zh) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077396B (zh) | 一种钓鱼网站检测方法及装置 | |
Shar et al. | Predicting common web application vulnerabilities from input validation and sanitization code patterns | |
Phan et al. | Quantifying information leaks using reliability analysis | |
CN103577323B (zh) | 基于动态关键指令序列胎记的软件抄袭检测方法 | |
Shahbazi et al. | Black-box string test case generation through a multi-objective optimization | |
CN108199832B (zh) | 一种cloc认证加密算法抵御差分故障攻击的检测方法 | |
Li et al. | ModelDiff: Testing-based DNN similarity comparison for model reuse detection | |
Tian et al. | DKISB: Dynamic key instruction sequence birthmark for software plagiarism detection | |
CN105046113B (zh) | 基于随机性检验的Android软件加固检测方法 | |
CN107729729B (zh) | 一种基于随机森林的滑动验证码的自动通过测试方法 | |
CN109711163A (zh) | 基于api调用序列的安卓恶意软件检测方法 | |
CN106203095A (zh) | 一种webshell的检测方法和检测系统 | |
CN105389486A (zh) | 一种基于鼠标行为的认证方法 | |
CN109933977A (zh) | 一种检测webshell数据的方法及装置 | |
Li et al. | Protecting intellectual property of large language model-based code generation apis via watermarks | |
Li et al. | Open source software security vulnerability detection based on dynamic behavior features | |
CN105005739B (zh) | 一种基于数据染色的隐私保护方法 | |
CN107783877A (zh) | 基于变异分析的硬件木马有效激活的测试向量生成方法 | |
CN107085687A (zh) | 基于二进制熵的模糊测试加解密函数定位方法 | |
Park et al. | Analysis of entropy estimator of true random number generation using beta source | |
Hang et al. | Malware detection method of android application based on simplification instructions | |
CN108809622A (zh) | 一种抗功耗侧信道攻击对策验证方法 | |
CN104573419B (zh) | 一种移动应用软件保护有效性的评估方法和装置 | |
CN109241706A (zh) | 基于静态胎记的软件抄袭检测方法 | |
CN103984886B (zh) | 基于分区固定的指纹嵌入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |