Crate cypat

source ·
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.

fn main() {
    let mut engine = cypat::Engine::new();
    engine.add_file_vuln("world.txt", move |e, x| -> bool {
        match x {
            Some(file) => {
                let mut string: std::string::String;
                std::io::BufReader::new(file.clone()).read_line(&mut string);
 
                if string == "Hello World" {
                    e.add_score_entry(0, 50, "Wrote Hello World.".to_string());
                    true
                } else {
                    false
                }
            },
            None => false,
        }
    });
 
    engine.add_hook(|x| {
        if x.entry_exists(0) {
            x.stop(false);
        }
    });
 
    engine.set_freq(2);
    engine.set_completed_freq(10);
    engine.enter();
}

Modules§

  • Utility functions and data structures

Structs§

  • Contains some simple data regarding applications or packages

Enums§