Mercurial > dropbear
view fuzz-wrapfd.h @ 1861:2b3a8026a6ce
Add re-exec for server
This allows ASLR to re-randomize the address
space for every connection, preventing some
vulnerabilities from being exploitable by
repeated probing.
Overhead (memory and time) is yet to be confirmed.
At present this is only enabled on Linux. Other BSD platforms
with fexecve() would probably also work though have not been tested.
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sun, 30 Jan 2022 10:14:56 +0800 |
parents | 685b47d8faf7 |
children |
line wrap: on
line source
#ifndef FUZZ_WRAPFD_H #define FUZZ_WRAPFD_H #include "includes.h" #include "buffer.h" enum wrapfd_mode { UNUSED = 0, COMMONBUF, // using the common buffer DUMMY, // reads return fixed output, of random length }; // buf is a common buffer read by all wrapped FDs. doesn't take ownership of buf void wrapfd_setup(buffer *buf); void wrapfd_setseed(uint32_t seed); int wrapfd_new_fuzzinput(void); int wrapfd_new_dummy(void); // called via #defines for read/write/select int wrapfd_read(int fd, void *out, size_t count); int wrapfd_write(int fd, const void* in, size_t count); int wrapfd_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); int wrapfd_close(int fd); int fuzz_kill(pid_t pid, int sig); #endif // FUZZ_WRAPFD_H