Pergunta

Eu estou procurando ferramentas melhores do que o Wireshark para isso. O problema com Wireshark é que ele não formata a camada de dados (que é a única parte que eu estou olhando) limpa para mim para comparar os diferentes pacotes e tentar compreender a codificação de terceiros (que é de código fechado).

Especificamente, quais são algumas boas ferramentas de visualização de dados, e não TCP / UDP informações de cabeçalho? Particularmente, uma ferramenta que formata os dados para comparação.

Para ser muito específico :. Eu gostaria de um programa que compara múltiplos (não apenas 2) arquivos em hexadecimal

Foi útil?

Solução

Sua melhor aposta, francamente, é rolar o seu próprio.

Obter uma linguagem de script que você está confortável com e começar a mexer com o problema. Primeiro escrever-se uma comparação multiponto simples, mas assim que você começar a encontrar padrões que você acha que são importantes (ou que você acha que poderia ser) voltar e adicioná-los ao código - eliminá-los a partir da saída, destacá-los, traduzi-las em outra notação, substituí-los com o seu "significado" ou alguma descrição de alto nível do seu papel - o que parece apropriado. Se você não pode decidir, torná-lo uma opção.

Você está pedindo para software de visualização, porque você quer algo para ajudá-lo a formar e internalizar uma compreensão de sua codificação. Mas as comparações que você está indo fazer são apenas uma parte do processo você estará usando (que é essencialmente o método científico) - você também vai estar se formando e revisão suposições sobre o que várias partes dos pacotes de dizer, como eles interagem , etc.

Sem pré-construídos ferramenta vai ajudá-lo lá, mas uma linguagem boa scripting (digamos Python, Ruby, ou mesmo perl) vai ajudar muito. Como você formar uma teoria, o código-lo e experimentá-lo. Mungle seu código ao redor, experimentar idéias diferentes como eles ocorrem para você, a construção de um saco de truques personalizadas para este problema que você vá junto.

- MarkusQ

P.S. Não caia na armadilha de tentar usar C ou Java ou algo para fazer isso. Você estará jogando rápido e solto, e deve ter uma ferramenta que não requer declarações de variáveis, compilação, etc. Haverá muitas oportunidades para apertar-lo e reescrevê-lo uma vez que você entender como ele funciona.

Outras dicas

Dê uma olhada este post a partir BreakingPoint Labs . Eles estão discutindo manual do protocolo engenharia reversa e um conjunto de ferramentas construída sobre PacketFu para tornar esta tarefa mais fácil.

Relevante à sua pergunta é o conjunto de ferramentas que torna mais fácil de identificar e alterações de destaque para pacotes. Aqui está um exemplo de tela que mostra o uso de cores para delinear as diferenças de pacotes: text alt
(fonte: breakingpointsystems.com )

Seu problema não é analisar os dados da rede, mas comparar arquivos binários como você descrever por suas necessidades.

eu extrair dados de aplicação por meio de qualquer tubo aspirador, isto é, por meio de tcpdump usados ??como descrito por Zoreadche, ou Wireshark (isto é, por meio de sessão TCP seguimento). Em seguida, salve-o em arquivos e comparar por qualquer ferramenta de arquivo comparation. Você pode tentar estes (o mais popular):

  • ExamDiff Pro . Muito rápido comparando diretórios.
  • Winmerge . Embora não seja tão mais rápido que ExamDiff pro é opensource e está evoluindo rapidamente. É a minha primeira escolha.
  • BeyondCompare . Esta é a única ferramenta de arquivo comparation eu sei que faz exatamente o que você está procurando, que está comparando arquivos try, ao mesmo tempo.

Para HTTP somente, eu costumava usado uma grande ferramenta chamada EffeTech .
(Embora olhando para ele agora parece que eles suportam mais do que apenas HTTP ....)

O problema é que os dados na camada de aplicação não é padrão (com muito poucas excepções, como HTTP, POP3 e assim). Ferramentas como o Wireshark não pode decodificar essa informação, se eles não sabem o formato.

Eu sei que algumas versões antigas do Ethereal (agora Wireshark) tinha a opção (que você pode ter para habilitá-lo) para mostrar a carga útil. Esperar que ele não faz sentido, a maioria dos protocolos estão em binário!

Se você tem uma captura de ter feito com etéreo você pudesse ler a captura, ou você poderia fazer a sua captura com tcpdump. Para o uso de captura de um comando tcpdump como tcpdump -s 0 -qn -X ou tcpdump -X -r filename irá ler uma captura.

22:08:33.513650 IP 192.168.32.10.40583 > 69.59.196.211.80: tcp 1261
0x0000:  4500 0521 18ec 4000 4006 322a c0a8 200a  E..!..@.@.2*....
0x0010:  453b c4d3 9e87 0050 b0b6 4b4f 1598 0090  E;.....P..KO....
0x0020:  8018 1920 9b4f 0000 0101 080a 002e 701b  .....O........p.
0x0030:  093c bc38 4745 5420 2f75 7365 7273 2f32  .<.8GET./users/2
0x0040:  3032 3637 2f7a 6f72 6564 6163 6865 2048  0267/zoredache.H
0x0050:  5454 502f 312e 300d 0a48 6f73 743a 2073  TTP/1.0..Host:.s
0x0060:  7461 636b 6f76 6572 666c 6f77 2e63 6f6d  tackoverflow.com

Ou existe outra tcpick que pode ser o que quiser. Você pode capturar a carga de conexões TCP, e tê-lo apresentado como hex ou salvo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top