Eu consegui descobrir isso.
Eu escrevi uma biblioteca LD_PRELOAD que sobrescreve, recv, lê, escreve a família de funções e registra essas operações nos sockets.
O código fonte é muito experimental e não é seguro, mas de qualquer forma, eu coloco no SourceForge: