
* libafl_qemu: fix systemmode with slirp dependency libslirp will be dropped from future QEMU releases (see https://wiki.qemu.org/ChangeLog/7.0). This change adds the "slirp" feature, which links with the host-systems libslirp. * libafl_qemu: enable systemmode snapshots, vm_start Re-enable snapshot functions. Start the VM before qemu_main_loop. * libafl_qemu: allow synchronous snapshotting Add a flag to take snapshots synchronosly. This should be used to take or load snapshots while the emulator is not running. * libafl_qemu: fallback cpu for read-/write_mem In systemmode, current_cpu may not be set. In such cases use the first cpus memory access methods. * fuzzers: add example for libafl_qemu in systemmode * libafl_qemu: update libafl-qemu-bridge revision * libafl_qemu: add memory access by physcial address * fix liabfl_qemu example Use GuestAddr and physical memory access * ci: install libslirp-dev for libafl_qemu * fuzzers/qemu_systemmode: clean up example * libafl_qemu: remove obsolete functions emu::libafl_cpu_thread_fn emu::libafl_start_vcpu emu::start * fuzzers/qemu_systemmode: simplify example * improve build_linux.rs * Update qemu_systemmode fuzzer * upd * clippy * Save and restore CPU state in libafl_qemu * clippy * Clone * upd * upd Co-authored-by: Alwin Berger <alwin.berger@tu-dortmund.de>
39 lines
881 B
C
39 lines
881 B
C
int BREAKPOINT() {
|
|
for (;;)
|
|
{
|
|
}
|
|
}
|
|
|
|
int LLVMFuzzerTestOneInput(unsigned int* Data, unsigned int Size) {
|
|
//if (Data[3] == 0) {while(1){}} // cause a timeout
|
|
for (int i=0; i<Size; i++) {
|
|
//if (Data[i] > 0xFFd0 && Data[i] < 0xFFFF) {return 1;} // cause qemu to crash
|
|
for (int j=i+1; j<Size; j++) {
|
|
if (Data[j] == 0) {continue;}
|
|
if (Data[j]>Data[i]) {
|
|
int tmp = Data[i];
|
|
Data[i]=Data[j];
|
|
Data[j]=tmp;
|
|
if (Data[i] <= 100) {j--;}
|
|
}
|
|
}
|
|
}
|
|
return BREAKPOINT();
|
|
}
|
|
unsigned int FUZZ_INPUT[] = {
|
|
101,201,700,230,860,
|
|
234,980,200,340,678,
|
|
230,134,900,236,900,
|
|
123,800,123,658,607,
|
|
246,804,567,568,207,
|
|
407,246,678,457,892,
|
|
834,456,878,246,699,
|
|
854,234,844,290,125,
|
|
324,560,852,928,910,
|
|
790,853,345,234,586,
|
|
};
|
|
|
|
int main() {
|
|
LLVMFuzzerTestOneInput(FUZZ_INPUT, 50);
|
|
}
|