Boas ferramentas para compreender / engenharia reversa um protocolo superior da camada de rede

StackOverflow https://stackoverflow.com/questions/1437856

  •  08-07-2019
  •  | 
  •  

Pergunta

Há um problema interessante em mãos. Eu tenho um MMOG role-playing em execução através de um aplicativo cliente (não um navegador), que envia as ações de meu leitor para um servidor que mantém todos os jogadores em sincronia através do envio de pacotes de volta.

Agora, o jogo usa um protocolo de camada superior através de TCP / IP para enviar os dados. No entanto, wireshark não sabe o protocolo está sendo usado e mostra tudo além do cabeçalho TCP como um despejo.

Além disso, este despejo não tem nenhum cadeias de texto simples. Embora o jogo tem um recurso de bate-papo, a seqüência de bate-papo a ser enviada não é visto nesta lixeira como em qualquer texto simples.

A minha tarefa é fazer engenharia reversa do protocolo um pouco para encontrar algumas coisas muito básicas sobre os dados contidos nos pacotes.

Alguém sabe por que é a cadeia de bate-papo não é visível como texto simples e se é provável que um protocolo de nível superior padrão está sendo usada?

Além disso, existem ferramentas que podem ajudar a obter os dados do despejo?

Foi útil?

Solução

Se é criptografada que você do tem uma chance (na verdade, você tem uma chance de 100%, se você lidar com isso direito): a chave deve residir em algum lugar no seu computador. Apenas pop abrir seu depurador favorito, relógio para um pouco (err, uma centena de bytes ou menos eu espero) de dados a entrar a partir de um soquete, definir um ponto de controle sobre esses dados, e olhar para os rastreamentos de pilha de coisas que o acesso isto. Se você tiver muita sorte, você pode até mesmo vê-lo se descriptografado no lugar. Se não, você provavelmente vai pegar no fato de que eles estão usando um algoritmo de criptografia padrão (eles seriam tolos se não do ponto de vista de segurança teórico), quer por olhando para rastreamentos de pilha (se tiver sorte) ou por usando um dos profilers IV / S-box lá fora (evitar os acadêmicos, a maioria deles não funcionam sem um monte de problemas). Muitos algoritmos de criptografia usar blocos de "dados padrão" que podem ser detectados (estes são os IVs / S-boxes), estes são o que você procura, na ausência de outras informações. Tudo o que você encontrar, google, e tentar substituir sua biblioteca de criptografia para despejar os dados que estão sendo criptografados / decifrados. A partir desses depósitos, deve ser relativamente fácil de ver o que está acontecendo.

REing uma sessão criptografada pode ser muito divertido, mas requer habilidade com o depurador e muita leitura. Pode ser frustrante, mas você não vai se arrepender se você gastar o tempo para aprender como fazê-lo:)

Outras dicas

Melhor palpite: criptografia, ou compressão

.

compressão suportes Mesmo telnet sobre o fio, apesar de todo o protocolo é inteiramente baseado em texto (bem, quase).

Você poderia tentar executar o fluxo de dados através de alguns utilitários de compressão comuns, mas duvido que iria fazer muito para você, uma vez que com toda a probabilidade eles fazem cabeçalhos de compressão não transmitir, não há simplesmente alguns valores predefinidos aplicadas.

Se é criptografia de facto, então você está muito bem ferrado (sem muito esforço muito maior, que eu não vou nem começar a entrar).

É mais provável que seja compactados ou criptografados.

Se for criptografado você não terá uma chance.

Se for comprimido você vai ter que descobrir de alguma forma que partes dos dados são compactados, onde as peças comprimidas começar eo que o algoritmo de compressão é. Se a sua sorte haverá cabeçalhos padrão que você pode identificar, embora eles são, provavelmente, retirados para economizar espaço.

Nada disso é simples. A engenharia reversa é difícil. Não existem ferramentas padrão para ajudá-lo, você vai ter que investigar e experimentar coisas até que você descobrir isso. Meu conselho seria a de pedir os desenvolvedores para uma especificação de protocolo e ver se eles estão dispostos a ajudar a apoiar o que você está tentando fazer.

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