论文部分内容阅读
随着科学科技的发展,尤其是信息化进程的不断加快,计算机及互联网在人们日常生活中发挥的作用越来越大,普及率也越来越高。计算机在各方面给人们带来便利、高效率的同时,计算机及网络的安全问题也接踵而至,计算机病毒每年都会造成巨大的经济损失。
计算机病毒的不断出现也带动了反病毒技术的发展,反病毒的研究主要以如何检测程序是病毒程序为出发点,例如常用的基于特征值匹配技术,通过与病毒库中的特征值进行匹配,来判定程序是不是病毒程序。为了防止自身被检测出来,计算机病毒针对特征值匹配的方法采取了变形技术。本文以病毒使用的变形技术为研究对象,分析病毒使用的几种变形技术,设计了基于语义的病毒行为检测方法,以判断程序隐藏恶意行为的情况。
本文针对Win32 PE病毒,通过反汇编手段,设计反汇编模块,获取程序的汇编代码,使用设计的中间表示形式对汇编代码进行转化,并建立设计程序流程图用以描述病毒。使用中间语言建立恶意行为模板,设计行为模板与待检测程序流程图进行指令匹配的方法。流程图与模板存在相同指令的匹配时,利用变量的定义使用关系来确定模板表示的恶意行为在被检测的程序中是否存在。
实验结果表明,对采用病毒变形技术变形的代码进行检测,使用基于定义使用关系的语义方法是有效的。该方法对于变形技术中的无效指令插入技术、程序流程改变技术、寄存器替换技术完全有效,对于相同功能指令替换技术部分有效。对实际病毒文件检测也证明,该方法对病毒及其变种有较好的检测效果。