Expand description
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.
Re-exports§
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 aFile,Vec<u8>, orBinaryObject, 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 detailedprocess()function defined in this module to do so. - errors
- This module defines errors specific to ArmorLib. The main error
ArmorlibErroris available in the root namespace asarmorlib::ArmorlibError. - finding
- This module defines the
Finding, a struct that represents a vulnerability found by aScanModule. - preprocessor
- This module defines the
Preprocessortrait, which allows for generalized data to be created aboutBinaryObjects prior to being run through theScanModules to avoid duplicate processing. For more information on how to contribute your own preprocessor, seedocs/contributing/PREPROCESSORS.md. - preprocessors
- This module defines and manages the default preprocessors available to ArmorLib.
- process
- This module defines the
processtrait, 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
ScanModuletrait is available in the root namespace asarmorlib::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
BinaryObjectthat has been preprocessed. TheScanObjectstruct defined in this module is accessible in the root namespace asarmorlib::ScanObject. - scan_
report - This is a module that defines the
ScanReport. TheScanReportis also available in the default namespace (accessible underarmorlib::ScanReport). - scan_
result - This is a module that defines the
ScanResult, the “final product” when ArmorLib processes aBinaryObject. It is a collection (Vec) ofScanReports, each of which was created by aScanModule.ScanResultis also available under the default namespace asarmorlib::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.