• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 21
    • 下载费用:20 金币  

    重庆时时彩预测辅助工具hao123: 一种基于程序结构特征的恶意程序检测方法.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201410152717.8

    申请日:

    2014.04.16

    公开号:

    CN103902911A

    公开日:

    2014.07.02

    当前法律状态:

    终止

    有效性:

    无权

    法律详情: 未缴年费专利权终止IPC(主分类):G06F 21/56申请日:20140416授权公告日:20160914终止日期:20170416|||授权|||实质审查的生效IPC(主分类):G06F 21/56申请日:20140416|||公开
    IPC分类号: G06F21/56(2013.01)I 主分类号: G06F21/56
    申请人: 南京大学
    发明人: 曾庆凯; 魏向宇
    地址: 210093 江苏省南京市鼓楼区汉口路22号
    优先权:
    专利代理机构: 南京瑞弘专利商标事务所(普通合伙) 32249 代理人: 陈建和
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410152717.8

    授权公告号:

    |||||||||

    法律状态公告日:

    2018.05.04|||2016.09.14|||2014.07.30|||2014.07.02

    法律状态类型:

    专利权的终止|||授权|||实质审查的生效|||公开

    摘要

    一种基于程序结构特征的恶意程序检测方法,1)恶意程序特征库的建立;2)恶意程序变形变种的检测;3)函数结构信息的提??;4)函数参数个数的提??;5)恶意程序特征的提??;6)恶意程序族的族特征提??;在建立恶意程序特征库时,首先对用于训练的每个恶意程序族中的每个样本程序进行程序结构分析与提取,获得其程序特征;然后对所提取的恶意程序族中各个样本程序的程序特征进行融合;在恶意程序变形变种检测时,首先对待检测程序进行程序结构分析,获得其程序特征;然后将待检测程序的程序特征分别与恶意程序特征库中的恶意程序族的族特征进行相似度匹配,判断是否为已知恶意程序的变形变种。

    权利要求书

    权利要求书
    1.  一种基于程序结构特征的恶意程序检测方法,其特征是步骤如下:1)恶意程序特征库的建立;2)恶意程序变形变种的检测;3)函数结构信息的提??;4)函数参数个数的提??;5)恶意程序特征的提??;6)恶意程序族的族特征提??;
    在建立恶意程序特征库时,首先对用于训练的每个恶意程序族中的每个样本程序进行程序结构分析与提取,获得其程序特征;然后对所提取的恶意程序族中各个样本程序的程序特征进行融合,获得该恶意程序族的族特征,并以此存入恶意程序特征库;程序结构分析是基于IDA反汇编软件完成;利用反汇编软件IDA对待分析程序进行反汇编,获得其反汇编代码,进而找到程序入口函数;根据程序入口函数,提取该程序的结构信息;程序结构信息包括函数体的开始和结束、基本块的开始和结束、循环体的开始和结束;程序结构信息提取过程获得的程序结构信息存放在test_feature.lib文件,以供程序特征提取过程用来提取待检测程序的程序特征;
    在恶意程序变形变种检测时,首先对待检测程序进行程序结构分析,获得其程序特征;然后将待检测程序的程序特征分别与恶意程序特征库中的恶意程序族的族特征进行相似度匹配,判断是否为已知恶意程序的变形变种;
    恶意程序特征库保存在malware_feature.lib文件,该文件在恶意程序特征库建立阶段生成并在恶意程序检测阶段使用,每个族特征保存为文件的一行。

    2.  根据权利要求1所述的基于程序结构特征的恶意程序检测方法,其特征是恶意程序特征库建立过程的流程:用于训练的已知恶意程序样本按恶意程序族分类,存放在不同文件夹;在恶意程序特征库建立过程中,逐步获取每个恶意程序族所在文件夹中的恶意程序样本,提取其程序结构信息,进而生成程序特征;然后将该恶意程序族中所有样本程序的程序特征进行融合,提取恶意程序族的族特征,加入到恶意程序特征库中;程序结构信息提取过程获得的程序结构信息存放在sample_feature.lib文件,以供程序特征提取过程使用;恶意程序族的所有样本程序的程序特征保存在family_feature.lib文件,以供恶意程序族的族特征提取过程使用,每个程序特征保存为该文件的一行;
    具体流程如下:步骤20是初始动作;步骤21获取已知恶意程序族文件夹;步骤22判断是否得到,若得到,转步骤23,否则转步骤2c;步骤23获取一个恶意程序样本,程序名记为sample-prg;步骤24判断是否得到,若得到,转步骤25,否则转步骤2a;步骤25利用库函数ShellExecute()来调用IDA对恶意程序样本sample-prg进行反汇编, 获得其反汇编代码;步骤26调用IDC函数GetEntryPoint()获得反汇编代码的程序入口函数;步骤27提取程序结构信息;依据程序入口函数,提取程序结构信息,保存在sample_feature.lib文件;步骤28提取程序特征;对sample_feature.lib文件中的程序结构信息进行结构信息符号调整、函数参数个数更正处理,得到程序特征;步骤29将提取得到的程序特征作为一行保存在family_feature.lib文件中,转步骤23;步骤2a提取恶意程序族的族特征;对family_feature.lib中的所有程序特征进行融合,得到融合的恶意程序族特征;步骤2b将恶意程序族特征存入恶意程序特征库,转步骤21;步骤2c为结束状态。

    3.  根据权利要求1所述的基于程序结构特征的恶意程序检测方法,其特征是程序结构信息提取过程的流程:提取程序结构信息,包括函数体、基本块和循环体的开始与结束,需要记录顺序跳转指令和回跳指令的目标地址来获得基本块的结束和循环体的开始;对于函数调用指令,提取该函数的参数个数,并递归提取首次被调用的局部函数的结构信息,需要记录已调用函数的函数参数信息;顺跳目标地址和回跳目标地址分别为程序中顺序跳转指令和回跳指令的目标地址的集合;函数参数特征是被调用函数的函数参数信息的集合,函数参数信息包括函数名、函数调用次数、不同参数个数及其相应调用次数;该过程获取的程序结构信息存放在feature.lib文件,以供程序特征提取过程使用;对首次调用的局部函数递归,调用函数结构信息提取过程,亦采用程序结构信息提取过程的流程;
    具体流程如下:步骤30是初始动作;步骤31获得函数体的地址范围;步骤32输出FUN_START到文件;步骤33获取函数体首地址处指令;步骤34判断指令地址是否小于函数体尾地址,若是转步骤35,否则转步骤3C;步骤35获得指令地址在顺跳目标地址中的出现次数;步骤36输出相应次数个BLOCK_END到文件;步骤37判断指令操作码是否为call,若不是,则转步骤38,否则转步骤3a;步骤38判断指令操作码是否为jmp,若是转步骤39,否则转步骤3m;步骤39判断目标地址是否为其所在函数的首地址,若是转步骤3a,否则转步骤3m;步骤3a提取函数参数个数;获取函数名fun_name和参数个数para_num,具体处理流程如图4所示;步骤3b在函数参数特征中查找函数名fun_name;步骤3c判断是否找到,若没找到,转步骤3d,否则转步骤3h;步骤3d将该函数参数信息添加到函数参数特征中;步骤3e在函数名fun_name中寻找sub_字符串;步骤3f判断是否找到,若找到,转步骤3g,否则转步骤3B;步骤3g提取程序结 构信息,转步骤3B;对首次调用的局部函数递归调用函数结构信息提取过程,具体处理流程如图3所示;步骤3h增加该函数的函数调用次数;步骤3i在函数参数信息中查找该函数参数个数para_num;步骤3j判断是否找到,若找到,转步骤3k,否则转步骤3l;步骤3k增加该参数个数的调用次数,转步骤3B;步骤3l在函数参数信息中添加相应参数个数及其调用次数,转步骤3B;步骤3m判断指令操作码中是否包含j字符,若包含,转步骤3o,否则转步骤3n;步骤3n判断指令操作码是否为loop,若是,转步骤3o,否则转步骤3B;步骤3o判断目标地址是否在函数体内,若是,转步骤3p,否则转步骤3B;步骤3p判断目标地址是否大于指令地址,若是,转步骤3q,否则转步骤3s;步骤3q将目标地址存入顺跳目标地址;步骤3r输出BLOCK_START到文件,转步骤3w;步骤3s在循环体中顺序寻找函数调用指令;步骤3t判断是否找到,若找到,转步骤3u,否则转步骤3w;步骤3u将函数调用指令的地址存放在回跳目标地址;步骤3v输出LOOP_END到文件;步骤3w判断指令操作码是否为jmp,若是,转步骤3x,否则转步骤3B;步骤3x获得该指令的后续指令;步骤3y在顺跳目标地址中寻找该指令地址;步骤3z判断是否找到,若找到,转步骤34,否则转步骤3A;步骤3A判断指令地址是否小于函数体尾地址,若是,转步骤3x,否则转步骤34;步骤3B获取该指令的后续指令,转步骤34;步骤3C输出FUN_END到文件;步骤3D为结束状态。

    4.  根据权利要求1所述的基于程序结构特征的恶意程序检测方法,其特征是函数参数个数提取过程的流程为,该流程获取函数参数个数并将函数信息输出到文件;函数信息包括函数调用地址、函数名及参数个数;
    具体流程如下:步骤40是起始动作;步骤41获取函数名;步骤42在函数名中寻找‘@’字符;步骤43判断是否找到,若找到,转步骤44,否则转步骤48;步骤44获取‘@’后的字符;步骤45判断该字符是否为数字,若是,转步骤46,否则转步骤48;步骤46获取@符号之后的数字串;步骤47令参数个数为数字串,转步骤4v;步骤48获取函数的栈结构;步骤49从栈空间中获取参数大??;步骤4a判断参数大小是否小于设定的阈值,这里阈值取25,若小于,转步骤4v,否则转步骤4b;步骤4b获取被调用函数的函数体尾地址;步骤4c获取该地址处指令;步骤4d获取指令操作码;步骤4e判断指令操作码是否为retn,若是,转步骤4f,否则转步骤4j;步骤4f获取指令的操作数;步骤4g判断是否得到,若得到,转步骤4h,否则转步骤4i;步骤4h令参数大小为指令操作数,转步骤4v;步骤4i令参数大小为0,转步骤4v;步骤4j获得该指令 的后续指令;步骤4k获取指令操作码;步骤4l判断指令操作码是否为add,若是,转步骤4m,否则转步骤4q;步骤4m获取目标操作数;步骤4n判断目的操作数是否为esp,若是,转步骤4o,否则转步骤4q;步骤4o获取指令的源操作数;步骤4p令参数大小为源操作,转步骤4v;步骤4q初始化参数个数为0;步骤4r获取指令的上一条指令;步骤4s获取指令操作码;步骤4t判断指令操作码是否为push,若是,转步骤4u,否则转步骤4w;步骤4u增加参数个数,转步骤4r;步骤4v令参数个数为参数大小除4;步骤4w输出函数信息到文件;步骤4x为结束状态。

    5.  根据权利要求1所述的基于程序结构特征的恶意程序检测方法,其特征是程序特征提取过程的流程;对程序结构信息提取过程得到的feature.lib文件进行结构信息符号调整和参数个数更正,获得程序特征;具体流程如下;步骤50是起始动作;步骤51更正函数参数个数;对程序结构信息提取过程获得的函数参数特征进行更正,获得具有不单一参数个数的函数的最终参数个数,具体处理流程如图6所示;步骤52去除冗余结构信息;对文件中程序结构信息进行处理,去除冗余的结构信息符号,具体处理流程如图7所示;步骤53从文件中获取函数信息;步骤54判断是否得到,若得到,转步骤55,否则转步骤5c;步骤55获得函数调用地址在回跳目标地址中出现的次数;步骤56判断出现次数大于0是否成立,若成立,转步骤57,否则转步骤58;步骤57在该函数信息前添加相应数量的LOOP_START;步骤58在函数参数特征中寻找该函数;步骤59判断是否找到,若找到,转步骤5a,否则转步骤5b;步骤5a修改文件中该函数信息的参数个数为最终参数个数;步骤5b去除文件中该函数信息的函数调用地址和函数名,仅保留函数参数个数,转步骤53;步骤5c为结束状态。

    6.  根据权利要求1所述的基于程序结构特征的恶意程序检测方法,其特征是函数参数个数的提取流程:处理函数参数特征,去除具有单一参数个数的函数参数信息,调整最终调用次数;
    步骤60为初始化动作;步骤61获取函数参数信息;步骤62判断是否得到,若得到,转步骤63,否则转步骤6g;步骤63获得参数个数;步骤64获取相应的调用次数;步骤65判断调用次数是否等于函数调用次数,若是,转步骤66,否则转步骤67;步骤66删除该函数参数信息,转步骤61;步骤67初始化最终参数个数为该参数个数;步骤68初始化最终调用次数为该调用次数;步骤69获取参数个数;步骤6a获取相应调用次数;步骤6b判断是否取到,若取到,转步骤6c,否则转步骤6f;步骤6c判断调用次 数是否大于最终调用次数,若是,转步骤6d,否则转步骤69;步骤6d令最终参数个数为该参数个数;步骤6e令最终调用次数为该调用次数,转步骤69;步骤6f修改函数参数信息,使其中只包含函数名和最终参数个数,转步骤61;步骤6g为结束状态。

    7.  根据权利要求5所述的基于程序结构特征的恶意程序检测方法,其特征是所述冗余结构信息符号去除过程的流程:步骤70为初始化动作;步骤71获取文件中的结构标识符串;步骤72判断是否得到,若得到,转步骤73,否则转步骤7o;步骤73在该结构标识符串中获取FUN_START;步骤74判断是否得到,若得到,转步骤75,否则转步骤78;步骤75在结构标识符串中获取FUN_END;步骤76判断是否得到,若得到,转步骤77,否则转步骤78;步骤77从结构标识符串中去除FUN_START、FUN_END及之间的结构标识符;步骤78在结构标识符串中获取FUN_END;步骤79判断是否得到,若得到,转步骤7a,否则转步骤7h;步骤7a截取FUN_END及其前的子标识符串;步骤7b在子标识符串中获取BLOCK_START;步骤7c判断是否取到,若取到,转步骤7d,否则转步骤7g;步骤7d获得BLOCK_START后的BLOCK_END;步骤7e判断是否得到,若得到,转步骤7f,否则转步骤7g;步骤7f从子标识符串中去除BLOCK_START和BLOCK_END,转步骤7b;步骤7g输出剩余子标识符串,转步骤78;步骤7h获取剩余子标识符串;步骤7i在剩余子标识符串中获取BLOCK_START;步骤7j判断是否得到,若得到,转步骤7k,否则转步骤7n;步骤7k获取BLOCK_START后的BLOCK_END;步骤7l判断是否得到,若得到,转步骤7m,否则转步骤7n;步骤7m去除子标识符串中的BLOCK_START和BLOCK_END,转步骤7i;步骤7n输出子标识符串,转步骤71;步骤7o为结束状态。

    8.  根据权利要求1所述的基于程序结构特征的恶意程序检测方法,其特征是恶意程序族的族特征提取过程的流程;融合family_features.lib文件中的所有程序特征来获得恶意程序族特征:步骤80为初始化动作;步骤81获取程序特征,即获取文件中的一行;步骤82将恶意程序族特征初始化为该程序特征;步骤83从文件中获取程序特征;步骤84判断是否得到,若得到,转步骤85,否则转步骤87;步骤85获取最长公共子序列;求族特征与程序特征的最长公共子序列,具体处理流程如图9所示;步骤86令族特征为最长公共子序列,转步骤83;步骤87为结束状态。

    9.  根据权利要求8所述的基于程序结构特征的恶意程序检测方法,其特征是最长公共子序列获取过程的流程:步骤90为初始化动作;步骤91将族特征存入字符串S;步骤92将程序特征存入字符串T;步骤93判断S或T是否为空字符串,若是,转步骤 94,否则转步骤95;步骤94获得最长公共子序列为空字符串,转步骤9f;步骤95将字符串S划分为字符串S0和尾字符;步骤96将字符串T划分为字符串T0和尾字符;步骤97判断S尾字符是否等于T尾字符,若不等,转步骤98,否则转步骤9d;步骤98递归获取字符串S和T0的最长公共子序列ST0;步骤99递归获取字符串S0和T的最长公共子序列TS0;步骤9a判断ST0是否比TS0长,若是,转步骤9b,否则转步骤9c;步骤9b将字符串ST0作为最长公共子序列,转步骤9f;步骤9c将字符串TS0作为最长公共子序列,转步骤9f;步骤9d递归获得字符串S0与T0的最长公共子序列;步骤9e将尾字符添加到其后形成最长公共子序列;步骤9f为结束状态。

    10.  根据权利要求1所述的基于程序结构特征的恶意程序检测方法,其特征是表示恶意程序变形变种检测过程的流程:程序结构信息提取过程获得的程序结构信息存放在test_feature.lib文件,以供程序特征提取过程用来提取待检测程序的程序特征;步骤a0为初始化动作;步骤a1利用库函数ShellExecute()来调用IDA对待检测程序(程序名记为test-prg)进行反汇编,获得其反汇编代码;步骤a2调用IDC函数GetEntryPoint()获得反汇编代码的程序入口函数;步骤a3提取待检测程序的程序结构信息;依据程序入口函数,提取程序结构信息,保存在test_feature.lib文件,具体处理流程如图3所示;步骤a4提取待检测程序的程序特征;对test_feature.lib文件中的程序结构信息进行结构信息符号调整、函数参数个数更正处理,提取待检测程序的程序特征,具体处理流程如图5所示;步骤a5对待检测程序的程序特征,调用库函数strlen()获得程序特征的长度;步骤a6从恶意程序特征库中获取族特征;步骤a7判断是否得到,若得到,转步骤a8,否则转步骤ag;步骤a8对族特征,调用库函数strlen()获得族特征的长度;步骤a9获取最长公共子序列;获取待检测程序的程序特征和族特征的最长公共子序列,具体流程如图9所示;步骤aa调用库函数strlen()获取最长公共子序列的长度;步骤ab判断程序特征长度是否大于族特征长度,若是,转步骤ac,否则转步骤ad;步骤ac设置最大相似度为最长公共子序列长度除以族特征长度,转步骤ae;步骤ad设置最大相似度为最长公共子序列长度除以程序特征长度;步骤ae判断最大相似度是否小于阈值(这里阈值取值为0.82),若是,转步骤a6,否则转步骤af;步骤af判定待检测程序为恶意程序,转步骤ah;步骤ag判定待检测程序不是恶意程序,转步骤ah;步骤ah为结束状态。

    关 键 词:
    一种 基于 程序结构 特征 恶意程序 检测 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种基于程序结构特征的恶意程序检测方法.pdf
    链接地址://www.4mum.com.cn/p-6134067.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03