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, or browse this rustdoc.


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;



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


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.


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


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


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/


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


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


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.


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


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.


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


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.


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.