Skyduino:~#
Articles
Corrigé, test

[hack] lecteur RFID chinois

Bonjour tout le monde !

Aujourd’hui je vous ai préparé un article pour vous parler d’un lecteur RFID « made in chinois » que j’ai trouvé sur DealExtreme pour … 8.50$ !
Oui oui, 8.5 dollars, frais de port inclus … la super bonne affaire en quelque sorte.

Pour les curieux voici le lien (SKU.174455) (malheureusement « sold out », ce qui signifie sur dealExtreme qu’il n’y en aura plus jamais) :
http://dx.com/p/intelligent-id-card-usb-reader-174455

Le lecteur en soit marche super bien avec mes tags RFID 125KHz compatible EM4100 (tags RFID basique).
Il y a juste un petit problème …

Le lecteur s’énumère sur le bus USB comme un bête clavier HID, pas de drivers requis donc.
Quand on passe un tag une led clignote et un buzzer beep, classique.
Sauf qu’au même moment le lecteur « écrit » 10 octets sous forme hexadécimal … un tag RFID EM4100 ne contenant que 5 octets on est en droit de ce demander où il trouve les 5 octets en plus.

J’ai cherché, encore et encore sans trouver de logique derrière ces 10 octets …
– ils sont bien uniques, chaque carte donne une suite de valeurs différentes.
– ils ne correspondent pas au octets de l’ID du tag RFID
– certain octets semble « figés »
Tout laisse à penser qu’il s’agit d’un format propriétaire ou d’une astuce de fabrication pour réduire les coûts …

En cherchant un peu plus loin (très loin même) j’ai pu retrouver le fabricant :
http://www.freevisioncorp.com/Product.asp?Id=62

Mais en regardant certains points de la fiche produit les choses ne collent pas :
Reader Model Blackbox D10 // Sur DealExtreme la référence est "ID0009" -> D9 / D10, mon lecteur est peut être une version allégé ?
Application Read /write HID card // Read ok, mais Write ... énuméré en tant que clavier usb c'est pas possible
Functions: Read UID of EM4100 Unique RO chip // Ok ça c'est bon
Read HID Proxcard // Je reste perplexe sur ce point, j'ai pas de carte HID pour tester mais ça m'étonnerai beaucoup

Un premier morceau de réponse pourrait se cacher derrière les annotations en chinois sur le carton :

P1060109

- ID -> ?
– USB -> connexion usb
– ????
– 10 ??? -> 10 octets ?
– ???

P1060111

Je ne suis pourtant pas fou c’est bien le même lecteur qu’ici :
http://www.freevisioncorp.com/productclass.asp

Une seule solution, la révolution le démontage !

Vue arrière :

P1060112

Circuit + antenne :

P1060116

Circuit en détails :

P1060119

On peut y voir une partie pour la mise en forme du signal de l’antenne.
Un STC15F104E pour la gestion de la led et du buzzer (pourquoi pas … c’est un peu overkill comme solution mais bon).

Et … un CI totalement inconnu qui est directement relié au port usb.
De plus on remarque une empreinte vide avec des connexions très semblables à celles de l’empreinte du CI inconnu, ce pcb est sûrement utilisé pour faire deux versions du même produit.

P1060122

Concernant le CI inconnu c’est à coup sûr un composant spécialisé, conçu et fabriqué par la même entreprise que le lecteur lui même.
Pas la moindre trace de laser ou de « grattage », ce CI n’a tout simplement jamais était gravé d’une quelconque référence …

Parlons software :

Bon concernant le logiciel … j’ai rien à dire en fait, le lecteur se comporte comme un clavier usb qui « écrit » les ID des tags qu’il lit.

J’ai fait un récapitulatif des ID lus et des ID réels de mes cartes RFID … si vous voyez une logique la dedans bravo, moi je sèche …
Réel: 26 00 D7 18 74
Lu: E0 E0 26 27 E0 E7 2D 28 E0 E0

