1006大设计翻译版基于特征码反病毒引擎与实现_第1页
1006大设计翻译版基于特征码反病毒引擎与实现_第2页
1006大设计翻译版基于特征码反病毒引擎与实现_第3页
1006大设计翻译版基于特征码反病毒引擎与实现_第4页
1006大设计翻译版基于特征码反病毒引擎与实现_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系(教研室)(签字:反引擎,特征码,附着方式,匹配算DesignandImplementationofAnti BasedonSignatureAuthor:LITutor:XIAChun-Ascomputersarewidelyusedinhumansociallife,peopleareenjoyingtheconveniencebroughtbythecomputerwhilealsofacingavarietyofsecuritythreats,thereisgrowingnumberofcomputersarecompromised,importantinformationisstolen,thesystemisevenparalysis,causinghugeeconomiclossestohumansociety.ThemalwareRepresentedbycomputerhas eadeadlykillerintoday'sinformationsociety,therefore,thestudyofesandanti-technologyhas eoneofthemaintaskoftheprotectionofcomputerinformationsecurity.Atpresent,themainanti-techniquesincludesignature-basedscanningtechnology,basedonheuristicscanningtechnology,verificationandmethod,immunetechniqueandtechnologiesbasedondetecting-likebehavior,eachtechnologyhasitsadvantagesanddisadvantages.Sincethesignatureisextracteddirectlyfromsamplesout,sowithhighaccuracyandspeedadvantagesonsignature-basedscanningtechnologytodetectknownes,mostanti-softwareisalsodesignedbasedonsuchtechnology.Inaddition,withtypeandscale eslargerandlarger,signaturedatabasehadtodesignmoreandmorelarge,theadvantagesofsuchtechnologyisfast ingnotsoobvious,thispaperfocusesonsignature-basedscanningtechnologyresearchandimprovement.Themaincontentsofthispaperinclude:firstly,anti-engineframedesign,thispaperbeginwithyzingClamAVopensourceantiengineworkflow,andthendesignaframeworkofenginethatcontainssignatureysismodule,fileparsingmodule,detection,scheduling,managementandoutputmodules,theframeworkdesignwiththeMVCpattern,separatetheModel,ViewandControllerapart,thisisfortheupgradeandimprovementofantienginelateleavingthegreatestdegreeoffreedom;secondly,viralattaentmethodsmodeling,modelingofviralattaentmethodsisthemethodthatimprovessignature,aslongasbeforethematchhasknowledgeofviralattaentmethods,cantheplaceofsignaturematchingtoafile,thepaperattachedtothewaytheismodeledandapplied;thirdly,findandimplementpatternsmatchingalgorithmfordetection,patternsmatchingalgorithmisthecoreofanti-enginesignaturedetectionmodule,thepaperachieveasinglepatternstringalgorithms(BMalgorithm)andmulti-modestringalgorithm(ACalgorithm)fordetectionindifferentmodes.Finallyisthedetectionalgorithmdesign,themainfunctionsofthealgorithmbasedontheoutputoffeaturecodeparsingmoduleandthefileparsingmoduleasinput,throughthepatternmatchingtodeterminewhetheragivenfileinfected,andextractchildbytestreamfromthelocationoffilebytestreamwheremaybeinfectedby,thenusethecorrespondingpositiondictionarytreedetectthechildbytestream.:Anti-engine,Signature,Attaentmethods,Matching 绪 研究背 国内外研究现 1.2.1分 反技 开源反引擎ClamAnti....................................................................研究目标与内 研究目 研究内 课题来 的组织结 相关技术现 ClamAV开源反引 DLL文件的相关知 高效的模式串匹配算 Knuth-Morris-Pratt字符串查找(KMP)算 Boyer-Moore字符串搜索(BM)算 Aho-Corasick自动机(AC)算 本章小 基于特征码的反引擎系统设 系统功能需 系统设计原 系统总体架构设 系统总体流程设 系统结构模块概要设 系统功能模块详细设 特征码解析模 文件解析模 检测模 调度管理模 检测结果输出模 本章小 基于特征码的反引擎系统实 系统开发环 平台环境和开发语 技术基 系统实现概 特征码解析模块实 特征码数据库进行设计与实 解析和封装特征码数据实 文件解析模块实 磁盘扫描功能实 扫描功能实 文件解析功能实 检测模块实 调度管理模块和输出模块实 本章小 系统实 实验环 功能实 实验目 实验过 实验总结与分 性能实 实验目 实验过 实验总结与分 本章小 总结与展 工作总 工作展 致 参考文 表表3.1数据库表格设 表5.1指定文件查杀模式时间效率实 表5.2指 查 图图1.1研究内 图2.1ClamAV源 图2.3ClamAV流程 图2.4模块定义文件内 图2.5项目属性中配置类型设 图2.6好后缀算法 图2.7好后缀算法 图2.8坏字符算法 图2.9坏字符算法 图2.10坏字符算法预处理数组BmBc的定 图2.11好后缀算法预处理数组BmGs情况(一 图2.12好后缀算法预处理数组BmGs情况(二 图2.13好后缀算法预处理数组BmGs情况(三 图2.14多模式he/she/his/hers构成的有限状态 图2.15主串为ushers的匹配过 图3.1系统总体流程 图3.2系统架构 图3.3文件结 图3.4检测过程流程 图4.1系统工程文件结 图4.2特征码数据表设 图4.3数据库SQL语 图4.4SigInfo结构体的定 图4.5SigDBHelper 图4.6SigReader 图4.7磁盘扫描功能的类 图4.8_finddata_t结构体的定 图4.9DirScanMode结构体的定 图4.10DirScaner 图4.11FileParinger 图4.12ACTreeNode结构体的定 图4.13检测模块的类 图5.1“help”命 图5.2“setStrategy”命 图5.3快速查杀模式验 图5.4第二次使用“start”命 图5.5删除可以文件命令 图5.6样本字节流和正常文件字节流对 绪 为主的软件已经成为了信息社会的致命,目前技术和技术有结合的趋势,这将使得计算机安全所着的越来越严重;对抗反技术的能力也越来越强,因此研究和反技术已经成了保障计算机的首要任务[3]。术、校验和法、免疫技术与基于检测行为的技术,每种技术都各有优缺点[6]一段能够“自我的代码”[7,8],它利用修改其他程序的方法将自身的拷贝放入其他法有按行为分类和按附着方式进行分类。的方式分类和按的附着方式分类[10,11]。按的方式分类可以将分为以下常见的六类文件型:又称寄生,通常寄生在其他文件中(Macro(Script行自我,一旦程序被激活或启动后用户无法终止其运行;(Worm:根据方式对进行分类有助于提高反引擎对新变种的适应能力,而如:宏就经常附着在数据文件的宏代码之前。反技法、免疫技术与基于检测行为的技术[6]。每种技术都有其优点和缺点,下面分优点变得不再那么明显[13]基于启发式扫描的技术是通过扫描与已知类似的代码或行为来检测的技由于很多系统程序和应用程序的二进制代码和行为与相似,因此此类技术的准确率校验和法是通过在当文件被修改时候,检测文件的哈希值(MD5CRC值)变化来检测的方法。此类技术实现起来比较简单,速度快,不仅能够检测已知,免疫技术是从自然免疫学原理中对生物进行预防的方法运用到计算机反染已文件,在每次之前,都会先判断文件中是否已经有标识,如果是置一些的标识,以达到防止。因此,免疫技术是一种防范计算机类繁多,在一个文件中加入所有的标识也不现实;最后,有些的标识不容易仿制,如果加上标识需要对原文件进行较大改动,例如[17]。基于检测行为的技基于检测行为的技术又叫基于虚拟机的反技术,一直是前沿的寄存器和硬件端口的计算机环境,然后将样本送入这个虚拟环境中执行,通过分析CPU、内存、寄存器和硬件端口状态的变化来了解的运行情况。由于此类技术是动态分析的行为特征,因此对未知的检测准确率较高[18]。否,此技术只能给出警告,不能给出的详细信息[19]。ClamAnti(后文中简称ClamAV)是一款UNIX下开源的(GPL)反工具程序、命令行扫描程序以及用于自动更新数据库的高级工具在内的大量实用程序。ClamAV是一个很好的学习反技术的工具,通过分析其源码,能够对传统的基于特征码的反引擎有一个较完整地理解[20]。中的。1.1 引擎框架设实 检测模 实现文件解析模 反引擎框架的设

1.1反用C式设,将模型(Model、视图(w)和控制(rr)分开,这是为反引擎后期的2)附着方式建Pratt)字符串查找算法[21]和BM(Boyer-Moore)字符串搜索算法[22],经典的用于检测技术的多模式串匹配算法有AC(Aho-Corasick)自动机算法[23]。在本引擎的检测实现定位算 数据库中出来的特征码和封装起来作为检测模块的输入。第一章绪论编写DLL文件相关的知识以及高效的模式串匹配算法。第三章基于特征码的反引擎系统设第四章基于特征码的反引擎实完成系统的设计后,根据第三章功能需求对系统功能与性能进试在合理的时间内检测出。相关技术的框架是所有工作的基础,本引擎参考ClamAV的框架,因此需要了解ClamAV的相关要寻找合适的模式串匹配算法。ClamAnti是一个UNIX下开源杀毒软件包,这个软件最主要目的是集成在邮件服务器里,查杀邮件附件中的。软件中包含主要一个灵活可升级的多线程程序,一个命令行扫描程序,一个自动升级程序,软件运行基于随ClamAnti软件包高效,多线程程支持数字签名的库升级程支持按扫描(Linux®andRR(2.0,ip,zip,zi2,ar,M (压缩的HTML,MSSZDD压缩格式内置支持mbox,Maildir和原始邮件文件在Windows下也已经有了ClamAV的可移植版本,本引擎所在的研究环境是Windows系统,因此从ClamAV官网()一份ClamAVforWindows的源代码进行分析。ClamAV源码如图2.1所示:2.1ClamAV用VS2010打开 NYY包NYN加NY退多 检测模 加 DLLWindowsC++语言开发的,Windows下将独立的模块编写成文件内的函数时,Windows操作系统才会把DLL文件加载器内,DLL文件本身的结构就是可执行文件,当程序需求函数才进行。动态库就是指DLL文件。(.def设置项目的属性中的配置类型为动态库(.dll,如图2.5所示2.42.5模块定义文件时,.def文件最有用。名称必须正确,即与生成的动态库的名称必须匹配。此语句将.def文件标识为属于DLL。器将此名称放到DLL的导入库中。EXPORTSDLL导出函数的序号值。通过在函范围必须是从1NNDLL导出函数的个数。有两种使用DLL库的方法:法是将与.dll文件配套的.h和.lib文件加入到另外法是利用函数指针和WIN32API函数LoadLibraryGetProcAddress装载DLL库中的导出函数,这种方法只需要.dll文件即可。以上便是DLWindws在检测技术和基于异常的检测技术中,经典的单模式串匹配算法有配算法有Aho-Corasick自动机算法,下面将详细介绍这三个算法。Knuth-Morris-Pratt字符串查找(KMP)算算法把字符匹配的时间复杂度缩小到O(m+n),而空间复杂度也只有O(m),n是主下面介绍KMP算法的详细过程:覆盖函数(overlay)pattern覆盖的定义是,对于一个序列 aj1aj,找到一个k,使a0a1...ak1akajkajk1...aj1aj,而没有更大k满足这个条件,那么就称序列a0a1存在覆盖a0a1...ak1ak,k为覆盖函数值。

kj+1串中找到相应的overlay函数值,k=overlay(k),如果此时pattern[k+1]≠pattern[j+1]并且k0,这个时候pattern[j+1]=-1有了覆盖函数,KMP算法的实现就简单了,假设从左向右匹配,但是当失配发生pattern自身就能体现出来,只要移动模式串下标(pattern_index)就可以了,当发生在j(此时pattern_index=j),只要把pattern(j-1)-overlay(j-1)=j-(overlay(j-1)+1(pattern_index设置成overlay(j-1)+1就行了pattern_index==0pattern第一个字符就不0target_index1了,相当于pattern向右移动了一位。Boyer-Moore字符串搜索(BM)算Boyer-MooreBobBoyer和JStrotherMoore在1977年设计。此算法仅对模式串进行预处理,而非被搜索的主串。BM算法在移动模式串的时候是从左到右,而进行比较的时候是从右到左的。BM 串:mahtavaatalomaisemaomalomailuun的位置,继续进行匹配,如图2.6所示。图2.6好后缀算法最长子串,使得P[m-s…m]=P[0…s],如图2.7所示。

图2.7好后缀算法当出现一个坏字符时,BM算法向右移动模式串,让模式串中最靠右的对应字符与Case1:模式串中有对应的坏字符时,如图2.8所示图2.8坏字符算法Case2:模式串中不存在坏字符时,如图2.9所示图2.9坏字符算法BM最大值。shift(好后缀)shift(坏字符)通过模式串的预处理数组的简单计算得到。好后缀算法的预处理数组是BmGs[],坏字符算法的预处理数组是BmBc[]。BmBcBmBcBmBc数组的定义,分两种情况:(一)2.10BmBck']k在模式(模式串中没有字符pBmBc['p']strlen(模式串)。2.10BmBcBM算法子串比较失配时,按好后缀算法计算模式串需要向右移动的距离,要借助(BmGs[i]2.11所示;(二)如果不存在和好后缀完全匹配的子串,则在好后缀中找到具有如下特征的最长子串,使得Pmsm]P0sP[m-s…m]=P[0…s],BmGs[i]为找到的子串P[0…s]到模式串末尾2.132.11BmGs情况(一2.12BmGs情况(二2.13BmGs情况(三Aho-Corasick自动机算法(简称AC自动机)1975年产生于贝尔。该算法应无关。ACKMP算法在多模式串情况下的拓展,广泛用于基于特征码的反引擎和基于规则的检测系统的算法中。AC算法的思想为用多模式串建立一个确定性的树形有限状态机,以主串作为该有2.14he/she/his/hers构成的一个确定性有限状态机,该状态机优先时,按照虚线的状态转换路径进行状态转换,例如:状态0时,当输入h,则转换到状态1;输入s,则转换到状态3;否则转换到状态0。2.14多模式he/shehishers2.15主串为ushers和输出函数output,由此构建一个树形有限状态机。下面先介绍这三个函数:转向函数指的是一种状态之间的转向关系。g(pre,x)=nextpre在输入一个字xnext(2.14中的实线部分。如果在模式串中不存在这样的转换,next=failstate。failstate状态的时候就不知道该往哪转了。所以就要在状态机中找到一个有意义的状态代替failstate,当出现failstate状态时,自动切换到那failstate状态的那个状态节点向上所经历的输入字符串某点。如果不存在满足条件的状态节点,则失效函数为0。状态i时,模式串集合{P}中的所有模式串可能已经完成匹配。ACTire;第二步,确定搜索路径(即标号,Tire的叶子结点表示识别到的模式串。该去当前节点指针所指向的节点继续进行匹配。abcdebcde、cde、dee。搜索过程目标字符串指针指向的字符和字典中的回溯路径上的节点是否可以输出(其实就是判断所有后缀字符串,sheheshehe也可能匹配,因此需递归判断后缀字符串节介绍了开源反引擎ClamAV相关的知识,主要分析了ClamAV的流程和架构;2.2基于特征码的反引擎系统设分析基于特征码的反引擎的功能需求;然后,根据对需求的分析,明确系统的设计本系统各个模块的详细设计。本章将着重分析系统实现中的设计和工作流程,系统的具基于特征码扫描的技术在检测已知的能力上有其他检测技术所无法的优在,因为要检测出所有的,必须有一个包含所有特征码的库,而这个件修改时候的不同,因此此类技术也基于启发式扫描一样的误报率高的问题;临的反形势。基于检测行为的技术是比较前沿的检测技术,它通过将所有可能的行为到一个行为特征库中,然后将待检测文件放入一个虚拟的计算机环境中执行并监测它的运行情况,然后跟行为特征库中的特征进行对比来判断文件是否被 给出具体的哪一类。反形势,系统的功能需求如下:拓展,对于本系统,库需要不断的更新,模块化设计是必然选择。少bug的处理时间,降低修复成本并且有助于代码的。对于本文中设计的系统,由于库升级和各模块间协作都对规范化有较高的要求;此外,本系统对外提供调用接本引擎,提供帮助文档,并提供详细令解释。NYNYNYNY3.1;利用这些特征码数据,构造出一组特征码字典树(AC字典树。模式,那么跳转到第4)步进行磁盘扫描;否则,跳转到第5)步。判断是否需要扫描,如果选择的指定文件检测模式,那么跳转到第7)步;否则,跳转至第6)步进行扫描。 如果有指定类型的文件,那么接着执行第8)步;否则,程序退出。括磁盘扫描、扫描和文件解析三大基本功能;检测模块主要是利用特征码字典3.2

3.2特征码解析模块是主要功能是从数据库中加载特征码数据并构造用于检测的 取出用于检测的字节流。 信息和位置显示出来。特征码解析模块是主要功能是从数据库中加载特征码数据并构造用于检测的就必须对位置信息(附着方式)进行建模,对其建模如式(3.1)所示: Type Offset。也就是说,一个在一个置,还需要偏移量来,例如:前置型,其附着方式为前置型,给出了代码在文件的头部位置,而偏移量给出了代码到文件头部的距离。(3.2ig{Site, 其中,特征码包含了两部分:一部分是的位置信息(Site,即式所给出的定义;另外一部分是的唯一标识信息(Iden,即一段字节流,这据库表格设计如表3.1所示。其中ID为数据库中一条特征码数据的唯一标识,名称是为了在检测结果输出模块输出的名称,附着类型、位置偏移量和标识分别对应式(3.1)和式(3.2)中 Type Offset和Iden3.1库表格设是的偏移量,数组的每个元素就是不同的特征码字典树,每个字典树用本文2.3.3中所介绍的AC字典树构造方法。文件解析模块的主要内容包括磁盘扫描、扫描和文件解析三部分。磁盘扫描部WindowsAPI获得磁盘信息,包括逻辑磁盘数量、盘符、磁盘类型和工作状态等;扫描部分主要功能扫描给定中的所有文件,这里可是递归扫描,取出用于检测的字节流。扫 ,本引擎目前也主要是处理这两类文件。Header(Code3.3(b)(Header(Data 3.33.4.3检测模本模块的主要功能就是检测,检测过程的流程如图3.4所示YNN出Y图3.4检测过程流程字节流是否抽取完,检测过程的输入是特征码字典树和文件字节流,从文过程结束;否则,进入第2)步。染;否则,跳转到第1)步。载特征码数据和构造特征码字典树的时候,磁盘扫描、扫描以及文件解析可以同时码数据;磁盘扫描、扫描和文件解析可以并行执行,磁盘扫描到一个之后就可以开始扫描,扫描到一个文件之后就可以开始文件解析。综上所述,包括调度信息和位置显示出来,这需要用到数据库表项中的名称一项。基于特征码的反引擎系统实操作系统:Windows集成开发环境:程序,因此Windows环境下多线程编程技术。[26,27]处理磁盘和文件的WindowsGetLogicalDrivesBitMap的形式返回,函数原DWORDGetLogicalDrives(void)。GetLogicalDrivesDWORD类型的值,每一位表示所对应的驱动器是否存在。一般情况下DWORD的数据长度是32位,GetDriveType:获取驱动器类型,函数原型为UINTGetDriveType(LPCTSTRlpRootPathName)lpRootPathName包含了根路径的字符串指针,返回值的不DRIVE_UNKNOWN为光驱,DRIVE_RAMDISKRAMGetSystemDirectoryWindows系统(System)的完整路径名,函数原型为UINTGetSystemDirectory(LPTSTRlpBuffer,UINTuSize)。参lpBufferString,指定一个字串缓冲区,用于装Windows名;nSizeLonglpBuffer字串的最uSize,说明缓冲区小于返回的字符串,返回值为所需缓冲区00uSize的值,则执行成功,返回值大小为系统的字符数。DeleteFile:删除一个存在的文件,函数原型为BOOLDeleteFile(LPCTSTR息;如果程序尝试删除一个不存在的文件,GetLastError返回ERROR_FILE_NOT_FOUNDGetLastError返回模式下对寻找系统和发现可疑文件时候删除可疑文件使用。Windows环境下动态技EXE程序确实要调用这些DLLEXE文件的大小和对内存空间的需求,而且这些DLL模块可以被很多应用程序使用。DLL文件的创建需要模块定义(.def)文件文件,其中.def文件是用于描DLL文件的使用方式有两种:法是将与.dll文件配套的.h和.lib文件加入到工,在程序中申明包含.h文件,然后在程序中就能直接使用DLL库中的导出函数了;另外法是利用函数指针和WIN32API函数LoadLibrary、GetProcAddress装载DLL库中的导出函数,这种方法只需要.dll文件即可。WindowsWindowsWindowsAPI函数CreateThread,也可以调用C语言的运行库函数_beginthread(包含在头文件PROCESS.H)_beginthreaduintptr_t_beginthread(void(*start_addressvoid*unsignedstack_size,void*arglist)。如果创建成功,函数将返回一个新现成的句柄;否则,返回-1。参start_address新线程的起始地址,指向新线程调用的函数的起始地址;stack_size为新线程的堆栈大小,可以为0;arglist为传递给线程的参数列表,无参数时为NULL。hEvent=CreateEvent(&sa,fManul,fInitial,NULLfInitial指示事件的初始触发状态,果开始的CreateEvent函数的fManual参数被设置为FALSE,那么函数WaitForSingleObject返回后,事件对象状态自动设置为为未触发。也可以通过如下代模块、检测模块、调度管理模块和检测结果输出模块五个模块。图4.1展现了工程 4.1加载特征码数据库,特征码在数据库中,将所有特征码从数据库中用这些特征码数据,构造出特征码字典树(AC字典树。 扫描,除了在指定文件检测模式下,所有模式都得调用扫描给定中的所有文件的部分,这里可是递归扫描(递归扫描子下的文件),也可以非递归扫描(只扫描当前下的文件。同的文件类型对文件进行解析,抽取出用于检测的字节流。检测,这是本引擎的部分,以特征码字典树和文件解析获得的字节流为的名称以及代码所在的位置;此外,如果用户选择了删除检测出特征码数据库需要本引擎所使用的特征码的所有信息,根据本文3.4节中对病4.2所示,其中ID是特征码数据表的主键,其他各个部分都是的具体信息。4.2MySql4.2SQL4.34.3SQLSigInfo将特征码数据封装起来,所有从数据库读出的单条特征码数据都封装在该结构体的实例中。结构体的定义如图4.4所示。为了实现与数据连接部分的透明化,设计SigDBHelper类来管理数据库的连接。的数据库连接。SigDBHelper4.5MySql数据4.5SigDBHelper对应于数据库中特征码数据表,程序中设计SigReader类来封装所有的特征码。SigReader类提供接口read_sigs从特征码数据库中把所有特征码解析出来,提供接get_nSigsget_sigInfo来获得一条特征码的数据(返回作就包括SigReader类所提供的接口。4.6SigReader文件解析模块需要完成磁盘扫描功能、扫描功能和文件解析功能。本模块主要WindowsAPI对磁盘信息、信息以及文件信息分析出来。描的过,将获得的每个逻辑磁盘信息在该类的实例中。扫描过程以及逻辑磁盘信息。DiskScaner类提供接口scan_disk用于扫描磁盘并将StringDiskScaner类中包括一个数组用于所有逻辑磁盘的信息4.7C语言库中的一个结构体_finddata_t,该结构体是用于调用库函数扫描时候返回的文件信息(包括文件属性,创建时间,最后一次时间和最后一次修改时间,该结构体的定义如图4.8所示。4.8_finddata_t递归扫描,以及需要扫描的文件类型。结构体的定义如图4.9所示,第一个元素是文件,就把第一位置为1。4.9DirScanMode为了实现扫描功能的透明化,设计一个扫描器类DirScaner用于管扫描过程以及所扫描下的文件信息。DirScaner类提供接口set_dirPath用于指定需要扫描的路径,提供接口set_dirScanMode用于指定扫描模式(包括是否递归扫描和需要扫描的文件类型scan_dir用于启动扫描器,提get_nFiles用于获得文件数量,提供get_filePath获得一个文件的路径,提供get_fileData用于获得一个如图4.10所示,属性中包括路径,扫描模式、递归层次以及文件信息,操作基本4.10DirScaner为了实现文件解析过程的透明化,设计一个文件解析器类FileParinger用于管理文口get_sFileContent用于获得解析得到的文件中需要检测部分的内容(二进制字节流FileParinger4.11所示,属性包括文件路径、文件类型和文件中抽取4.11FileParinger(使用的AC算法AC算法中构造模式串字典树的方法实现构造首先,设计一个类BMSearcher用于封装BM算法需要使用的信息和过程。BMSearcher类不对外提供接口,定义了三个操作用于实现匹配过程:cacu_bcSkip过程BM算法的主要流程。五个操作用于实现匹配过程:build_acTree过程用于构建字典树,match_sSrc过程用于用于获得匹配结果,free_acTree过程用于释放字典树空间。最后,检测模块设计类Matcher用于对外统一提供接口。Matcher类同时继承如图4.13所示。图4.13检测模块的类中加载的特征码数据;磁盘扫描、扫描和文件解析可以并行执行,磁盘扫描到一个之后就可以开始扫描,扫描到一个文件之后就可以开始文件解析。引擎运根据第3章的需求分析和系统设计,本章介绍了整个基于特征码的反引擎的系统实现。4.1节介绍了本系统开发的平台环境和语言基础。4.2节总体概述了系统的实现模块、文件解析模块、检测模块、调度管理和检测结果输出模块的具体实现过程,系统第3章和第4章分别介绍了基于特征码的反引擎系统的详细设计及功能模后针对系统功能设计具体的实验,实施实验并分析,验证本系统的可用性。操作系统:32Windows数据库:MySql及系统能否成功执行检测工作。 楚用什么命令的时候,可以输入“help5.1 只会检查EXE文件;提供命令“delSuspFile”和“unDelSuspFile”用于设置在发现可疑开始一次检测,检测的模式和参数是通过以上叙述令进行设置。5.1“help 和文件的路径,如图5.2所示。5.2“setStrategy”命通过1)可以知道,开始一次查杀是使用“start”命令,查杀使用的模式是通过System32下的所5.3所示。接着验证其他三种查杀模式是否工作正常,通过反复实验验证,各种模式下都能准确的查出样本所在的位置。在图5.3中可以看到,检测结果将显示的名称和的位置(匹配位置,这满足了第三章功能需求里所新型特征码的效果,能够给出的位置和扫描过 检测结5.3命令的时候需要运行特征码解析模块,如图5.3所示,可以看到需要特征码和构造字典树;在第二次以及以后使用“start”命令进行检测的时候就不需要运行特征码5.4所示,可以看到本次查杀模式是全盘查杀,在开始检测之后,没有看到特征码和构建特征码的过程,而是直接扫描磁盘。5.4第二次使用“start”命设置“delSuspFile5.5所示。可以看到,此次检测过程是指定查杀模式,在发现可疑文件之后会删除可疑文件,并给出提醒。5.5各个查杀模式的运行状况良好,这是本引擎的部分,实验同时检测了本系统的所有模块,各个模块配合完成检测工作。通过实验验证,在每个模式要进行检测的文件路径,本引擎将针对这个文件进行查杀。验证指定文件的查杀效率的过程是通过给定十组不同文件大小和位置的样本进行验证,这十组文件的大小、位置以及检测时间如表5.1所示。文件大小位置检测时间1121345685.6图5.6样本字节流和正常文件字节流对指 查杀模 查杀模式所用的二十个文件(时间效率测试的十个文件,准确性测试的十个文件,在非递归扫描模式的验证中把这些文件都放在实验下进行实验,在递归模式的验证中把这些文件分散放在实验的各个子下进行实验。间效率,而时间效率跟的下文件的数量有关,因此设计实验包含的文件数量相关,设置的实验的文件个数和检测时间如表5.2所示,从实验数据可以看出,扫描表5.2指 查时间用户可以通过选择快速查杀模式让本引擎检测系统(C:\Windows\System32)下放在系统下或者系统的子下。准确率。经过实验验证,本引擎对已知的检测具有很高的准确率,即使一个正常文件的字节流 特征码极其相似也不会误报,除非包 特征码能符合第三章所功能需求与性能需求。总结与展人类社会造成了巨大的经济损失。以计算机为主的软件已经成为了信息社会的致命,目前技术和技术有结合的趋势,这将使得计算机安全所着因此研究和反技术已经成了保障计算机的首要任务。码是从样本中直接提取出来的,所以基于特征码扫描的技术在对已知的检测上着种类和规模的不断变大,特征码数据库不得不设计的越来越大,此类技术速度快第一,反引擎框架的设计。反引擎框架式引擎各个模块之间的关系设计,(Model开,这是为反引擎后期的升级和改进留下了最大的自由度。此外,由于各个模块之毒引擎ClamAV工作流程分析之后设计出来的。(DOS窗口下与用致严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地和激励着我。夏老师不仅在学业上给我以精心指导,同时还、生活上给我以无微不至的,在此谨向夏老师致以诚挚的谢意和崇高的敬意。其次,我要感谢答辩组的、阁感谢项目组长师兄,你总是能够很有耐心地指导我,在关键的时候总是能够点醒迷惑中的我,并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论