Expand description
A cyberpatriots scoring engine library
Provides a fairly simple interface for programming Cyberpatriots scoring engines for practice images. It provides many core facilities useful for writing a scoring engine, such as a simple system to handle vulnerabilities, a scoring report, and some optional facilities for handling a database of configuration files, or providing utilities for users, groups and packages.
Examples
Here’s an example of a stupidly simple scoring engine.
use cypat::{scorer, engine, settings};
use std::{fs::File, io::{BufRead, BufReader, Read}, string::{String, ToString}};
fn main() {
let func = |x: Option<&mut file> | -> bool {
match x {
Some(file) => {
let mut string: String;
BufReader::new(file.clone()).read_line(&mut string);
if string == "Hello World" {
add_score_entry(0, 50, "Wrote Hello World.".to_string());
true
} else {
false
}
},
None => false,
}
};
set_update_freq(1);
set_completed_update_freq(1);
add_file_vuln("example.txt", func);
enter_engine();
}