博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ClamAV学习【7】——病毒库文件格式学习
阅读量:4541 次
发布时间:2019-06-08

本文共 1886 字,大约阅读时间需要 6 分钟。

搜查到一份详细的ClamAV病毒文件格式资料(),英文版,国内这资料不多的感觉。

重点看了下有关PE的病毒文件格式,就是*.mdb文件。还有之前郁闷用途的*.cvd文件。

就粘贴下刚刚的一点笔记:

1、介绍

CVD的前512bytes是其文件头,格式如下:
ClamAV-VDB:build time:version:number of signatures:functionality
level required:MD5 checksum:digital signature:builder name:build
time (sec)
2、保存脱壳后的签名,这样可以预防用其它壳
3、签名格式
3.1、MD5
最简单的方法,比较适用于静态malware。*.hdb文件,可以包含任意数量的签名,是最简单的文件。

放在share/clamav下可以自动加载。用哈希签名要注意,只要遇到有一个byte不同,就会停止匹配。

3.2、PE section based的MD5
.mdb文件,格式如下:
PESectionSize:MD5:MalwareName
(貌似ClamAV的PE查杀就是用这种签名查杀)
3.3、Body-based的签名
ClamAV用十六进制的格式存储所有的body-based签名。可以用不同的wildcards拓展。wildcards直接拷贝来如下:
 ??
Match any byte.
 a?
Match a high nibble (the four high bits).
IMPORTANT NOTE: The nibble matching is only available in libclamav
with the functionality level 17 and higher therefore please only use
it with .ndb signatures followed by ”:17” (MinEngineFunctionalityLevel,
see 3.3.5).
 ?a
Match a low nibble (the four low bits).
 *
Match any number of bytes.
 {n}
Match n bytes.
 {-n}
Match n or less bytes.
 {n-}
Match n or more bytes.
 {n-m}
Match between n and m bytes (m > n).
 (aa|bb|cc|..)
Match aa or bb or cc..
 !(aa|bb|cc|..)
Match any byte except aa and bb and cc.. (ClamAV0.96)
 HEXSIG[x-y]aa or aa[x-y]HEXSIG
Match aa anchored to a hex-signature, see https://wwws.clamav/
bugzilla/show_bug.cgi?id=776 for discussion and examples.
 (B)
Match word boundary (including file boundaries).
 (L)
Match CR, CRLF or file boundaries.
在*.db文件中,简单的签名格式如下:
MalwareName=HexSignature
当然,也有拓展的签名格式,就是有附加信息的。在*.ndb文件中格式如下:
MalwareName:TargetType:Offset:HexSignature[:MinFL:[MaxFL]]
还有逻辑签名,在*.ldb文件中,格式如下,
SignatureName;TargetDescriptionBlock;LogicalExpression;Subsig0;
Subsig1;Subsig2;...
其中,逻辑关系描述变量比较有趣,大于小于是匹配次数的比较。
3.4、PE文件的图标签名
0.96出现的一种比较模糊近似的图标签名匹配,在*.idb文件中格式如下:
ICONNAME:GROUP1:GROUP2:ICON_HASH

还有PE文件版本信息元数据签名以及其它的元数据签名。还有针对其它不同类型文件的签名,例如上面的PE文件的,还

 

原文:

转载于:https://www.cnblogs.com/sunylat/p/6393440.html

你可能感兴趣的文章
*.app 无法打开或已损坏解决办法
查看>>
kali linux之手动漏洞挖掘一
查看>>
php笔记一
查看>>
nginx 配置
查看>>
SpringBoot使用JPA来做数据查询
查看>>
linux下如何修改mysql默认配置文件的位置
查看>>
判断二叉树之间的子树关系
查看>>
HDU 1233 还是畅通工程(Kruskal)
查看>>
MySQL where
查看>>
正则表达式对象&&String对象
查看>>
MYSQL的连接查询
查看>>
java中的static关键字
查看>>
使用java操作HDFS(一)
查看>>
Dynamics CRM2011 通过DeveloperToolkit在VS中部署遇到的问题
查看>>
hadoop上的C++程序开发
查看>>
虚拟机桥接模式不能上网
查看>>
Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
查看>>
linux下vi命令大全
查看>>
Android使用UncaughtExceptionHandler捕获全局异常
查看>>
Codeforces Round #262 (Div. 2)
查看>>