一种恶意代码混淆检测方法、系统、计算机设备、介质技术方案

技术编号:19745916 阅读:16 留言:0更新日期:2018-12-12 04:51
本发明专利技术提供一种恶意代码混淆检测方法,包括:获取待检测代码;对所述待检测代码进行入口点混淆检测、call指令后混淆数据检测、子程序返回地址被修改检测、条件跳转混淆检测中的任意两种以上组合。本发明专利技术对恶意代码混淆检测的方法进行归纳总结,得出常见的恶意代码混淆的实际情况,根据实际情况,制定出针对各种恶意代码混淆情形的具体方法,对恶意代码进行更加全面的检测,从而提供更加全面的恶意代码检测识别信息。本发明专利技术提供的一种恶意代码混淆检测系统、计算机设备、介质,也具有上述有益效果,在此不再赘述。

【技术实现步骤摘要】
一种恶意代码混淆检测方法、系统、计算机设备、介质
本专利技术涉及计算机软件
,特别涉及一种恶意代码混淆检测方法、系统、计算机设备、介质。
技术介绍
代码混淆是恶意代码隐藏自身的主要手段之一,当前,对恶意代码反检测分析技术层面主要存在以下问题:检测技术较为单一,难以准确地分析恶意代码混淆反检测能力。传统恶意代码混淆反检测分析主要根据恶意代码的动态运行效果或者实际调试状态,这样的测试存在环境准备、状态分析等多种情况,会导致检测效率低下,检测时间过长。恶意代码混淆反检测能力往往不是由单一的技术构成,例如其抗虚拟机技术有多种实现方式,但是实现技术之间并不冲突,如果采用传统的状态评估,评估结果对当前的环境准备有很大的依赖。传统恶意代码混淆检测技术只是对其中的某一种功能进行检测,例如异常返回等,恶意代码混淆反检测需要多方面的评估和分析,仅仅对某一方面的检测是不合理也是不完整的。因此,如何提供一种对恶意代码混淆进行检测的技术方案,能够对恶意代码的检测更加全面,是本领域技术人员亟待解决的技术问题。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种恶意代码混淆检测方法、系统、计算机设备、介质,能够对恶意代码的检测更加全面。其具体方案如下:第一方面,本专利技术提供一种恶意代码混淆检测方法,包括:获取待检测代码;对所述待检测代码进行入口点混淆检测、call指令后混淆数据检测、子程序返回地址被修改检测、条件跳转混淆检测中的任意两种以上组合。优选地,所述入口点混淆检测,包括:判断所述待检测代码的每条指令是否为跳转指令;如果是,则判断所述跳转指令的地址是否在所述待检测代码内,并判断所述跳转指令的跳转目标地址是否在所述待检测代码外;如果所述跳转指令的地址在所述待检测代码内,且所述跳转指令的跳转目标地址在所述待检测代码外,则判定所述待检测代码为恶意代码;优选地,所述call指令后混淆数据检测,包括:获取所述待检测代码中的call指令的目标地址,及所述call指令的下一条指令的第一地址;判断所述目标地址的值减去所述第一地址的值之差是否大于零,并小于第一预设值;如果是,则判断所述第一地址至所述目标地址之前一地址上的字节是否为ASCII字符;如果是,则判断所述目标地址之前一地址上的字节是否为零;如果是,则判断所述目标地址之后相邻的指令是否为call指令或赋值传递指令,如果是,则判定所述待检测代码为恶意代码;优选地,所述子程序返回地址被修改检测,包括:获取所述待检测代码中的call指令的目标子代码;判断所述待目标子代码的每条指令是否为RET变形指令;如果是,则判定所述目标子代码为恶意代码;获取所述call指令所在地址的下一地址,得到第三地址;检索全局常量地址表中是否存在比所述第三地址大的最小第四地址;如果是,则判断所述第四地址的值与所述第三地址的值之差是否小于预设值;如果是,则提取混淆数据,并利用所述混淆数据清除所述目标子代码产生的错误信息。优选地,所述条件跳转混淆检测,包括:获取所述待检测代码的第一条件跳转指令的第一信息与第二条件跳转指令的第二信息;利用所述第一信息、所述第二信息,判断所述第一条件跳转指令与所述第二条件跳转指令是否为互补的条件跳转指令;如果是,判断所述第一条件跳转指令的第一目的地址与所述第二条件跳转指令的第二目的地址是否为同一地址;如果是,则判定所述待检测代码为恶意代码从所述同一地址处重新开始检测所述待检测代码。第二方面,本专利技术提供一种恶意代码混淆检测系统,包括:代码获取模块,用于获取待检测代码;代码检测模块,用于对所述待检测代码进行入口点混淆检测、call指令后混淆数据检测、子程序返回地址被修改检测、条件跳转混淆检测中的任意两种以上组合。优选地,所述代码检测模块,包括:入口点混淆检测子模块;所述入口点混淆检测子模块包括:跳转判断单元,用于判断所述待检测代码的每条指令是否为跳转指令;地址判断单元,用于如果所述待检测代码的每条指令为跳转指令,则判断所述跳转指令的地址是否在所述待检测代码内,并判断所述跳转指令的跳转目标地址是否在所述待检测代码外;恶意代码判断单元,用于如果所述跳转指令的地址在所述待检测代码内,且所述跳转指令的跳转目标地址在所述待检测代码外,则判定所述待检测代码为恶意代码;优选地,所述代码检测模块,包括:条件跳转混淆检测子模块;所述条件跳转混淆检测子模块,包括:跳转信息获取单元,用于获取所述待检测代码的第一条件跳转指令的第一信息与第二条件跳转指令的第二信息;条件互补判断单元,用于利用所述第一信息、所述第二信息,判断所述第一条件跳转指令与所述第二条件跳转指令是否为互补的条件跳转指令;地址判断单元,用于如果所述第一条件跳转指令与所述第二条件跳转指令为互补的条件跳转指令,判断所述第一条件跳转指令的第一目的地址与所述第二条件跳转指令的第二目的地址是否为同一地址;恶意代码判断模块,用于如果所述第一条件跳转指令的第一目的地址与所述第二条件跳转指令的第二目的地址为同一地址,则判定所述待检测代码为恶意代码;代码重检单元,用于从所述同一地址处重新开始检测所述待检测代码。第三方面,本专利技术提供一种计算机设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述任一种恶意代码混淆检测方法的步骤。第四方面,本专利技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种恶意代码混淆检测方法的步骤。本专利技术提供一种恶意代码混淆检测方法,包括:获取待检测代码;对所述待检测代码进行入口点混淆检测、call指令后混淆数据检测、子程序返回地址被修改检测、条件跳转混淆检测中的任意两种以上组合。本专利技术对恶意代码混淆检测的方法进行归纳总结,得出常见的恶意代码混淆的实际情况,根据实际情况,制定出针对各种恶意代码混淆情形的具体方法,对恶意代码进行更加全面的检测,从而提供更加全面的恶意代码检测识别信息。本专利技术提供的一种恶意代码混淆检测系统、计算机设备、介质,也具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术一种具体实施方式所提供的一种恶意代码混淆检测方法的流程图;图2为一种入口点混淆的原理示意图;图3为本专利技术一种具体实施方式所提供的入口点混淆检测的过程的流程图;图4为一种call指令后跟垃圾数据与正常代码的对比图;图5为一种call指令后待有用数据与正常代码的对比图;图6为本专利技术一种具体实施方式所提供的call指令后混淆数据检测的流程图;图7为本是一种具体实施方式所提供的一种call指令后混淆数据检测的具体实施图;图8为一种指令变形修改子程序返回地址情况与正常代码情况的对比图;图9为本专利技术一种具体实施方式所提供的子程序返回地址被修改检测的流程图;图10为本专利技术一种具体实施方式所提供的ret变形识别算法的流程图;图11为一种条件跳转混淆的代码对比情形图;图12为本专利技术一种具体实施方式所提供的条件跳转混淆检测的流程图;图13为本发本文档来自技高网...

