Clamav杀毒软件的开发

一、clamav源代码编译与库文件获取
1、安装zlib(clamav编译中会用到):
tar -zxvf  zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
make install    (zlib 编译安装)

2、clamav的编译与安装
tar -zxvf clamav-0.95.2.tar.gz  (解压)
cd clamav-0.95.2  (进入目录)
./configure --prefix=/home/local/clamav  (设置安装目录,便于查找)
make (编译)
make install (安装到指定目录下)

3、提取头文件,库文件
完成1、2之后可以在/home/local/clamav目录下有bin,etc,include,lib64,logs,sbin,share和updata文件夹。bin中是可以一些可以直接运行的官方程序,我们这里是讨论的使用clamav提供的接口,开发具有病毒查杀功能的软件,所以不会用到这些软件。
在include中的clamav.h文件,这是我们开发时需要包含的头文件。
lib64是编译时需要包含的库目录(在makefile中包含库目录-L $(CLAMAV_ROOT)/lib64 –lclamav)。

4、运行时需要的文件
运行时使用的动态库名为libclamav.so.6,不过在lib64里的libclamav.so.6是一个连接文件指向libclamav.so。为了在非编译系统中使用开发出的软件时方便,不妨将libclamav.so更名为libclamav.so.6并放到该系统的/lib64目录下。
另外在运行软件的开始需要加载病毒库main.cvd、daily.cvd和bytecode.cvd。可在clamav官方下载病毒库文件,下载地址以及具体的 实现代码可在本文源址( http://www.927tea.com/post/10.html)的回复中找到。病毒库所在的目录位置需要在软件中加载。

二、clamav的初始化
1、动态库初始化:cl_init(CL_INIT_DEFAULT)) ;
2、创建杀毒引擎:struct cl_engine *engine; engine = cl_engine_new();
3、加载病毒库:
unsigned int sigs = 0;  //病毒特征码的个数
cl_load(<病毒库所在目录>, engine, &sigs, CL_DB_STDOPT);
4、初始化引擎:cl_engine_compile(engine);
5、杀毒引擎释放:cl_engine_free(engine);

三、基本的文件查毒
1、获取文件句柄:int fd=open(file, O_RDONLY); //只读方式打开文件
2、指定文件查毒:cl_scandesc(fd, &virname, &size, engine, CL_SCAN_STDOPT);

返回CL_VIRUS时表示有毒,返回CL_CLEAN时表示无毒。

信息安全之家 www.xxaqzj.com提供

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值