Realmente fácil:
- Adicione a especificação hexadecimal "\ x" a cada dois caracteres.
- Use
echo -e
para hex ser interpretado . Você também pode usarprintf
porqueecho
faz coisas diferentes em diferentes shells.
Usando seus mesmos dados de exemplo:
echo -e "\xff\xff\xff\xff\xff\xff\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9" >&6
Desta vez, o seu computador deve acordar.
-
OBSERVAÇÃO : nem todos os shells suportam esse recurso. Na verdade, apenas alguns fazem. Consulte este tópico saber qual deles faz. Para mim, a versão mais recente do Cygwin (junho de 2015) para o Windows executando
Bash 4.3.39(2)-release (i686-pc-cygwin)
funciona perfeitamente. - NOTE-2 : Infelizmente, o Ubuntu (v14.04) e o Kali (v1.1.0) parecem não suportá-lo como hoje, como explicado em este tópico . Ele provavelmente foi desativado no Bash, devido a problemas com compatibilidade de rede.
-
NOTE-3 : Bem, devo admitir que as pessoas (ver tópicos acima) relatando que
/dev/protocol/host/port
não é um método adequado estão completamente certas. Por exemplo, o código hexadecimal\x0a
atua como algum código de controle para datagramas de rede, dividindo o pacote. Então você não pode usar o endereço MAC como0a:11:22:33:44:55
com este método. Hora de mudar paranetcat
ousocat
.