Expand description
§Malware DB Python Client
This is a Python module for interacting with an instance of Malware DB.
§Installation
Assuming you already have Malware DB checked out:
python3 -m venv mdb-venvsource mdb-venv/bin/activatepip install maturincd client-pymaturin develop(ormaturin buildto create a distributable wheel)
§Features
If using this crate with another library, be sure to use the rust_lib feature flag to avoid creating the Malware DB client module type. This could be useful for reusing the functions defined in this crate with another Python module.
§Use
- Import the module:
from malwaredb import MalwareDBClient - Create a client object from one of three ways:
MalwareDBClient.from_file()to use a configuration fileMalwareDBClient()to have the client library find a configuration fileMalwareDBClient.connect(url, api_key, [cert_path])to provide the URL, API key, and optional path for a certificate for encrypted communicationMalwareDBClient.login(url, username, password, save, [cert_path])to provide the URL, username, password, whether to save the configuration, and optional path for a certificate for encrypted communicationMalwareDBCLient.discover()to find local servers via multicast DNS
- Client functionality:
.get_file_bytes()get a file from Malware DB.server_info()get server information.submit_file()submit a file to Malware DB.get_supported_file_types()get a list of file types supported by the Malware DB server.search()search for files based on some criteria. Some optional keyword arguments, a minimum of one criterion is required:hash=: specify a partial hashhash_type=: specify the type of the partial hash, options aremd5,sha1,sha256, orsha512, default issha256file_name=: specify all or part of a file namelabels=: specify a list of labelsfile_type=: specify a file type, which must match a file type from.get_supported_file_types()magic=: specify all or part of the file command (libmagic) output for a given fileresponse_hash=: specify the hash type to be returned, options aremd5,sha1,sha256, orsha512, default issha256limit=: integer specifying the maximum results to be returned, must be greater than zero
.labels()get available labels for samples.whoami()get information about the user’s account.yara_search()search for files using Yara, if the server supports it.yara_result()get results of Yara search using UUID
- CaRT functionality:
malwaredb.cart.create_cart()encodes bytes into aCaRTbytesmalwaredb.cart.decode_cart()decodesCaRTbytes back into the original binary long with header and footer data. Seeclient-py/py_test/cart.py.- Current limitations:
create_cart()doesn’t allow setting custom fields.decode_cart()will not be able to return fields which aren’t plain float, integer, or string types.
- See cart as an alternative
CaRTmodule which is probably more feature-rich.
Modules§
Structs§
- MalwareDB
Client - Malware DB client
Constants§
- MDB_
VERSION - MDB version
- VERSION