Existem várias perguntas aqui; a reivindicação de um "pacote malformado" pode ser devido ao descarregamento da soma de verificação e, se houver, é um erro falso, pois reflete que a captura de pacotes não tem uma visão completa - parte do trabalho foi feito no hardware da rede. O WireShark deve ter documentação sobre isso.
Caso contrário, várias ferramentas (como socat
, nc
ou netcat
, ou através de recursos extremamente semelhantes em shells como ksh93
ou bash
) podem pegar bytes da entrada padrão e despejá-los no que se torna um pacote UDP. Se isso é "adequado" depende do protocolo; em teoria, poderia-se construir e enviar um pacote DNS ou DHCP dessa maneira, embora mais frequentemente as pessoas usem uma biblioteca ou software dedicado que (espero) implemente corretamente o protocolo em questão, pois geralmente há muito mais envolvimento do que definir alguns bits no o corpo de um pacote e enviá-lo pela rede, notadamente manipulando respostas, tentando novamente após tempo limite ou erro, campos de cabeçalho de pacote etc. Os protocolos geralmente são muito bem documentados em RFC ou consulte a série de livros "TCP / IP Illustrated" por Stevens para ainda mais documentação.
Ferramentas específicas, como nmap
fazer coisas muito personalizadas com a construção de pacotes. Caso contrário, para a construção manual de pacotes, normalmente é usada uma linguagem de programação, embora a maioria dos softwares use bibliotecas ou serviços de sistema existentes para enviar pacotes DNS ou DHCP ou outros pacotes UDP, pois esses são muito menos trabalhosos e menos propensos a erros do que a criação manual de uma matéria-prima. pacote a partir do zero.