simple standalone injection test
This commit is contained in:
parent
19f046ef6a
commit
349d96795b
@ -2,63 +2,114 @@
|
|||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
../configure --target-list=arm-linux-user,arm-softmmu \
|
../configure --cxx=/home/ab/code/FRET/qemu-libafl-bridge/linker_interceptor.py \
|
||||||
|
--target-list=arm-softmmu \
|
||||||
|
--disable-slirp \
|
||||||
|
--enable-fdt=internal \
|
||||||
--audio-drv-list= \
|
--audio-drv-list= \
|
||||||
--disable-blobs \
|
--disable-alsa \
|
||||||
|
--disable-attr \
|
||||||
|
--disable-auth-pam \
|
||||||
|
--disable-dbus-display \
|
||||||
--disable-bochs \
|
--disable-bochs \
|
||||||
|
--disable-bpf \
|
||||||
--disable-brlapi \
|
--disable-brlapi \
|
||||||
--disable-bsd-user \
|
--disable-bsd-user \
|
||||||
--disable-bzip2 \
|
--disable-bzip2 \
|
||||||
|
--disable-capstone \
|
||||||
--disable-cap-ng \
|
--disable-cap-ng \
|
||||||
|
--disable-canokey \
|
||||||
--disable-cloop \
|
--disable-cloop \
|
||||||
|
--disable-cocoa \
|
||||||
|
--disable-coreaudio \
|
||||||
--disable-curl \
|
--disable-curl \
|
||||||
--disable-curses \
|
--disable-curses \
|
||||||
--disable-dmg \
|
--disable-dmg \
|
||||||
--enable-fdt \
|
--disable-docs \
|
||||||
|
--disable-dsound \
|
||||||
|
--disable-fuse \
|
||||||
|
--disable-fuse-lseek \
|
||||||
--disable-gcrypt \
|
--disable-gcrypt \
|
||||||
|
--disable-gettext \
|
||||||
|
--disable-gio \
|
||||||
--disable-glusterfs \
|
--disable-glusterfs \
|
||||||
--disable-gnutls \
|
--disable-gnutls \
|
||||||
--disable-gtk \
|
--disable-gtk \
|
||||||
--disable-guest-agent \
|
--disable-guest-agent \
|
||||||
|
--disable-guest-agent-msi \
|
||||||
|
--disable-hax \
|
||||||
|
--disable-hvf \
|
||||||
--disable-iconv \
|
--disable-iconv \
|
||||||
|
--disable-jack \
|
||||||
|
--disable-keyring \
|
||||||
|
--disable-kvm \
|
||||||
|
--disable-libdaxctl \
|
||||||
--disable-libiscsi \
|
--disable-libiscsi \
|
||||||
--disable-libnfs \
|
--disable-libnfs \
|
||||||
|
--disable-libpmem \
|
||||||
--disable-libssh \
|
--disable-libssh \
|
||||||
|
--disable-libudev \
|
||||||
--disable-libusb \
|
--disable-libusb \
|
||||||
--disable-linux-aio \
|
--disable-linux-aio \
|
||||||
|
--disable-linux-io-uring \
|
||||||
|
--disable-linux-user \
|
||||||
--disable-live-block-migration \
|
--disable-live-block-migration \
|
||||||
|
--disable-lzfse \
|
||||||
--disable-lzo \
|
--disable-lzo \
|
||||||
|
--disable-l2tpv3 \
|
||||||
|
--disable-malloc-trim \
|
||||||
|
--disable-mpath \
|
||||||
|
--disable-multiprocess \
|
||||||
|
--disable-netmap \
|
||||||
--disable-nettle \
|
--disable-nettle \
|
||||||
--disable-numa \
|
--disable-numa \
|
||||||
|
--disable-nvmm \
|
||||||
--disable-opengl \
|
--disable-opengl \
|
||||||
|
--disable-oss \
|
||||||
|
--disable-pa \
|
||||||
--disable-parallels \
|
--disable-parallels \
|
||||||
--disable-plugins \
|
--disable-png \
|
||||||
|
--disable-pvrdma \
|
||||||
--disable-qcow1 \
|
--disable-qcow1 \
|
||||||
--disable-qed \
|
--disable-qed \
|
||||||
|
--disable-qga-vss \
|
||||||
--disable-rbd \
|
--disable-rbd \
|
||||||
--disable-rdma \
|
--disable-rdma \
|
||||||
--disable-replication \
|
--disable-replication \
|
||||||
--disable-sdl \
|
--disable-sdl \
|
||||||
|
--disable-sdl-image \
|
||||||
--disable-seccomp \
|
--disable-seccomp \
|
||||||
|
--disable-selinux \
|
||||||
|
--disable-slirp-smbd \
|
||||||
--disable-smartcard \
|
--disable-smartcard \
|
||||||
--disable-snappy \
|
--disable-snappy \
|
||||||
--enable-system \
|
--disable-sndio \
|
||||||
|
--disable-sparse \
|
||||||
|
--disable-spice \
|
||||||
|
--disable-spice-protocol \
|
||||||
--disable-tools \
|
--disable-tools \
|
||||||
--disable-tpm \
|
--disable-tpm \
|
||||||
--disable-usb-redir \
|
--disable-usb-redir \
|
||||||
|
--disable-user \
|
||||||
|
--disable-u2f \
|
||||||
--disable-vde \
|
--disable-vde \
|
||||||
--disable-vdi \
|
--disable-vdi \
|
||||||
|
--disable-vduse-blk-export \
|
||||||
--disable-vhost-crypto \
|
--disable-vhost-crypto \
|
||||||
--disable-vhost-kernel \
|
--disable-vhost-kernel \
|
||||||
--disable-vhost-net \
|
--disable-vhost-net \
|
||||||
--disable-vhost-user \
|
--disable-vhost-user-blk-server \
|
||||||
--disable-vhost-vdpa \
|
--disable-vhost-vdpa \
|
||||||
--disable-virglrenderer \
|
--disable-virglrenderer \
|
||||||
--disable-virtfs \
|
--disable-virtfs \
|
||||||
|
--disable-vmnet \
|
||||||
--disable-vnc \
|
--disable-vnc \
|
||||||
--disable-vnc-jpeg \
|
--disable-vnc-jpeg \
|
||||||
--disable-vnc-sasl \
|
--disable-vnc-sasl \
|
||||||
--disable-vte \
|
--disable-vte \
|
||||||
--disable-vvfat \
|
--disable-vvfat \
|
||||||
|
--disable-whpx \
|
||||||
--disable-xen \
|
--disable-xen \
|
||||||
--disable-xen-pci-passthrough
|
--disable-xen-pci-passthrough \
|
||||||
|
--disable-xkbcommon \
|
||||||
|
--disable-zstd \
|
@ -43,9 +43,43 @@ int qemu_default_main(void)
|
|||||||
int (*qemu_main)(void) = qemu_default_main;
|
int (*qemu_main)(void) = qemu_default_main;
|
||||||
|
|
||||||
#ifndef AS_LIB
|
#ifndef AS_LIB
|
||||||
|
//========= Instrumentation start
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include "exec/cpu-common.h"
|
||||||
|
//========= Instrumentation end
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
//========= Instrumentation start
|
||||||
|
// read addr and input to load
|
||||||
|
if (argc < 3) {
|
||||||
|
fprintf(stderr, "Need address and input file argument\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
hwaddr target_addr = (hwaddr) strtoll(argv[1], NULL, 16);
|
||||||
|
char buffer[4097];
|
||||||
|
FILE* inputfile = fopen(argv[2], "rb");
|
||||||
|
if (!inputfile) {
|
||||||
|
perror("fopen");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
size_t read_len = fread(buffer, sizeof(char), 4096, inputfile);
|
||||||
|
buffer[read_len]=0;
|
||||||
|
if (!read_len) {
|
||||||
|
fprintf(stderr, "No input in file\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
printf("Load at %lx: %s\n", target_addr, buffer);
|
||||||
|
// fix arguments for qemu
|
||||||
|
argv[2]=argv[0];
|
||||||
|
argv=&argv[2];
|
||||||
|
argc-=2;
|
||||||
|
//========= Instrumentation end
|
||||||
qemu_init(argc, argv);
|
qemu_init(argc, argv);
|
||||||
|
//========= Instrumentation start
|
||||||
|
// load input
|
||||||
|
cpu_physical_memory_rw(target_addr, buffer, read_len, true);
|
||||||
|
//========= Instrumentation end
|
||||||
return qemu_main();
|
return qemu_main();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user