没有合适的资源?快使用搜索试试~ 我知道了~
ClamAV源码分析笔记
5星 · 超过95%的资源 需积分: 36 124 下载量 12 浏览量
2009-05-06
15:28:42
上传
评论 1
收藏 598KB DOC 举报
温馨提示
试读
64页
杀毒软件ClamAV系统的源码分析笔记,其中包括ClamAV的安装和编译过程。
资源推荐
资源详情
资源评论
软件简介:
是一个 下开源杀毒软件包,这个软件最主要目的是集成在
邮件服务器里,查杀邮件附件中的病毒。软件中包含主要一个灵活可升级的多线程后台程
序,一个命令行扫描程序,一个自动升级程序,软件运行基于随 软件包同
时发布的共享库文件。你也可以在你的软件中使用这些共享库文件,最重要的是,病毒库
升级的很快很及时。
主要特征:
命令行扫描程序
高效,多线程后台程序
支持 的 接口
支持数字签名的病毒库升级程序
支持病毒扫描 语言库
支持按访问扫描()
病毒库每天多次升级(可以查杀的总病毒数量见主页)
内置支持 ( !), "#,$%#,%#,&,'(),'*+,'
,'(压缩的 ,&'), '" 压缩格式
内置支持 *-,' 和原始邮件文件格式
内置支持 .,$,和 . 压缩的 .) 可执行文件
本身是在文字接口下运作,但也有许多图形接口的前端工具 $+-/可用,
另外由于其开放源代码的特性,在 0-1 与 '2( 平台都有其移植版。
]:一款 UNIX 平台上的基于 GPL(通用公开许可证:General Public License)的反
病毒工具集 是一款强大的注重邮件服务器附件扫描的反病毒扫描器。它含有一个
小巧的可升级的多线程 daemon、一个命令行扫描器和自动升级工具。Clam AntiVirus 基于
AntiVirus package 发布的开源病毒库,您也可以将此病毒库应用于您自己的软件中,但是
别忘了经常升级。
反 病 毒 软 件 2 源 代 码 分 析 £!34/4安 装 编 译
(http://blog.sina.com.cn/s/blog_4c11fc6f010008n7.html~type=v5_one&label=rela_nextarticle)
分类:病毒
最近发现网上有个开源的反病毒软件 ,官方地址是 ,下个最
新版本试下先。
据介绍这只是个 壳,用 写的,其实用的是
(),这个引擎原来是 的,主要用做 防毒,后
来被人改成通用的防病毒引擎了。后来又被移植到 ! 平台上("#)
, 用的应该就是这个 版本的,下个源代码研究下
("#!!$)。
解压后,用 %!#&&' 打开 ,解决方案中有几个工程显示找不到,打开后发
现打不开的是一些 工程以及一些插件工程,这些都是辅助工程,暂时可以先不管它。
直接编译解决方案会报很多错误,仔细分析后发现是工程的 !!!( 中填
的都是绝对路径:)(!%)*+),()%!
#&&')-)),可见这哥们叫 *+.,将所有的工程的这个选项都替换成相对
路径,或者如果你愿意,就建个那个名字的目录,将所有的源代码都拷到那个目录下,是最方便的。
编译整个解决方案,其它都成功了,只有一个 工程失败,显示在目录 下找不到一
些文件,这个工程是个打安装包的工程,忽略它其实无所谓,如果想编译成功一次搞定的话,再去
下个 的制作好的二进制版本("#!!),安
装完成后,从安装目录里拷贝那几个文件出来(一共是 / 个),再重新编译,就可以了。如果想安
装一下试试的话,刚才安装的那个得先卸载掉才能行。
先分析一下解决方案本身,发现一共 0 个工程,其实在编译解决方案的时候,并没有编译 !
那个工程,但是用到了 ! 目录下的代码。而且如果手工编译 ! 工程的话,发现编译不过,
显示预编译头的错误,其实这个工程没有使用预编译头,但是在工程的属性中却显示使用了预编译
头,修改一下 ! 工程属性,不使用预编译头,仍然编译不过,显示 #1//
$&,查了一下,是 编译器版本的问题,估计是这块那位老
兄还没搞定,不管了,反正不影响使用。
其它的工程都依赖于 2 工程,这是个 2 库。以后再分析代码部分,先试一下安装好的东
东。一共是 ' 个 文件:
:用来显示、配置 )!
!:(,不知道什么东东
!:(,不知道什么东东
:%,这是扫描文件查毒用的
:这个是从网上更新病毒库的
这些文件都没有 ,需要在 ,( 命令窗口中运行,可以打一下— 看看帮助。
我们试一下主要的功能:
3)4))3546
后面的546找个目录试一下,78,系统正在扫描,一切正常。
反病毒软件 2 源代码分析£!4/4基本分析
先粗跟一遍整个代码的执行过程,找出程序模块的大致结构,以及病毒扫描的关键点。
整个解决方案的病毒扫描的入口应该是 这个工程,因此先从这里入手,先修改一下工程
的 !2 属性,设置 ! 为硬盘上的某个 文件,这样调试时就直接
让 扫描这个 9 文件了,当然 应该不只能扫描 9 文件格式。
整个工程是 写的。
函数在 文件里,这个函数一直到£:;.<这句,都在处理
一些参数,这句应该是进行扫描的入口,这句执行完,下面就只是£! 一些扫描结果了,跟踪进
来进入 。
开始一堆 => 应该是处理要扫描的参数,是什么文件格式,是不是压缩文件,什么的。到:
;;:=!;!2!?@?@?!2...A
;3BC)3?=;..<
;!2!.<
'&<
D
;!2!.<
D
;B.A
;3BE$!2)3.<
'&<
D
;;:=2!;..B:&.A
;3B(2$C)3?=;..<<
'&<
D
显然是在初始化病毒库了,应该是读入检查 ! 和 !! 这两个病毒库文件。再往下处
理到
;!@%=F,G.A
%=FH9I
:4;????@?.<
2><
%=F(H
:!;????@?.<
2><
!
;3B*!4;C.)3?4.<
:'#<
D
程序进入了 4,这里应该是进行文件扫描了,如果输入的参数是文件夹,则应该进入
! 再递归最终还是处理到文件。跟踪进入 4,
;;!:;4?7=H(7*JKL7=M*HK..:: N.A
;3OE4C)3?4.<
'1<
D
;;:=!;!?@?@2>???..::
J=H%.A
这里打开文件,把 ! 文件号做为参数传进 !,一同传入的参数还有扫描引擎,以及一些扫
描参数。进入 !,这时进入的文件是 2),这时已经进入到了
2 工程,应该是处于核心扫描引擎了。下面又进入£==!;.函数,运行到
:=4#;!? 6.<
这句时, 值变成 J=GK9=,%9P9,可见已经检测到要扫描的文件是 9 文件格式了。运行到
剩余63页未读,继续阅读
fwxj813604
- 粉丝: 4
- 资源: 38
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页