Ou melhor dizendo - Tentando desvendar Controle Remoto RF.
Depois que consegui fazer funcionar o Analisador Lógico com o Arduino, tenho feito várias verificações que sempre quis fazer. Fiz uma análise de controle remoto usando a Luz infravermelha e agora estou fazendo uma análise mais apurada de controle remoto que usa Rádio-frequência RF).
Tutorial - Analisador Lógico com Arduino:
http://labdegaragem.com/profiles/blogs/tutorial-analisador-l-gico-c...
Decodificando Controle Remoto infravermelho:
http://labdegaragem.com/profiles/blogs/6223006:BlogPost:315534
Já li em vários Blogs do Lab de Garagem, que muitos desejam usar o Controle Remoto RF com o Arduino.
Para a minha decepção e acredito que muitos se decepcionarão também, os controles remotos atuais são criptografados.Por isso, alguns já tentaram usar e falharam.
Para entender melhor, fiz uma análise do Controle Remoto do fabricante Rossi. (aciona a abertura e fechamento de portões de garagem). Esse controle usa o chip HCS201 da Microchip:
http://ww1.microchip.com/downloads/en/DeviceDoc/41098c.pdf
Possui dois botões (chaves) S0 e S1. A frequência da portadora é de 433,92 MHz. Usa uma pilha de 12V.
O link da Rossi portões, com os circuitos de controle de portões:
http://www.rossiportoes.com.br/produtos/120-central-de-comando.html
Lendo o data sheet do chip HCS201 da Microchip, percebi que a tecnologia usada é bem segura.
Ele é bem versátil - cada chip tem um número de série programável de 28 bits e uma chave de criptografia de 64 bits (acredito que é impossível descobri-la) . Essas informações são gravadas pelo fabricante do controle remoto (no caso a Rossi).
Cada transmissão tem um código diferente, por isso, se o circuito receptor não souber a chave criptográfica do fabricante, não haverá rotina de decodificação que permita identificar qual código foi transmitido. Fiz vários testes e comprovei ! Pressionei várias vezes o botão S1 e a cada momento o trem de pulsos era de um formato diferente.
Seria possível usar o controle remoto, desde que usasse um chip programado pelo desenvolvedor.
Assim a rotina de decodificação usaria a chave gravada no chip.
Vejam que interessante as várias telas capturadas usando o Analisador Lógico com o Arduíno.
Minhas medições foram no saída TX OUT do chip HCS201. Alimentei o controle remoto com 5V para não danificar o Arduino.
Essa captura foi feita pressionando o botão S1 - taxa de amostragem de 5 KHz :
Vejam que tem 12 pulsos de preambulo para sincronização :
Taxa de amostragem de 10 Khz.
Os 12 pulsos de preambulo usam a largura de pulso de 780 us:
(taxa de amostragem 50 KHz)
Para decodificar os bits 0 e bit 1 :
Esse é o formato do Bit 0 : (taxa de amostragem 50 KHz)
E esse é o formato do Bit 1 : (taxa de amostragem 50 KHz)
Tags:
Pessoal,
achei em um fórum russo do Arduino um sketch que "descodifica" o KeeLoq.
Vejam:
http://arduino.ru/forum/apparatnye-voprosy/biblioteka-chteniya-id-b...
Datasheet da Microchip:
http://ww1.microchip.com/downloads/en/DeviceDoc/41256B.pdf
http://ww1.microchip.com/downloads/en/AppNotes/00217a.pdf
Fiz umas adequações aqui, testei e FUNCIONOU!!!
"Usem SEM moderação!" :)
Putz ! Tá brincando ?
Não sei se isso é bom ou ruim. Para a questão de segurança, isso não é bom...
Parabéns para o cara russo.
Então, bem por aí...
Mas, pelo q vi/analisei, o código postado permite apenas ler os dados enviados (por exemplo, o serial number do controle e/ou o botão que foi pressionado), mas não descriptografa a parte referente as keys.
Além disso, mesmo que seja feito o ataque de "replay", não vai ter efeito, pq o KeeLoq não permite mensagens repetidas...
Ufa!!!
Ah bom ! Então a segurança continua.
Abraços
Gustavo
Boa tarde Romulo, obrigado pelos elogios.
As respostas para as suas perguntas.
1) O módulos tem funções distintas - um só transmite o código e outro só recebe. No caso da Central PPA, ela deve aceitar somente um tipo de código - fixo ou rolling. Nas especificações da central você poderá encontrar essas informações. Os chips que usam jumpers são antigos e esses jumpers é que definem os bits do código.
2) Como já informado nos tópicos do tutorial, o chip HT6P20B usa 24 bits de código. Esse código já vem gravado no chip e não pode ser modificado. Portanto não usa o método Rolling.
http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf...
3) A frequência da portadora do transmissor tem que ser igual à frequência do receptor - no tutorial a frequência é de 433,92 MHz ( a mais comum). Esse tutorial só mostra como o rolling code é transmitido. Não mostra como ele é descodificado. Se quer montar um sistema de controle remoto, use o transmissor com o chip HT6P20B.
Com esse código, poderá descodifica-lo usando o receptor + Arduino:
http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf...
Saudações;
Nossa José... MUITO OBRIGADO e também PARABÉNS pela sua atenção em responder e compartilhar conhecimento com quem está aprendendo.
Estou lendo aqui diversas fontes, fazendo testes na bancada... acho que agora eu compreendo um pouco melhor o funcionamento, mas ainda tenho muito que aprender rsrsrs.
(O jumper na placa que eu me referia, não era aquela série de 8 jumper para escolher um código, variação de 2^8 = 256 códigos. Eu me referia a jumpers isolados, de "configuração")
Acho que agora entendi sobre esse jumper na placa que tem duas opções (learning ou rolling, aberto ou fechado):
- O jumper na placa não define como o TX vai trabalhar.
(Os controles já tem jeitos determinados de como trabalhar, ou learning code, ou rolling code)
- O jumper na placa determina COM QUAIS TIPOS de controle a placa vai trabalhar
Bora continuar leituras e testes... aprendendo sempre.
Abraços.
Boa noite Romulo,
Informe por favor qual a placa PPA que esta se referindo.
Envie o link do produto.
Saudações meu amigo;
Estou me referindo a placa/central da PPA, modelo "TRIFLEX FACILITY".
O "erro" da PPA tem sido fabricar controles com a mesma carcaça por fora, mas tanto na tecnologia learning, tanto na tecnologia rolling. Os controles são exatamente iguais por fora, impossível uma classificação olhando externamente.
Tudo bem, a gente abre o controle pra classificar pelo chip... mas eles não informam quais chips foram usados na tecnologia learning e quais chips foram usados na tecnologia rolling code.
(estou com uma suspeita, AINDA NÃO CONFIRMADA, que controles learning code usam pilha A23 e que controles rolling code usam baterias CR2032, mas não tenho certeza disso)
Abraços.
Bom dia,
https://www.ppa.com.br/produtos/acessorios-e-centrais/triflex-facility
Compatível com Transmissores de Código Rolante com protocolo próprio da PPA
https://bitzar.blob.core.windows.net/ppa/content/library/files/SAID...
Boa tarde,
Como já informado, o Rolling code é criptografado.
Só o fabricante tem o código.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por