Linux and Windows only support file-based PoVs, i.e., programs that read input from a file.
In general, CTF binaries read/write to stdin/stdout, which is currently supported by the DecreePovGenerator plugin. Unfortunately, DecreePovGenerator depends on DecreeMonitor, which prevents it from being usable on Linux/Windows.
This issue is about making DecreePovGenerator OS-independent, or at least work on Linux.
This will consist of identifying what Decree-specific signals the plugin depends on and porting/refactoring these signals to Linux. The signals a read()/write() and random() syscalls mostly.
There are several ways that could be used to intercept these syscalls:
LD_PRELOAD (doesn't work with statically-linked binaries)
Instrumenting the Linux kernel (either hard-coding or using system tap hooks).
Windows may be a bit trickier, as the syscall interface is much more complex.
Test with https://github.com/trailofbits/cb-multios
Linux and Windows only support file-based PoVs, i.e., programs that read input from a file. In general, CTF binaries read/write to stdin/stdout, which is currently supported by the DecreePovGenerator plugin. Unfortunately, DecreePovGenerator depends on DecreeMonitor, which prevents it from being usable on Linux/Windows.
This issue is about making DecreePovGenerator OS-independent, or at least work on Linux. This will consist of identifying what Decree-specific signals the plugin depends on and porting/refactoring these signals to Linux. The signals a read()/write() and random() syscalls mostly.
There are several ways that could be used to intercept these syscalls:
Windows may be a bit trickier, as the syscall interface is much more complex.