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
ArmorlibError
is 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
Preprocessor
trait, which allows for generalized data to be created aboutBinaryObject
s prior to being run through theScanModule
s 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
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 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
BinaryObject
that has been preprocessed. TheScanObject
struct defined in this module is accessible in the root namespace asarmorlib::ScanObject
. - scan_
report - This is a module that defines the
ScanReport
. TheScanReport
is 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
) ofScanReport
s, each of which was created by aScanModule
.ScanResult
is 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.