6.3.2. 手動でのシグネチャの作成
手作業でシグネチャを作成するにはウイルス固有の箇所を好きなツールを使ってhexdumpして「ウイルス名=hexdumpした出力」の形式にまとめるだけです。
http://clamav-jp.sourceforge.jp/jdoc/clamav.html#c6.3.2
ってあったので、hexdump コマンド (とか od -x) の出力結果を使ってシグネチャを作ってみたけど検出されない。
変な例だが GIF ファイルを検出しようと思って、
$ echo -n "GIF89a" | hexdump 0000000 4947 3846 6139 0000006
となるので、db を以下のように作っても検出できない。
Test.GIF=494738466139
エンディアンの問題だった。ビッグエンディアンにしないとだめ。
$ echo -n "GIF89a" | perl -p -e 's/(.)/sprintf "%02x", ord $1/eg' 474946383961
Test.GIF=474946383961
このように gif.db を作れば
$ clamscan -d gif.db test.gif test.gif: Test.GIF FOUND
検出できた。
ClamAV 附属の sigtool コマンドで hexdump すればよかったのか。
echo -n "GIF89a" | sigtool --hex-dump