#fuzzing #security #ghidra #testing #file-format

dragondance

Code coverage file format for the dragondance ghidra plugin

1 unstable release

0.1.0 Feb 23, 2022

#8 in #ghidra

MIT/Apache

8KB
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