Skip to content

ctfhacker/ni-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ni-rs

Port of ni.c to have a small data mutator in Rust.

Usage

Generate one mutation from a single buffer

use std::fs::File;
use std::io::Write;

fn main() {
    let input = include_bytes!("input");
    let mutation = ni_rs::mutate(input);
    let mut f = File::create("output").ok().unwrap();
    f.write(&mutation);
}

Generate 32 mutations from a single buffer

fn main() {
    let input = include_bytes!("input");
    let mutations = ni_rs::mutate_n(input, 32);
    assert_eq!(mutations.len(), 32);
}

Corpus mutation

Generate one mutation from a corpus

use std::fs::File;
use std::io::Write;

fn main() {
    let samples = vec![
                "<test><SUPERINNER!/></test><h>",
                "<test></test>",
                "<bingo><yay></bingo>"
                ];
    let mutation = ni_rs::mutate_corpus(samples);
    let mut f = File::create("output").ok().unwrap();
    f.write(&mutation);
}

Generate 24 mutations from a corpus

fn main() {
    let samples = vec![
                "<test><SUPERINNER!/></test><h>",
                "<test></test>",
                "<bingo><yay></bingo>"
                ];
    let mutations = ni_rs::mutate_corpus_n(samples, 24);
    assert_eq!(mutations.len(), 32);
}

Docs

cargo doc for more information

About

Radamsa written in c ported to Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages