Sandsifter: x86 processor fuzzer
11–19 of 19 posts
Re: Sandsifter: x86 processor fuzzer
#12Re: Sandsifter: x86 processor fuzzer
#13It seems this is the preferred URL: https://github.com/xoreaxeaxeax/sandsifter - for example the issue tracker is enabled, and has 45 issues, whereas the other URL has the issue tracker disabled. Can one of the admins fix?
Re: Sandsifter: x86 processor fuzzer
#14The demonstration in Figure 7 of a program that executes a benign codepath on QEMU but malicious on baremetal - and the benign codepath is what shows up in the disassemblers they tested - is very neat.
Edit: Ah, they explain it in the last paragraph of that section.
Re: Sandsifter: x86 processor fuzzer
#15Re: Sandsifter: x86 processor fuzzer
#16Earlier quoted context omitted.
Seems like using immediate values in inline assembly operands can be fragile depending on what optimizations the compiler decides to apply. Try building with -ftree-ter in your CFLAGS, as suggested by https://stackoverflow.com/a/11518308
I figured it out, it's because Debian enables PIE and that somehow causes GCC not to be able to satisfy its own rules for allowing inline-assembly to modify %rsp to the value required by this program.
What i ususally do is create a cross compiler with nothing enabled for these kinds of projects. This saves a lot of sifting and disabling options and optimizations.
If you have a bunch of inline assembly and such things, optimizations can be really killing.
Re: Sandsifter: x86 processor fuzzer
#17The demonstration in Figure 7 of a program that executes a benign codepath on QEMU but malicious on baremetal - and the benign codepath is what shows up in the disassemblers they tested - is very neat.
Re: Sandsifter: x86 processor fuzzer
#18Can anyone actually get this to compile? I failed last year, and it's still failing: $ CFLAGS=-fPIC make clean all rm -f *.o injector cc -fPIC -c injector.c -o injector.o -Wall injector.c:321:93: warning: excess elements in array initializer .start={.bytes={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, .len=0}, ^~~~ injector.c:321:93: note: (near initialization for ‘total_range.sta…
Re: Sandsifter: x86 processor fuzzer
#19Earlier quoted context omitted.
I figured it out, it's because Debian enables PIE and that somehow causes GCC not to be able to satisfy its own rules for allowing inline-assembly to modify %rsp to the value required by this program.
You ought to update your pull request, then! I'm not sure why they don't accept regular issues.
The sifter isn't terrible intresting it self but could use a lot of chances. Like the ability to use multiple disassemblers. God that was such a pain to hack that one together.