parent
9ad7d9bb64
commit
df96bb02ee
@ -17,7 +17,6 @@ use libafl::{
|
|||||||
Error,
|
Error,
|
||||||
};
|
};
|
||||||
use libafl_bolts::{cli::FuzzerOptions, tuples::MatchFirstType};
|
use libafl_bolts::{cli::FuzzerOptions, tuples::MatchFirstType};
|
||||||
#[cfg(unix)]
|
|
||||||
use libafl_targets::drcov::DrCovBasicBlock;
|
use libafl_targets::drcov::DrCovBasicBlock;
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
use nix::sys::mman::{mmap, MapFlags, ProtFlags};
|
use nix::sys::mman::{mmap, MapFlags, ProtFlags};
|
||||||
@ -29,11 +28,11 @@ use yaxpeax_arm::armv8::a64::{ARMv8, InstDecoder};
|
|||||||
#[cfg(target_arch = "x86_64")]
|
#[cfg(target_arch = "x86_64")]
|
||||||
use yaxpeax_x86::amd64::InstDecoder;
|
use yaxpeax_x86::amd64::InstDecoder;
|
||||||
|
|
||||||
|
#[cfg(unix)]
|
||||||
|
use crate::asan::asan_rt::AsanRuntime;
|
||||||
#[cfg(all(feature = "cmplog", target_arch = "aarch64"))]
|
#[cfg(all(feature = "cmplog", target_arch = "aarch64"))]
|
||||||
use crate::cmplog_rt::CmpLogRuntime;
|
use crate::cmplog_rt::CmpLogRuntime;
|
||||||
use crate::coverage_rt::CoverageRuntime;
|
use crate::{coverage_rt::CoverageRuntime, drcov_rt::DrCovRuntime};
|
||||||
#[cfg(unix)]
|
|
||||||
use crate::{asan::asan_rt::AsanRuntime, drcov_rt::DrCovRuntime};
|
|
||||||
|
|
||||||
#[cfg(target_vendor = "apple")]
|
#[cfg(target_vendor = "apple")]
|
||||||
const ANONYMOUS_FLAG: MapFlags = MapFlags::MAP_ANON;
|
const ANONYMOUS_FLAG: MapFlags = MapFlags::MAP_ANON;
|
||||||
@ -467,7 +466,6 @@ where
|
|||||||
let mut basic_block_size = 0;
|
let mut basic_block_size = 0;
|
||||||
for instruction in basic_block {
|
for instruction in basic_block {
|
||||||
let instr = instruction.instr();
|
let instr = instruction.instr();
|
||||||
#[cfg(unix)]
|
|
||||||
let instr_size = instr.bytes().len();
|
let instr_size = instr.bytes().len();
|
||||||
let address = instr.address();
|
let address = instr.address();
|
||||||
// log::trace!("block @ {:x} transformed to {:x}", address, output.writer().pc());
|
// log::trace!("block @ {:x} transformed to {:x}", address, output.writer().pc());
|
||||||
@ -485,7 +483,6 @@ where
|
|||||||
rt.emit_coverage_mapping(address, output);
|
rt.emit_coverage_mapping(address, output);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(unix)]
|
|
||||||
if let Some(_rt) = runtimes.match_first_type_mut::<DrCovRuntime>() {
|
if let Some(_rt) = runtimes.match_first_type_mut::<DrCovRuntime>() {
|
||||||
basic_block_start = address;
|
basic_block_start = address;
|
||||||
}
|
}
|
||||||
@ -548,14 +545,12 @@ where
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(unix)]
|
|
||||||
if let Some(_rt) = runtimes.match_first_type_mut::<DrCovRuntime>() {
|
if let Some(_rt) = runtimes.match_first_type_mut::<DrCovRuntime>() {
|
||||||
basic_block_size += instr_size;
|
basic_block_size += instr_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
instruction.keep();
|
instruction.keep();
|
||||||
}
|
}
|
||||||
#[cfg(unix)]
|
|
||||||
if basic_block_size != 0 {
|
if basic_block_size != 0 {
|
||||||
if let Some(rt) = runtimes.borrow_mut().match_first_type_mut::<DrCovRuntime>() {
|
if let Some(rt) = runtimes.borrow_mut().match_first_type_mut::<DrCovRuntime>() {
|
||||||
log::trace!("{basic_block_start:#016X}:{basic_block_size:X}");
|
log::trace!("{basic_block_start:#016X}:{basic_block_size:X}");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user