发明名称 一种安卓市场中重包装应用的检测方法
摘要 本发明公开了一种安卓市场中重包装应用的检测方法,该方法根据各个安卓应用的dex文件计算出所使用字符串的长度,将此作为区分不同应用的特征码,通过计算不同应用的特征码之间的编辑距离得到不同安卓应用之间的相似度,并与给定阈值进行比较,从而确定是否为重包装应用。本发明可以作为检测安卓恶意软件的一种有效辅助手段。
申请公布号 CN102750482B 申请公布日期 2014.10.29
申请号 CN201210204247.6 申请日期 2012.06.20
申请人 东南大学 发明人 秦中元;孙雄;胡爱群
分类号 G06F21/56(2013.01)I 主分类号 G06F21/56(2013.01)I
代理机构 南京苏高专利商标事务所(普通合伙) 32204 代理人 柏尚春
主权项 一种安卓市场中重包装应用的检测方法,其特征在于:包括以下步骤:(1)从各个安卓应用的dex文件中提取特征码;所述特征码为dex文件中所有字符串的长度按顺序组成;(2)计算各个安卓应用的特征码之间的编辑距离;(3)根据所述编辑距离计算各个安卓应用之间的相似度,并与给定阈值进行比较,从而确定是否为重包装应用;所述dex文件中的字符串长度的计算方法为:在dex文件中找到字符串的起始偏移地址,然后读取不同字符串的地址,将两字符串的地址相减从而计算出字符串的长度;所述编辑距离的计算采用如下的动态规划算法:设字符串为A和B,用一个矩阵M来表示A与B的编辑距离,其中M<sub>ij</sub>表示的是字符串A的前i个字符变成字符串B的前j个字符所需的最少编辑操作次数,算法如下:1)分别计算字符串A和字符串B的长度,记为length1和length2;2)判断length1和length2是否为0,若有一个为0,则返回另一个字符串的长度;若两个长度都为0,则返回0;若两者都不为0,则构建一个大小为(length1+1)*(length2+1)的矩阵M;M的行和列的编号均从0开始;3)将矩阵M的第一行和第一列,分别进行初值为0步长为1的递增编号;4)从M[1,1]开始,按照从左到右从上到下的顺序遍历整个矩阵,遍历过程中用变量i和j分别控制行和列的下标,同时A[i]和B[j]分别表示字符串A和字符串B的对应字符;5)计算edit变量值,如果A[i]=B[j],则edit=0,否则edit=1;6)计算M[i,j]=min(M[i‑1,j]+1,M[i,j‑1]+1,M[i‑1,j‑1]+edit);7)重复5)和6)的操作,直到遍历到矩阵末尾,M[length1,length2]即为两字符串之间的编辑距离;所述相似度的计算公式如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>&eta;</mi><mo>=</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mi>dis</mi><mi>tan</mi><mi>ce</mi><mrow><mo>(</mo><mi>A</mi><mo>,</mo><mi>B</mi><mo>)</mo></mrow></mrow><mrow><mi>MAX</mi><mrow><mo>(</mo><mi>length</mi><mn>1</mn><mo>,</mo><mi>length</mi><mn>2</mn><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000534620500000011.GIF" wi="1273" he="139" /></maths>公式(1)中distance(A,B)为字符串A和字符串B的编辑距离,length1和length2为字符串A和字符串B的长度。
地址 210096 江苏省南京市四牌楼2号