Dê uma olhada no código fonte do wireshark. Tenho certeza de que isso ajudará muito. link
Estou procurando uma maneira de interceptar um pacote quando ele entra no meu PC principal, editá-lo e, em seguida, deixá-lo continuar sua jornada até as pontes do dispositivo pelo meu pc. Eu tentei escrever um aplicativo c # para fazê-lo, mas só encontrei uma biblioteca para interceptar e criar pacotes, não editá-los, e aplicativos c ++ que precisam se conectar a um processo e monitorar seus pacotes.
Dê uma olhada no código fonte do wireshark. Tenho certeza de que isso ajudará muito. link