ClamAV学习【1】——ClamAV流程】的更多相关文章

Java学习笔记之---流程控制语句 (一)循环语句 (1)if语句 if(布尔表达式){ //如果布尔表达式为true将执行的语句 } if(i%2!=0){ System.out.println(i); } (2)if...else语句 if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false } if(n%2==0){ System.out.println("偶数"); }else{ System.out.println("…
目录 activiti学习6:启动流程后动态获取流程图 一.绘图原理 二.根据流程定义id绘图 三.根据流程实例id绘图 3.1 基本原理 3.2 当前节点的获取 3.3 走过的节点的获取 3.4 绘图 四.总结 activiti学习6:启动流程后动态获取流程图 上一篇博客中介绍了activiti如何开启流程和让流程前进,这次来学习下如何动态的获取activiti的流程图 本文中使用的activiti版本是5.22.0 一.绘图原理 activiti中提供了一个可以用来绘制流程图的类Defaul…
目录 activiti学习5:开启流程和流程前进 一.流程和任务的关系 二.开启流程 2.1根据流程定义key开启流程 三.查询用户任务 3.1 TaskQuery 四.完成任务 activiti学习5:开启流程和流程前进 上一篇博客中介绍了activiti如何部署流程定义文件,这次来学习下如何开启流程和使流程前进. 一.流程和任务的关系 以下是一个简单的请假流程图,其中有一个开始事件,两个用户任务,一个结束事件. 启动流程后,activiti会自动创建第一个流程节点的用户任务,然后我们完成第一…
不知道是对还是错,一开始就上手学习ClamAV,享受被虐的过程吧. 发现ClamAV的官网也很少资料,搜商还有待加强,大概翻阅了example的源代码,明白了其查毒的大概方式(BM和AC算法匹配特征码).但是文件巨大,也没找到个合适的介绍资料. 下周计划就先学学BM算法和AC算法,还有翻翻ClamAV源码,先摸索下大概框架结构,重点先PE文件的查毒吧. 下面就贴上一张ClamAV的流程图.  原文地址:http://blog.csdn.net/betabin/article/details/74…
之前用SourceInsight静态分析了ClamAV引擎源码,现在打算开始动态研究下.不过出师不利,一开始就遇到纠结的问题,能力还有待提高. 从官网下了一个VS2005工程的源码包(http://download.csdn.net/detail/betabin/4219529). 首先是解压后,libclamav下的phishcheck.c文件被毛豆直接干掉了,里面应该有太多钓鱼特征码吧.然后得把工程移到'安全地带'. 接着,出现问题,找不到pthreadVC2.dll.那我就去下个,也只能说…
搜查到一份详细的ClamAV病毒文件格式资料(http://download.csdn.net/detail/betabin/4215909),英文版,国内这资料不多的感觉. 重点看了下有关PE的病毒文件格式,就是*.mdb文件.还有之前郁闷用途的*.cvd文件. 就粘贴下刚刚的一点笔记: 1.介绍 CVD的前512bytes是其文件头,格式如下: ClamAV-VDB:build time:version:number of signatures:functionality level req…
今晚继续浏览ClamAV代码,挖掘到了cli_magic_scandesc函数,发现前面包装了很多次扫描函数,这里就是最后一层的感觉.一些扫描限制判断加上文件类型判断,采用不同扫描函数处理. (PS:发现这些函数个头都很大,虽然按着功能分段好理解,但是书本不是说一个函数一个功能模块么?难道是不实际,还是理解错误?) 代码分析如下: //magic,说明这很神奇 int cli_magic_scandesc(int desc, cli_ctx *ctx) { int ret = CL_CLEAN;…
吃饱饭继续浏览Manager.c的scanmanager函数,这个函数的功能吧,暂时理解如下. 接收一个命令行参数(经过处理的optstruct结构指针). 然后根据选项判断文件类型种类,还有一些扫描选项.看到了AC-Only选项,可是没有BM-Only选项,不解.然后就进行了病毒库的加载和引擎的初始化,接着进行了一些扫描限制(扫描文件大小.数量.递归深度等)设定,还有扫描的文件类型(貌似上面的是用来构建引擎,现在的是用来设置扫描).然后就是重点,针对文件名进行处理,判断是否是目录还是单个文件,…
就简单给代码加上些注释,方便理解.第一次浏览,应该会有不正确的理解.后面会继续学习修改. 文件:clamscan\clamscan.c 代码如下: nt main(int argc, char **argv) { int ds, dms, ret; double mb; struct timeval t1, t2; #ifndef C_WINDOWS struct timezone tz; #endif struct optstruct *opt; const char *pt; //pthre…
这个cli_untgz函数,是用来解压CVD文件的. 那么,就刚先搞清楚CVD文件的功能作用.下了源码,我们会发现,没有前面提到的*.mdb或者*.hbd等病毒签名文件.原因就是,那些文件都是由CVD文件解压生成的,是的,CVD是个病毒签名压缩文件.(下面是daily.cvd解压后的) CVD文件,前512个bytes是一个特殊的头文件,在前面也提到过了(http://blog.csdn.net/betabin/article/details/7448447).记录引擎病毒库的简单信息.然后后面…