Réel: 26 00 D6 F1 A8
Lu: E0 E0 26 27 E0 5F 2D 28 2D 5F

Réel: 01 07 DD 76 72
Lu: E0 26 22 26 E7 28 27 E9 E7 E0

Réel: 01 07 DD 72 75
Lu: E0 26 22 26 E7 28 22 26 5F E7

Réel: 01 07 DD 59 3B
Lu: E0 26 22 26 E7 27 2D 5F 26 26

Réel: 01 07 DD 74 95
Lu: E0 26 22 26 E7 28 22 5F 26 22

Réel: 01 07 DD 79 11
Lu: E0 26 22 26 E7 28 27 E7 2D 26

Le premier octets semblent constant, pour le reste …
Si vous avez une idée n’hésitez pas à me le faire savoir via les commentaires ;)

About these ads

Discussion

20 réflexions sur “[hack] lecteur RFID chinois

  1. Je dis peu-être de la m*rde, mais:
    Quand réel commence 26 00, Lu commence toujours par E0 E0 26 27 E0
    Quand réel commence 01 07, Lu commence toujours par E0 26 22 26 E7
    D’autres cartes à tester seraient peut-être nécessaires…

    Publié par Damien | 1 février 2013, 14 h 22 min
  2. Aperçu le produit D10 ici http://www.tradekorea.com/product-detail/P00286215/125KHz_HID_Compatible_RFID_Reader_Writer__Free_Now_.html
    Et sur la page il y a un manuel PDF qui explique l’install de driver windows +soft

    http://www.tradekorea.com/product/file/download.mvc?prodId=P00286215&fileSysNm=/upload_file2/product/215/P00286215/cbe9caa5_da4c2f15_f3d0_474c_9f5c_2e3e10947514.pdf

    –> CH341SER.rar / CH341SER.exe et iProxProgrammer PC software

    En espérant aider à faire avancer le schmilblick…

    … mais si ça se trouve ça te fournit les caractères en 16 bits comme le ferait un clavier chinois 8-)

    Publié par Guigui | 1 février 2013, 15 h 33 min
  3. Si c’est censé se comporter comme un clavier , cherche du coté des « keyboard scan code » a mon avis.

    Publié par blakk-olifant (@blakkolifant) | 1 février 2013, 21 h 52 min
  4. Je ne sais pas si sa peut aider, mais si on converti en décimale, on peut voir que quant la valeur réelle B est plus petite que valeur réelle A, la valeur lue B est plus petite que la valeur lue A, et vice versa

    Publié par Adrien | 1 février 2013, 22 h 53 min
  5. Grâce à Google Traduct (Appli Android qui traduit à partir d’une photo) :
    – ID -> ?
    – USB -> connexion usb
    – ???? –> Décimal // et la ligne en face (colonne de droite) c’est Hexadécimal
    – 10 ??? -> 10 positions
    – ??? –> Personnaliser

    Voilà, si ça peut aider.

    Publié par Simon | 2 février 2013, 13 h 10 min
  6. Jete un coup d’oeil à cette page : il y a également un mot de 10 bits et ils donnent le contenu. Peut etre que ta carte utilise le mm algo : http://www.ardushop.com/kits/electronic-brick-125khz-rfid-card-reader.html

    Publié par Guillaume | 2 février 2013, 22 h 59 min
    • C’est bien le même algo.

      Réel -> Sans le 1er octet -> en décimal sur 10 chiffres
      => Encodage selon le tableau suivant

      0 E0
      1 26
      2 E9
      3 22
      4 27
      5 28
      6 2D
      7 ??
      8 5F
      9 E7

      Par contre, je n’ai pas trouvé la logique de cet encodage et du coup il manque le 7…

      26 00 D7 18 74 -> 00 D7 18 74 -> 0014096500
      E0 E0 26 27 E0 E7 2D 28 E0 E0

      26 00 D6 F1 A8 -> 00 D6 F1 A8 -> 0014086568
      E0 E0 26 27 E0 5F 2D 28 2D 5F

      01 07 DD 76 72 -> 07 DD 76 72 -> 0131954290
      E0 26 22 26 E7 28 27 E9 E7 E0

      01 07 DD 72 75 -> 07 DD 72 75 -> 0131953269
      E0 26 22 26 E7 28 22 26 5F E7

      01 07 DD 59 3B -> 07 DD 59 3B -> 0131946811
      E0 26 22 26 E7 27 2D 5F 26 26

      01 07 DD 74 95 -> 07 DD 74 95 -> 0131953813
      E0 26 22 26 E7 28 22 5F 26 22

      01 07 DD 79 11 -> 07 DD 79 11 -> 0131954961
      E0 26 22 26 E7 28 27 E7 2D 26

      Antafuli

      Publié par Antafuli | 4 février 2013, 23 h 05 min
      • Le mystère est donc résolu !
        Vous faite vraiment des miracles les mecs ;)

        Par contre … pourquoi avoir choisi cette méthode d’encodage ? Ça c’est un autre mystère …
        Surtout qu’en faisant cela plusieurs ID peuvent rentrer en conflit du fait de l’octet manquant.

        Concernant l’encodage du chiffre 7 je vais (re)sortir mon spoofer RFID pour émuler des cartes EM4100 avec uniquement une seule série de chiffres identiques.

        Edit:
        Pour ‘7’ c’est 0xE8
        Je vais faire un article pour présenter le calcul, mon script de codage / décodage et bien sûr vous remercier ;)

        Publié par skywodd | 5 février 2013, 12 h 52 min
      • Le premier octet est peut-être un checksum ou quelque chose dans le genre.
        Joli travail en tout cas!

        Publié par Binary Brain | 18 février 2013, 20 h 34 min
  7. pourquoi décimal? parce que c’est classique pour les lecteurs de controle d’accès!
    Mais je sais pas pourquoi c’est classique!

    (je bosse dans le domaine…)

    Publié par seb de OpenMakersDaily | 18 février 2013, 9 h 15 min
  8. Quelles sont les dimensions de l’antenne ? Combien de tours ? Quel diametre pour le fil ?

    Publié par Gidam | 12 mai 2013, 5 h 30 min
  9. J’ai le même que toi et merci pour toutes les nfos, je vais gagner du temps ;)

    Publié par Cymon | 6 juin 2013, 11 h 45 min
  10. Bonjour, le pilote USB (W7-32b et 64b) et le soft sont téléchargeables sur http://rfidshop.com.hk/
    Yves

    Publié par Accard | 13 juin 2013, 15 h 47 min
  11. c’est étonnant, j’ai moi aussi acheté ce lecteur, c’est la même référence (id0009) mais le mien rentre directement les caractères écris sur la carte (les 10 premiers). A un problème près : il simule un appui sur les touches des chiffres en haut du clavier mais il oublie d’appuyer sur la touche majuscule. résultat, je me retrouve avec les caractères spéciaux du clavier (& pour 1, é pour 2 etc.). j’ai mis un certain temps avant de comprendre ça, imaginez ma réaction quand j’ai vu que c’était un truc aussi bête… Au final, il suffit d’activer la touche verrouillage majuscule pour résoudre le problème mais bon c’est pas très pratique si on a besoin du clavier pour faire autre chose… si quelqu’un a une solution… =)

    Publié par Fardenco | 4 septembre 2013, 16 h 45 min

Rétroliens/Pings

  1. Pingback: Turning an $8 RFID reader into something useful - 16 février 2013

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

Archives

Wow. Dogecoin. Amaze.

Laissez un tip en Dogecoin

DMMNFk6WBVTpx2Wu1Z35GL61QXSd6r6WQx

Suivre

Recevez les nouvelles publications par mail.

Rejoignez 768 autres abonnés