第十一章-OAV代码分析与使用配置_第1页
第十一章-OAV代码分析与使用配置_第2页
第十一章-OAV代码分析与使用配置_第3页
第十一章-OAV代码分析与使用配置_第4页
第十一章-OAV代码分析与使用配置_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

本章学习目标了解杀毒引擎的框架驾驭OAV运用方法OAV简介OAV(OpenAntiVirus)项目(://)是在2000年8月30日由德国开源爱好者发起,旨在为开源社区的反病毒开发者供应一个沟通和项目管理的资源平台。该项目具有明确的路途图:为网络(邮件服务器、internet网关、文件服务器等)终端用户和企业客户供应病毒防护的开源解决方案。为网络终端用户和企业客户供应计算机和网络平安的开源解决方案。研发开源的扫描引擎,从而使将来的平安需求不再依靠于商业供应商。通过开源系统和软件产品,为系统管理员供应系统复原实力。建立网站,供应最新的病毒和平安信息。建立How-To项目供应相关信息和白皮书,用户和系统管理员可以通过该项目供应的信息,利用开源平安解决方案,从而确定反病毒策略。项目组成:ScannerDaemon,VirusHammer和PatternFinder是符合GPL规范的病毒扫描器的一个简洁而基础的实现,用Java语言写成。squid-vscan可以利用SquidHttp-Proxy扫描网络流量,从而侦测病毒。samba-vsan利用samba服务器供应on-access病毒扫描。最新的SUSELinux已经包含了该工具。此外,很多开源爱好者还开发了很多小工具,具体状况参见:///projects.phpScannerDaemon架构ScannerDaemon基本上可以分为如下几个模块:扫描引擎模块扫描配置模块病毒签名文件解析模块文件系统支持模块(扫描目标文件/文件夹时所须要)Main-class类主要包括两个重要的类:RequestHandlerScannerDaemon扫描配置模块该模块(源代码的组织结构看,可归入到扫描引擎模块中,这里单独拿出来分析)。该模块主要包括两个类:WriteableScanConfiguration这个类放了一些扫描引擎的属性名。DefaultScanConfiguration该类是默认的属性配置类,其构造函数就是对扫描引擎的属性赋以默认值。病毒签名模块这个模块中涉及到的类/接口包括CredoFile类、CredoEntry类、PositionFoundEvent类、PositionFoundListener接口、StringFoundListener类、StringsParser类、WildcardPattern类、StringFinder类等,其中StringsParser类、WildcardPattern类和StringFinder类尤为重要。病毒签名文件首先看看病毒签名文件究竟是什么形式。下载VirusSignatures-latest.zip,然后解压缩,可以看到里面包括clamav.strings和clamav2.strings两个子文件,这两个子文件可以用notepad文本工具打开。摘取clamav2.strings文件中的一段内容如下(一行):Oror-fam(Clam)[1*0*3*0*3]=495243*56697275*53455859330F5455*4B617A61*536E617073686F摘取clamav.strings文件中的一段内容如下(一行):Eicar-Test-Signature[32]=58354F2150254041505B345C505A58353428505E2937434329377D2445494341522D5354414E4441从这段代码大致可以认为,Oror-fam(Clam)、VBS.Kristen等为病毒名称,[1*0*3*0*3]=495243*56697275*53455859330F5455*4B617A61*536E617073686F等字串为该病毒的一段特征模式串。CredoFile类该类只是把一般文件包装成jar格式输入流CredoEntry类依据(病毒签名文件)的介绍,病毒签名文件.credo文件是一个jarpackage,这个package里的每一个文件就用一个credoEntry类实例来表示。这个类特别简洁,此处不做进一步分析。CredoParser类这个类的作用是:在指定的书目下查找.credo文件,供StringsParser类解析.credo文件的具体内容。StringsParser类这个类具体完成对.strings文件的解析。WildcardPattern类这个类是用来处理不包含“*”字符的模式串,即模式串具有统一的形式,无须用“*”字符分隔开,例如(5.StringsParser类)节中文本行2和3中“=”后面的模式串。该类是病毒签名模块中的一个重要类。StringFinder类这个类是病毒签名模块中的核心类,该类具体保存了各种病毒的名称和特征串,并给每个相应的病毒加上了一个侦听器。扫描引擎模块这个模块是ScannerDaemon的中心模块,先简洁看看对几个与事务侦听器有关的类/接口,然后按着扫描的整个过程逐个对相关类分析。主要包括PositionFoundEvent类、PositionFoundListener接口和StringFoundListener类。MatchArray类这个类包括两方面的功能。第一,依据病毒签名文件,建立模式串hash表,在ScanEngine类的初始化函数中,调用函数loadCredoFiles(scanConfiguration),这个函数经过层层调用,最终调用MatchArray类的addString函数建立hash表。其次,通过调用createCensor函数返回MatchArrayCensor类实例,而MatchArrayCensor类供应对文件的扫描。文件系统支持模块文件系统支持模块主要包括VfsEnty类、FileVfsEntry类、VfsContainerFactory接口、ScanEngine类和容器类等。VfsEntry类这是个抽象类,表示一个文件/文件夹节点。FileVfsEntry类该类是VfsEntry抽象类的子类。该类实现了VfsEntry中为定义的抽象函数。测试实例test1.txt(不含病毒):It'sagoodday!test2.txt(含Eicar-Test-Signature病毒):X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*test3.txt(含W32.GriYo病毒):CodedbyGriYo29AW32.GriYotest4.txt(不含病毒):29ACodedbyGriYoW32.GriYotest5.txt(含Eicar-Test-Signature和W32.GriYo病毒):X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*CodedbyGriYo29AW32.GriYotest6.zip(含含Eicar-Test-Signature和W32.GriYo病毒):包含test2.txt和test3.txt两个子文件test7.zip(不含任何病毒):包含test1.txt和test4.txt两个子文件1.对不含病毒模式串文件的测试测试文件名为test1.txt(放在项目文件夹下),内容为:It'sagoodday!客户端和服务器建立telnet连接后,输入scantest1.txt就会在客户端吩咐行窗口中输出:OK表明未发觉任何病毒。2.对第一类模式串的测试测试文件名为test2.txt(放在项目文件夹下),内容为:X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*其中X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDA是Eicar-Test-Signature[32]病毒的模式串58354F2150254041505B345C505A58353428505E2937434329377D2445494341522D5354414E4441翻译后得到的字符串(每两个16进制码翻译成一个ascii字符,例如58—X,35—5),运行ScannerDaemon,然后客户端连接telnetlocalhost8127之后输入scantest2.txt,就会输出Found‘Eicar-Test-Signature’in‘test2.txt’。说明匹配成功。3.对第三类模式串的测试测试文件名为test3.txt(放在项目文件夹下),内容为:CodedbyGriYo29AW32.GriYo其中CodedbyGriYo和29A是W32.GriYo病毒的两个依次子串436F64656420627920477269596F和323941的ascii码翻译串,同样测试后,客户端会输出:Found‘W32.GriYo(Clam)’in‘test3.txt’。说明匹配成功。为了说明第三类模式串必需按模式字串的依次得到匹配,另测试文件test4.txt,内容为:29ACodedbyGriYoW32.GriYo运行后,客户端输出:OK。说明子串依次变更后,匹配未成功。4.对含多个病毒模式的文件的测试测试文件名为test5.txt,内容如下:X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*CodedbyGriYo29AW32.GriYo输出为:Found‘Eicar-Test-Signature’in‘test5.txt’。说明扫描并未发觉W32.GriYo病毒。5.对含多个病毒的zip压缩包的测试测试的压缩包文件为test6.zip,包含test2.txt和test3.txt两个子文件。其中test2.txt含有Eicar-Test-Signature病毒,test3.txt含有W32.GriYo病毒,扫描的输出结果是:FOUND'W32.GriYo(Clam)'in'test6.zip>>zip:test3.txt'说明只发觉了一个病毒。6.对不含任何病毒的zip压缩包的测试测试的压缩包文件为test7.zip,包含test1.txt和test4.txt两个子文件,不含任何病毒,扫描后,客户端的输出为:OK表明未发觉任何病毒。ScannerDaemon配置在%ScannerDaemonDir%书目下建立credo书目和temp书目,把VirusSignatures-latest.zip解压缩得到的VirusSignatures.credo文件放到credo书目下,temp书目为扫描压缩包文件所必需。用wordpad(或notepad)工具打开ScannerDperties文件,要使该文件中的配置信息起作用,只要去掉属性名前的“#”(以“#”字符开头表示注释行)字符便可。ScannerDaemon运用说明服务器端启动ScannerDaemon1)启动吩咐说明 启动ScannerDaemon时可以接受的参数列表为: –nosignature:表示病毒签名文件无需检查签名(VirusSignatures-latest.zip中的病毒签名文件是没有签名的,所以运行ScannerDaemon必需加上此参数) –configfilefilename:指定配置文件,为指定该参数,默认的配置文件为%ScannerDaemonDir%\ScannerDperties。–name_of_propertyvalue_of_property:指定属性名和属性值。 使吩咐行的当前工作书目进入%ScannerDaemonDir%,一般只要运行 java–jarScannerDaemon.jar–nosignature便可依据默认配置启动ScannerDaemon。 假如执行 java–jarScannerDaemon.jar–nosignature–configfileconfigure.txt表示将依据configure.txt文件配置启动ScannerDaemon。 java–jarScannerDaemon.jar–nosignature–engine.tempdirectorytempfile表示临时文件夹名为tempfile。2)配置属性的优先级总共有多种方法配置ScannerDaemon的方法:默认属性,在吩咐行参数中指定某个属性的值,默认配置文件,自定义配置文件。各种配置方式的优先级关系如下:吩咐行指定属性>自定义配置文件>默认配置文件>默认属性。2.客户端连接ScannerDaemon服务器的端口是8127,在客户端telnet连接到服务器端的8127端口,便可执行客户端的

温馨提示

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

评论

0/150

提交评论