Pergunta

Um tempo atrás eu estava tentando Bruteforce um controle remoto que enviou uma 'chave' binário de 12 bits.

O dispositivo Fiz funcionou, mas foi muito lenta, uma vez que estava tentando cada combinação a cerca de 50 bits por segundo (4096 códigos = 49152 = bits de ~ 16 minutos)

Eu abri o receptor e verificou-se usando um registrador de deslocamento para verificar os códigos e foi necessário nenhum atraso entre as tentativas. Isto significava que o receptor estava simplesmente olhando para os últimos 12 bits para ser recebidos para ver se eles eram uma partida para a chave.

Isto significa que se o 111111111111000000000000 fluxo foi enviada através, tinha efetivamente tentou todos esses códigos.

111111111111    111111111110    111111111100    111111111000
111111110000    111111100000    111111000000    111110000000
111100000000    111000000000    110000000000    100000000000
000000000000

Neste caso, eu usei 24 bits para tentar 13 12 combinações de bits (> 90% de compressão).

Alguém sabe de um algoritmo que poderia reduzir meus 49152 bits enviados tirando proveito disso?

Foi útil?

Solução

O que você está falando é um de Bruijn seqüência . Se você não se importa sobre como ele funciona, você só quer o resultado, aqui é .

Outras dicas

Em cima da minha cabeça, eu suponho lançando um pouco em cada seqüência de 12-bit iria cuidar de outros 13 combinações, por exemplo 111111111101000000000010, então 111111111011000000000100, etc. Mas você ainda tem que fazer um monte permutações, mesmo com um bit Eu acho que você ainda tem que fazer 111111111101000000000100 etc. em seguida, vire dois bits de um lado e um do outro, etc.

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