#fuzzing #testing #security #ghidra

dragondance

Code coverage file format for the dragondance ghidra plugin

1 unstable release

Uses new Rust 2021

0.1.0 Feb 23, 2022

#339 in Testing

MIT/Apache

7KB
113 lines

Dragon Dance Trace Recorder

Record code coverage traces in rust to the dragondance format.

Docs

Example

use dragondance::{Module, Trace};

// Create a Trace with module info
let modules = [Module::new("abcd", 0x1000, 0x2000),
               Module::new("libc.so", 0x555000, 0x556000)];
let mut trace = Trace::new(&modules);

// Add coverage events from your emulator, debugger, etc.
trace.add(0x1204, 3);
trace.add(0x1207, 12);

// Write the coverage to a dragondance coverage file
trace.save("trace.dd").unwrap();

lib.rs:

Export ranges of code coverage data to the dragondance Pin Helper file format

use dragondance::{Module, Trace};

// Create a Trace with module info
let modules = [Module::new("abcd", 0x1000, 0x2000),
               Module::new("libc.so", 0x555000, 0x556000)];
let mut trace = Trace::new(&modules);

// Add coverage events from your emulator, debugger, etc.
trace.add(0x1204, 3);
trace.add(0x1207, 12);

// Write the coverage to a dragondance coverage file
trace.save("trace.dd").unwrap();

No runtime deps