Accueil > Arduino, Matériel > Hacker le contrôle parental de votre décodeur TV SFR

Hacker le contrôle parental de votre décodeur TV SFR

Je sais, je sais… Vous allez me dire ‘pas bien’ mais prenons le cas tout simple qu’un de vos enfants s’est amusé avec votre télécommande de votre décodeur TV SFR et que par mégarde il a entré un code parental. Et bien sûr il ne se rappelle plus du code. Comment faire pour désactiver cette fonctionnalité ?

Il existe une procédure pour réinitialiser le décodeur TV SFR (sortie usine) ou on peut tout simplement le faire à l’aide d’un Arduino !!! Bien sûr cela prendra un peu de temps mais c’est juste pour le plaisir.

Voilà le type d’écran que l’on obtient lorsqu’il y a une chaine protégée par un contrôle parental et donc un code parental :

contrôle parental TV SFR

Donc le décodeur s’attend à l’envoi de 4 chiffres (0000 à 9999) puis l’appui sur la touche ‘OK’. Si le code est erroné, il faut retaper un autre code et ainsi de suite.

Donc la première étape est de déterminer les codes générés par l’appui des touches 0 à 9 et de la touche ‘OK’. Pour cela se reporter à l’article précédent qui explique l’utilisation de la librairie IRremote.

Les codes ainsi générés sont les suivants :

Touche

Code

0 C1CC06F9
1 C1CC8679
2 C1CC46B9
3 C1CCC639
4 C1CC26D9
5 C1CCA659
6 C1CC6699
7 C1CCE619
8 C1CC16E9
9 C1CC9669
OK C1CC827Df

On a les codes, maintenant on va écrire le programme qui va permettre de hacker le code parental. Voici le contenu :

/*
  Permet de découvrir le code parental
  en utilisant la méthode brute force
*/

#include <IRremote.h>
IRsend emission_ir; // crée une instance

void genere_code(int code)
{
  long int code_hexa = 0;
  if (code != 10)  // ce n’est pas la touche OK
  {
    Serial.print(code);
  }
  switch(code)
  {
    case 0:
      code_hexa = 0xc1cc06f9;
      break;
    case 1:
      code_hexa = 0xc1cc8679;
      break;
    case 2:
      code_hexa = 0xc1cc46b9;
      break;
    case 3:
      code_hexa = 0xc1ccc639;
      break;
    case 4:
      code_hexa = 0xc1cc26d9;
      break;
    case 5:
      code_hexa = 0xc1cca659;
      break;
    case 6:
      code_hexa = 0xc1cc6699;
      break;
    case 7:
      code_hexa = 0xc1cce619;
      break;
    case 8:
      code_hexa = 0xc1cc16e9;
      break;
    case 9:
      code_hexa = 0xc1cc9669;
      break;
    case 10:  // c’est la touche OK
      code_hexa = 0xc1cc827D;
      break;
  }
  emission_ir.sendNEC(code_hexa, 32); // émission ir code
  delay(100); // on attend 100 ms
}

void setup()
{
   Serial.begin(9600);
   Serial.println("Decodeur TV pret ?");
   Serial.println("Appuyer sur une touche pour demarrer");
   while (!Serial.available());
}

void loop()
{
   for (int code=0; code<10000; code++)
   {
     if (code < 10)
     {
       genere_code(0);
       genere_code(0);
       genere_code(0);
       genere_code(code);
       genere_code(10); // touche OK
       Serial.println("");
     }
     if ((code >= 10) && (code < 100))
     {
       genere_code(0);
       genere_code(0);
       genere_code(code/10);
       genere_code(code-((code/10)*10));
       genere_code(10); // touche OK
       Serial.println("");
     }
     if ((code >=100) && (code < 1000))
     {
       genere_code(0);
       genere_code(code/100);
       genere_code((code-((code/100)*100))/10);
       genere_code((code-((code/100)*100))-(((code-((code/100)*100))/10)*10));
       genere_code(10); // touche OK
       Serial.println("");
     }
     if (code >=1000)
     {
       genere_code(code/1000);
       genere_code((code-((code/1000)*1000))/100);
       genere_code(((code-((code/1000)*1000))-((code-((code/1000)*1000))/100)*100)/10);
       genere_code(((code-((code/1000)*1000))-(((code-((code/1000)*1000))/10)*10)));
       genere_code(10); // touche OK
       Serial.println("");
     }
   }
}

L’utilisation est la suivante :

– Télécharger le programme dans l’Arduino.

– Se positionner sur la chaine qui est protégée par un code parental.

– Ouvrir le moniteur série; l’écran suivant apparait :

image

– Entrer un caractère et appuyer sur ‘Envoyer’; cela démarre l’envoi des codes via infrarouge au décodeur.

Et voici la vidéo qui montre l’exploit :

Hacking contrôle parental décodeur TV SFR

 

Comme on peut le voir dans la vidéo, après avoir trouvé le code, le programme continu; une amélioration serait d’ajouter une photo-résistance qui pointerait sur le téléviseur et qui détecte le changement de lumière lorsque que le code est trouvé.

Publicités
Catégories :Arduino, Matériel Étiquettes : , ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :