Como fazer engenharia reversa em periféricos USB

Como fazer engenharia reversa em periféricos USB

O lançamento do kinect deixou muitos com umas coceira nas mãos: um dispositivos novo, potencialmente revolucionário, mas que estava amarrado a uma única plataforma (o Xbox 360), sem se comunicar com outros sistemas nem ter nenhuma outra função que não fossem os jogos.

Embora o USB seja reconhecidamente um protocolo complexo, não demorou mais do que alguns dias para que o kinect fosse hackeado. Um tutorial do ladyada.net mostra como a engenharia reversa foi realizada e de quebra dá dicas de como fazer o mesmo em outros dispositivos USB.

Um resumo, fazer engenharia reversa de dispositivos USB é mais simples do que parece, uma vez que embora o protocolo seja muito mais complexo que na época das portas seriais, as ferramentas também são melhores.

O primeiro método consiste em tentar adivinhar os comandos (que é naturalmente muito tedioso) e o segundo em gravar os comandos emitidos pelo host (o Xbox 360 no exemplo) e em seguida repeti-los para observar as respostas do receptor. Para isso o autor usa um Begle480, um analizador com suporte ao USB 480, que é capaz de capturar todos os comandos emitidos pelo host:

Em muitos casos (como no caso do Kynect) é possível encontrar logs pré-gravados, o que permite continuar mesmo sem ter o analizador USB.

Uma vez que os comandos são conhecidos, o resto do processo consiste em estudar o comportamento do dispositivo ao receber cada um deles e desenvolver o software ou driver que os utilizarão para controlá-lo.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X