|
FreeRDP
|
The seeds are byte-for-byte captures of the client->server stream of a real FreeRDP client connection against the fuzz server configuration:
handshake_input includes post-activation input PDUs (keyboard/mouse), handshake_noinput is the plain handshake up to the Confirm Active PDU. The cut* files are truncations at phase boundaries to give the fuzzer incremental starting points.
The captured stream is deterministic: the fuzz server uses a fixed embedded RSA certificate/key and the local peer path performs no encryption, so the server responses are identical on every connection. This means the captured client stream replays cleanly against a fresh fuzz server session.
The corpus is generated by TestFuzzServerSeedGen (built by the same CMake configuration as the fuzz target):
Notes:
freerdp-client in-process against the fuzz server configuration (the server side is identical to TestFuzzServer.c) and captures the client->server stream through a TCP relay.WITH_CHANNELS=ON so the client channel addins (e.g. rdpdr) are available and the client can negotiate the MCS message channel. WITH_CLIENT_COMMON (default ON) provides the client library.TestFuzzServer.c in sync with configure_server() in TestFuzzServerSeedGen.c, otherwise freshly generated seeds will not replay against the fuzzer.