sigtool(1)
β¨ sigtool β the Clam AntiVirus signature & database management tool, bestie edition β¨
okay so you found sigtool(1), the Clam AntiVirus one, and honestly? it's giving main character energy in the terminal. let me walk you through it π
πΈ NAME πΈ
sigtool β signature and database management tool. that's it, that's the vibe π«Ά
π SYNOPSIS π
sigtool [options]
π¦ DESCRIPTION π¦
bestie. sigtool does so much. lowkey it's the swiss army knife of the ClamAV world. here's the whole list, no cap:
- generate MD5 checksums
- convert data into hexadecimal format
- list virus signatures
- build / unpack / test / verify CVD databases
- build / unpack / test / verify update scripts
periodt. that's the job π
π COMMON OPTIONS π
the little settings that apply to basically everything:
-h,--helpβ prints help info and dips out. bye π-V,--versionβ prints the version number and exits.--quietβ be quiet, queen. only error messages get to speak.--debugβ turn on debug messages, for when you need to see everything π--stdoutβ write all messages to stdout.--tempdir=DIRECTORYβ create temporary files in DIRECTORY. heads up: that directory must be writable by the user runningsigtool, or it's not gonna work π--leave-tempsβ do NOT remove temporary files. they stay. they linger. they're part of the family now π--datadir=DIRβ use DIR as the default database directory for all operations.
π₯ COMMANDS FOR WORKING WITH SIGNATURES π₯
-l[FILE],--list-sigs[=FILE]β list all signature names, either from the local database directory (that's the default) or from FILE.-fREGEX,--find-sigs=REGEXβ find and display signatures from the local database directory that match the given REGEX. it checks the whole signature body β name, hex string, the entire thing, all of it π--decode-sigs=REGEXβ decode signatures read from standard input (like, say, piped in from--find-sigs).--test-sigs=DATABASE TARGET_FILEβ test all signatures from DATABASE against TARGET_FILE.
β οΈ real talk: this one only gives valid results if the target file is the final one β meaning after unpacking, normalization, etc. β the exact file the signatures were made for. otherwise the results are basically nonsense, ngl.
π COMMANDS TO GENERATE SIGNATURES π
--md5 [FILES]β generate an MD5 checksum from stdin, or MD5 sigs for FILES.--sha1 [FILES]β generate a SHA1 checksum from stdin, or SHA1 sigs for FILES.--sha2-256 [FILES]β generate a SHA2-256 checksum from stdin, or SHA2-256 sigs for FILES.
π heads up bestie: the previous option --sha256 is deprecated and may be removed in a future version. don't get attached.
--mdb [FILES]β generate.mdb(PE section hash) signatures for FILES.--imp [FILES]β generate.imp(PE import address table hash) signatures for FILES.--fuzzy-img [FILES]β generate image fuzzy hash for each file. fuzzy wuzzy π§
π COMMANDS TO NORMALIZE FILES π
--html-normalise=FILEβ create normalised HTML filescomment.html,nocomment.html, andscript.htmlin the current working directory. three files, one command, slay.--ascii-normalise=FILEβ create a normalised text file from an ascii source.--utf16-decode=FILEβ decode UTF16 encoded data.
π COMMANDS FOR FILE ANALYSIS π
--vba=FILEβ extract VBA/Word6 macros from the given MS Office document.--vba-hex=FILEβ extract Word6 macros from the given MS Office document and display the corresponding hex values.--print-certs=FILEβ print Authenticode details from a PE file.--hex-dumpβ read data from stdin and write the hex string to stdout.
π COMMANDS FOR WORKING WITH CVDS π
-i,--infoβ print a CVD information and verify MD5 and a digital signature.--build=FILE,-b FILEβ build a CVD file. note:-s,--serveris required for signed virus databases (.cvd), or--unsignedfor unsigned (.cud).--max-bad-sigs=NUMBERβ maximum number of mismatched signatures when building a CVD. default:3000--flevelβ specify a custom flevel. default:77--cvd-versionβ specify the version number to use for the build. the default is to use the value+1 from the current CVD in--datadir. if no datafile is found, the default behaviour is to prompt for a version number β this switch will prevent the prompt.
β οΈ NOTE: if a CVD is found in the --datadir, its version+1 is used and this value is ignored. so like, don't fight it.
--no-cdiffβ don't create a.cdifffile when building a new database file.--hybridβ create a hybrid (standard and bytecode) database file.--unsignedβ create a database file without digital signatures (.cud).--server=ADDRβ ClamAV Signing Service address (for virus database maintainers only, iykyk π).--unpack=FILE,-u FILEβ unpack FILE (CVD) to the current directory.--unpack-currentβ unpack a local CVD file (main or daily) to the current directory.--fips-limitsβ enforce FIPS-like limits on using hash algorithms for cryptographic purposes. this will disable MD5 & SHA1 FP sigs and will require.signfiles to verify CVD authenticity.
π§ COMMANDS FOR WORKING WITH CDIFF PATCH FILES π§
--diff=OLD NEW,-d OLD NEWβ create a diff file for OLD and NEW CVDs/INCDIRs.--compare=OLD NEW,-c OLD NEWβ compare two text files and print the differences in a cdiff format.--run-cdiff=FILE,-r FILEβ execute update script FILE in the current directory.--verify-cdiff=FILE,-r FILEβ verify DIFF against CVD/INCDIR.
π COMMANDS FOR CREATING AND VERIFYING DETACHED DIGITAL SIGNATURES π
--signβ sign a file. the resulting.signfile name will be in the form:dbname-version.cvd.signorFILE.signfor non-CVD targets. it will be created next to the target file. and if a.signfile already exists, then the new signature will be appended to the file.--key=FILEβ specify a signing key.--cert=FILEβ specify a signing cert. may be used more than once to add intermediate and root certificates.--appendβ use to add a signature line to an existing.signfile. otherwise an existing.signfile will be overwritten. choose wisely π--verifyβ find and verify a detached digital signature for the given file. the digital signature file name must be in the form:dbname-version.cvd.signorFILE.signfor non-CVD targets. it must be found next to the target file.--cvdcertsdir=DIRβ specify a directory containing the root CA cert needed to verify the signature. if not provided, thensigtoolwill look in the default certs directory.
πΈ ENVIRONMENT VARIABLES πΈ
sigtool uses the following environment variables:
SIGNDUSERβ the username to authenticate with the signing server when building a signed CVD database.SIGNDPASSβ the password to authenticate with the signing server when building a signed CVD database.CVD_CERTS_DIRβ specify a directory containing the root CA cert needed to verify detached CVD digital signatures. if not provided, thensigtoolwill look in the default directory.
β EXAMPLES β
generate a hex string from testfile and save it to testfile.hex:
cat testfile | sigtool --hex-dump > testfile.hex
look at that pipe. iconic. π₯
π CREDITS π
please check the full documentation for credits π«Ά
π¦ AUTHOR π¦
Tomasz Kojm <tkojm@clamav.net>
π SEE ALSO π
freshclam(1), freshclam.conf(5)
and that's the whole page, bestie β this was ClamAV 1.5.4, dated February 12, 2007 π thanks for reading, you ate, go build a CVD or something πβ¨
π¦ where this page comes from
- arch rolling: clamav 1.5.4-1 Β· GPL-2.0-only
- nixpkgs unstable: clamav 1.5.4
- opensuse-leap 16.0: clamav 1.5.4-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: clamav 1.5.4-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: clamav 1.5.4-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: clamav 1.5.4-160000.1.1 Β· GPL-2.0-only
- ubuntu jammy: clamav 1.5.4+dfsg-0ubuntu0.22.04.1 Β· GPL-2.0-only
- ubuntu noble: clamav 1.5.4+dfsg-0ubuntu0.24.04.1 Β· GPL-2.0-only
- ubuntu resolute: clamav 1.5.4+dfsg-0ubuntu0.26.04.1 Β· GPL-2.0-only
- ubuntu stonking: clamav 1.5.4+dfsg-0ubuntu1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms