[发明专利]基于操作码图的安卓恶意软件检测方法在审
申请号: | 202011105174.6 | 申请日: | 2020-10-15 |
公开(公告)号: | CN114372266A | 公开(公告)日: | 2022-04-19 |
发明(设计)人: | 葛书敏;刘伟伟;刘光杰 | 申请(专利权)人: | 南京理工大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F8/53;G06F16/901;G06N3/04;G06N3/08 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 王玮 |
地址: | 210094 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 操作 恶意 软件 检测 方法 | ||
1.一种基于操作码图的安卓恶意软件检测方法,其特征在于,包括以下步骤:
步骤1、构建应用数据集:从安卓平台中下载良性应用构成良性软件集合,下载恶意应用构成恶意软件集合,从而构建实验所用的应用数据集;
步骤2、提取操作码序列:使用反编译工具apktool对安卓应用软件进行反编译,并从反汇编文件smail中提取操作码序列;
步骤3、操作码特征向量化:利用操作码指令自身的先验知识特征构建初始的操作码特征向量;再与操作码在良性样本数据集和恶意样本数据集中各自的词频特征相结合,构造最终的操作码节点特征向量;
步骤4、建立操作码图:将每个样本的操作码序列中的每个非重复操作码作为操作码图中的一个节点,并利用2-gram模型和操作码序列对构建操作码图的边,其中边的权值为对应的2-gram操作码对的计数概率;
步骤5、应用程序检测:将构建好的操作码图作为输入,利用改进后的DGCNN模型进行学习,得出应用软件的检测结果:良性或恶意。
2.根据权利要求1所述的基于操作码图的安卓恶意软件检测方法,其特征在于,步骤2所述的从反汇编文件smail中提取操作码序列,具体为:
逐行遍历读取样本的smail文件,选取文件中.method字段和.end method字段之间的数据段,并利用操作码映射表进行匹配,筛选出数据段内每行中的操作码,构建样本相对应的操作码序列。
3.根据权利要求1所述的基于操作码图的安卓恶意软件检测方法,其特征在于,步骤3所述的利用操作码指令自身的先验知识特征构建初始的操作码特征向量;再与操作码在良性样本数据集和恶意样本数据集中各自的词频特征相结合,构造最终的操作码节点特征向量,具体为:
步骤3-1、对Dalvik虚拟机中定义的218个操作码进行分析,根据操作功能将操作码分为14种类型:移动指令、返回指令、常量指令、监控指令、对象操作指令、数值操作指令、跳转指令、比较指令、域操作指令、呼叫指令、数据转换指令、数据操作指令、其他指令;
步骤3-2、分析操作码指令的数据类型后缀,整理出44个不同的操作码数据类型后缀;
步骤3-3、通过对所有操作码指令的分析,总结出10种消除歧义的操作码定义;
步骤3-4、将14种操作功能、44种数据类型后缀和10种消除歧义的操作码定义组合成一个68维的操作码特征向量;操作码中包含该位的特征则将该位置为1,反之为0,从而构建初始的操作码特征向量;
步骤3-5、计算各个操作码在良性样本和恶意样本中操作码在样本中的词频:
其中,tfop,c为单个操作码在c类应用操作码集合中的频率,nop,c代表单个操作码在c类操作码集合中的计数,∑nops,c为c类操作码集合中所有操作码的总计数;
步骤3-6、将初始操作码特征向量与操作码在良性样本数据集和恶意样本数据集中各自的词频特征相乘,构造最终的操作码节点特征向量:
xopcode=tfop,c·xop_ins
其中,xopcode为单个操作码最终的特征向量表示,xop_ins为步骤3-4中所述依据操作码先验知识构建的初始操作码特征向量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011105174.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种中框、电子设备和中框的加工方法
- 下一篇:一种油性硅胶产品加工的工艺方法