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, ncou netcat, ou através de recursos extremamente semelhantes em shells como ksh93ou 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 nmapfazer 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.