【技术保护点】
1.一种恶意代码混淆检测方法,其特征在于,包括:获取待检测代码;对所述待检测代码进行入口点混淆检测、call指令后混淆数据检测、子程序返回地址被修改检测、条件跳转混淆检测中的任意两种以上组合。

【技术特征摘要】
1.一种恶意代码混淆检测方法,其特征在于,包括:获取待检测代码;对所述待检测代码进行入口点混淆检测、call指令后混淆数据检测、子程序返回地址被修改检测、条件跳转混淆检测中的任意两种以上组合。2.根据权利要求1所述的恶意代码混淆检测方法,其特征在于,所述入口点混淆检测,包括:判断所述待检测代码的每条指令是否为跳转指令;如果是,则判断所述跳转指令的地址是否在所述待检测代码内,并判断所述跳转指令的跳转目标地址是否在所述待检测代码外;如果所述跳转指令的地址在所述待检测代码内,且所述跳转指令的跳转目标地址在所述待检测代码外,则判定所述待检测代码为恶意代码。3.根据权利要求1所述的恶意代码混淆检测方法,其特征在于,所述call指令后混淆数据检测,包括:获取所述待检测代码中的call指令的目标地址,及所述call指令的下一条指令的第一地址;判断所述目标地址的值减去所述第一地址的值之差是否大于零,并小于第一预设值;如果是,则判断所述第一地址至所述目标地址之前一地址上的字节是否为ASCII字符;如果是,则判断所述目标地址之前一地址上的字节是否为零;如果是,则判断所述目标地址之后相邻的指令是否为call指令或赋值传递指令,如果是,则判定所述待检测代码为恶意代码。4.根据权利要求1所述的恶意代码混淆检测方法,其特征在于,所述子程序返回地址被修改检测,包括:获取所述待检测代码中的call指令的目标子代码;判断所述待目标子代码的每条指令是否为RET变形指令;如果是,则判定所述目标子代码为恶意代码;获取所述call指令所在地址的下一地址,得到第三地址;检索全局常量地址表中是否存在比所述第三地址大的最小第四地址;如果是,则判断所述第四地址的值与所述第三地址的值之差是否小于预设值;如果是,则提取混淆数据,并利用所述混淆数据清除所述目标子代码产生的错误信息。5.根据权利要求1所述的恶意代码混淆检测方法,其特征在于,所述条件跳转混淆检测,包括:获取所述待检测代码的第一条件跳转指令的第一信息与第二条件跳转指令的第二信息;利用所述第一信息、所述第二信息,判断所述第一条件跳转指令与所述第二条件跳转指令是否为互补的条件跳转指令;如果是,判断所述第一条件跳转指令的第一目的地址与所述第二条件跳转指令的第二目的地...

【专利技术属性】
技术研发人员:戴涛陈华军许爱东关泽武丁伟
申请(专利权)人:南方电网科学研究院有限责任公司中国南方电网有限责任公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1