Sandsifter: x86 processor fuzzer
github.com
Sandsifter: x86 processor fuzzer
1–10 of 19 posts
Re: Sandsifter: x86 processor fuzzer
#2Re: Sandsifter: x86 processor fuzzer
#3 $ 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.start.bytes’)
injector.c:322:91: warning: excess elements in array initializer
.end={.bytes={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, .len=0},
^~~~
injector.c:322:91: note: (near initialization for ‘total_range.end.bytes’)
injector.c: In function ‘inject’:
injector.c:778:2: warning: asm operand 15 probably doesn’t match constraints
__asm__ __volatile__ ("\
^~~~~~~
injector.c:778:2: error: impossible constraint in ‘asm’
make: *** [Makefile:38: injector.o] Error 1
2Re: Sandsifter: x86 processor fuzzer
#4Reveal talk at Blackhat showing this off: https://www.youtube.com/watch?v=KrksBdWcZgQ
Re: Sandsifter: x86 processor fuzzer
#5Can 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
#6Can 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…
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
Re: Sandsifter: x86 processor fuzzer
#7Can one of the admins fix?
Re: Sandsifter: x86 processor fuzzer
#8Earlier 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.