Crate armorlib [] [src]

ArmorLib is a library that allows for any binary object—be it a File or a Vec<u8>—to be scanned for threats to security and privacy. It does this by offering several modular 'scan modules' that each search for a specific type of vulnerability.

For information on how to use ArmorLib, see armorlib.org, or browse this rustdoc.

Reexports

pub use process::Process;
pub use binary_object::BinaryObject;
pub use finding::Finding;
pub use preprocessor::Preprocessor;
pub use scan_module::ScanModule;
pub use scan_object::ScanObject;
pub use scan_report::ScanReport;
pub use scan_result::ScanResult;
pub use errors::ArmorlibError;

Modules

binary_object

This module defines the BinaryObject, which represents a piece of unstructured binary data of any type.

coordinator

This file allows for more fine-grained access to the ArmorLib system. While in most cases it is suitable to simply call .process() on a File, Vec<u8>, or BinaryObject, there exist some cases when more control is needed. For example, if you'd like to run only a select number of scan modules (instead of all), you can use the detailed process() function defined in this module to do so.

errors

This module defines errors specific to ArmorLib. The main error ArmorlibError is available in the root namespace as armorlib::ArmorlibError.

finding

This module defines the Finding, a struct that represents a vulnerability found by a ScanModule.

preprocessor

This module defines the Preprocessor trait, which allows for generalized data to be created about BinaryObjects prior to being run through the ScanModules to avoid duplicate processing. For more information on how to contribute your own preprocessor, see docs/contributing/PREPROCESSORS.md.

preprocessors

This module defines and manages the default preprocessors available to ArmorLib.

process

This module defines the process trait, which is designed to make processing simple structs, like a

scan_module

This module defines the ScanModule, a trait that all scan modules must implement in order to be run by ArmorLib. The ScanModule trait is available in the root namespace as armorlib::ScanModule.

scan_modules

This module defines and manages the default scan modules available to ArmorLib.

scan_object

This module defines the ScanObject, which represents a BinaryObject that has been preprocessed. The ScanObject struct defined in this module is accessible in the root namespace as armorlib::ScanObject.

scan_report

This is a module that defines the ScanReport. The ScanReport is also available in the default namespace (accessible under armorlib::ScanReport).

scan_result

This is a module that defines the ScanResult, the "final product" when ArmorLib processes a BinaryObject. It is a collection (Vec) of ScanReports, each of which was created by a ScanModule. ScanResult is also available under the default namespace as armorlib::ScanResult.

util

This module defines several low-level utility functions for general use by ArmorLib. You can use these functions in your own program, but they are designed for internal use.