21 unstable releases (3 breaking)

new 0.3.1 Feb 12, 2025
0.2.4 Feb 3, 2025
0.2.0 Dec 22, 2024
0.1.4 Oct 31, 2024
0.0.3 Dec 30, 2023

#275 in Cryptography

Download history 220/week @ 2024-10-27 63/week @ 2024-11-03 114/week @ 2024-11-10 103/week @ 2024-11-17 86/week @ 2024-11-24 66/week @ 2024-12-01 104/week @ 2024-12-08 81/week @ 2024-12-15 215/week @ 2024-12-22 32/week @ 2024-12-29 65/week @ 2025-01-05 82/week @ 2025-01-12 160/week @ 2025-01-19 391/week @ 2025-01-26 323/week @ 2025-02-02 287/week @ 2025-02-09

1,161 downloads per month
Used in 3 crates

Apache-2.0

89KB
1.5K SLoC

VirusTotal Client

TestLintCrates.io VersionOpenSSF Scorecard

This is logic for interacting with VirusTotal's V3 API. At present, only the following actions are supported:

  • Fetch file report: this gets the anti-virus scan data for a given sample, and there are examples in the testdata/ directory.
    • The goal is for the file report to have all the possible fields for increased ease of use.
  • Request re-scan: ask VirusTotal to run a given sample through their collection of anti-virus applications and analysis tools.
  • Submit a sample: send a sample to VirusTotal for analysis.
  • Download a sample: download the original sample from VirusTotal (not fully tested, requires VirusTotal Premium).
  • Search: find the hashes of files which match some search criteria (not fully tested, requires VirusTotal Premium, uses older V2 API). See VirusTotal's doc for more information.
  • The file report object and error types can be useful when interacting with VirusTotal using another crate or using VT's API directly; you don't have to use the client object in this crate to use the data (and error) types in this crate.

VirusTotal supports these actions given a MD5, SHA-1, or SHA-256 hash.

Additionally, this provides a client application (in bin/, or malwaredb-virustotal-bin) for the supported operations on the command line.

MUSL Targets

It's recommended to use the native-tls-vendored feature to avoid OpenSSL build errors when compiling for Linux MUSL targets. See the example Cargo.toml entry below:

[target.'cfg(target_env = "musl")'.dependencies]
malwaredb-virustotal = { version = "0.3", features = ["native-tls-vendored"] }

Dependencies

~7–22MB
~329K SLoC