Expand description
A YARA compiler and scanner completely written in Rust from scratch.
It is 99% compatible with existing YARA rules and intends to be a safer, more efficient implementation of YARA.
There are two main types in this crate: Compiler
and Scanner
. A compiler
takes YARA source code and produces compiled Rules
that are passed to the
scanner for scanning files or in-memory data. The Rules
produced by the
compiler can be safely passed to multiple instances of Scanner
, but each
instance of the scanner can be used for scanning a single file or memory buffer
at a time. The scanner can be re-used for scanning multiple files or memory-buffers,
though.
§Example
// Create a compiler.
let mut compiler = yara_x::Compiler::new();
// Add some YARA source code to compile.
compiler.add_source(r#"
rule lorem_ipsum {
strings:
$ = "Lorem ipsum"
condition:
all of them
}
"#).unwrap();
// Obtain the compiled YARA rules.
let rules = compiler.build();
// Create a scanner that uses the compiled rules.
let mut scanner = yara_x::Scanner::new(&rules);
// Scan some data.
let results = scanner.scan("Lorem ipsum".as_bytes()).unwrap();
assert_eq!(results.matching_rules().len(), 1);
Modules§
- Utility functions and structures for invoking YARA modules directly.
Structs§
- Compiles YARA source code producing a set of compiled
Rules
. - Represents a match.
- Iterator that returns the matches for a pattern.
- Iterator that yields the rules that matched during a scan.
- Iterator that returns the outputs produced by YARA modules.
- Iterator that yields the rules that didn’t match during a scan.
- Represents a pattern defined by a rule.
- An iterator that returns the patterns defined by a rule.
- A structure that describes a rule.
- A set of YARA rules in compiled form.
- Results of a scan operation.
- Scans data with already compiled YARA rules.
- Represents a YARA variable.
Enums§
- An error occurred during the compilation process.
- Errors returned by the compiler.
- Error returned by
Scanner::scan
andScanner::scan_file
. - Errors returned while serializing/deserializing compiled rules.
- Errors returned while defining or setting variables.
Functions§
- Compiles a YARA source code.