Need to test that modified ELFs compiled for a variety of platforms, varying endianness and bits where possible, can not only be modified but will run (conditioned on injecting runnable bytes!).
Will attempt to test using QEMU or dev board where possible to perform tests of ELF modifications/Injections on programs compiled for:
[ ] ARM aarch32
[ ] ARM aarch64
[ ] RISC-V (probably just the e21 core for now)
[ ] x86 and x86-64 (is there any version of x86 that runs big endian? So far cant find anything)
[ ] Power PC might be cool if I have time
ISA
Test Platform
Complete
x86-64 little endian
Main dev machine
Yes
x86 little endian
cross compile main dev machine
Yes
ARM aarch32
Tests of exec header modifications confirmed on zynq7000 cortex a9. For further testing will use either one of my rpi 3s that is running 32-bit raspian (I think I also have one running 32 mate need to check) and/or qemu
Partial
ARM aarch64
use pi 0 with cortext a53 or beaglebone black and/or qemu
No
RISC-V
Planning to target an arty a7 with sifive e21 core, and using Tock to run the modified binaries (although may need to be careful of address space layout and memory access capabilities)
No
x86-64 big endian
Maybe qemu
No
64 bit powerpc
VM? Debian has a port called ppc64le
No / Optional
32 bit powerpc
VM? Fedora has a 32 bit ppc port and ubuntu also has support
Need to test that modified ELFs compiled for a variety of platforms, varying endianness and bits where possible, can not only be modified but will run (conditioned on injecting runnable bytes!).
Will attempt to test using QEMU or dev board where possible to perform tests of ELF modifications/Injections on programs compiled for:
ppc64le
ppc
port and ubuntu also has support