Bref, je hack une caméra
Bonjour à tous,
Enfin un article en dehors de ce projet PAINS.... Enfin presque....
J'ai récupéré de ma chouette maman une caméra, une Logicom Spin cam

Nous sommes sur une caméra qui fonctionne avec l'application Logicom home, un fork de tuya smart, donc par téléphone.
Petit souci pour cette caméra, Logicom a laissé tomber l'app, faisant que la caméra ne fonctionne plus en passant par internet.
Elle est alimentée par câble, sans batterie, et se contente de rien en électricité, l'USB A de mon pc lui suffit.
Elle a une sortie audio pour qu'on puisse parler à distance, du night vision, un micro et bien sûr, une caméra.
Elle a aussi un port micro SD jusqu'a 128 Go mais je vois pas son utilité dans le projet.
l'idée de réutiliser cette caméra me vient d'un article de Korben.info qui parlait de openIPC, une solution pour remplacer le firmware de beaucoup de caméras, qui permettrait qu'elles n'aient plus besoin d'utiliser des applications biens sombres et de passer par des serveurs qui pourraient récupérer le flux vidéo et audio.
Et donc je ne pensais pas en faire un article au début. Puis au vu des moyens colossaux que j'ai déployé pour l'instant ( ouvrir Wireshark et NMAP sur mon pc, je sais, ça fait beaucoup ) je me suis dit que ça serait rigolo de faire un article dessus.
Donc nous sommes partis !
Enfin presque....
La caméra doit être connectée à la box internet. Sauf que ça demande une application. On va oublier celle de logicom, et donc installer TUYA SMART sur le play store.
Grâce à l'application, on va pouvoir lui donner accès au réseau.
Et maintenant ?
Sur internet, pas trop d'informations.
on va donc gratter de nous-mêmes et voir ce qu'on trouve.
Je commence simple, avec VLC
Je pars du principe qu'elle diffuse du flux vidéo RTSP et donc que VLC peut le récupérer

Bon. Erreur.
Comment savoir ce qu'elle diffuse ?
Cela doit bien sortir de quelque part. D'un port...
On ouvre NMAP, et après avoir faire un scan "intensif" en TCP et UDP, un seul port en TCP ressort de la caméra : 6668
Et cela nous donne une bonne indication. Ce port veut dire que le firmware est une base Tuya, et donc utilise non un protocole RTSP mais un protocole propriétaire.
C'est vrai qu'en écrivant ces lignes que j'aurais pu le deviner directement avec le logiciel utilisé
Mais ça ne me précise pas quel SOC ( en gros le processeur ) est utilisé dans la caméra et donc si je peux installer openIPC. Je veux donc essayer autre chose que j'ai trouvé sur internet : go2RTC
Mais l'idée tombe vite à l'eau... et par ma faute...
En installant tuya, je n'ai pas voulu faire de compte. Donc j'ai relié la caméra sans compte, sauf que l'application m'a dit que pour utiliser cette caméra il faut un compte, et donc elle n'était pas affichée sur l'app.
Donc j'ai créé un compte. Mais TUYA considère que la caméra est reliée à un compte... qui du coup n'existe pas. Donc je peux juste générer un QR code qui permet à la caméra de demander une IP à la box puis d'attendre qu'un appareil avec l'application Tuya lui réponde.

Elle spam les requêtes qui annoncent sa présence... mais personne ne lui répond...
Cela fait que l'idée d'utiliser go2RTC tombe à l'eau.
Mais il reste une solution : openIPC
d'après le peu d'info que j'ai trouvées ( merci ChatGPT ) si c'est un firmware TUYA, ça ne peut être que certains SOC, et dans la liste qu'il m'a sorti, ça à l'air bien parti. Mais ça ne me dit pas quel SOC j'ai dans ma caméra.
Je vais devoir la démonter...

Petit souci : je ne vois qu'une vis. Et la vis me parait, sûrement d'origine cruciforme, comme foirée. J'ai tenté avec un tournevis mais je tourne dans le vide.
Connaitre le SOC de cette caméra devient soudainement très compliqué.
Oui j'ai déjà lu la notice en long, en large, en travers, physiquement, virtuellement, en français, en anglais et aucune réponse. Youtube et le moteur de recherche Google ont eu quelques pistes mais qui ont donné sur un mur.
Ne pas désespérer même si ça part mal.
Il reste encore deux vis à un autre endroit, qui pourrait peut-être me donner des informations.
Sur la "boule" de la caméra et non son pied peut-être. j'y crois pas trop mais ça se tente...
les vis s'enlèvent cette fois sans aucun souci et j'ai accès à l'intérieur de la sphère. Et cette fois ci, j'ai de bonnes infos...

Youpi ça s'ouvre. On reste délicat avec tous ces fils, on déplace le moins possible les deux parties et on récupère juste l'information qui nous intéresse. Ensuite on referme. Et je pense avoir trouvé notre information :

On peut voir la carte Wifi à gauche, en vert, reconnaissable avec son fil et sa manière d'être connectée. Mais surtout la référence de son SOC.
Si je ne suis pas stupide c'est : ANYKA AK3918EN080 V300S BESJ06G22
Allons donc voir sur le site de openIPC si nous avons un petit firmware compatible :

Bon, c'est officiel, on peut oublier l'idée de openIPC.
Mais rien n'est encore totalement perdu !
La caméra fonctionne, elle attend juste qu'on réponde à ces requêtes.
Sauf que moi je suis pas hacker, j'ai aucune connaissance dans l'embarqué et lire des trames, je fais le minimum mais la data qu'elle contient, je peux pas ( en plus d'être chiffrée ).
Et même si je récupère la clé de déchiffrage, je serais pas quoi en faire. Je me doute bien qu'il faudra la mettre dans un logiciel pour que le logiciel s'occupe du déverrouillage mais ensuite...
Bon aller, on va chercher sur internet des informations sur ce SOC, peut-etre que j'aurais des solutions de contournements. Et ensuite, on reste sur un firmware TUYA, même si c'est propriétaire, c'est bien répandu, je pense qu'on peut avoir des solutions.
Après quelques jours de recherches, je trouve.... pas grand chose.
un firmware daté qui serait peut-etre compatible avec mon SOC de caméra : plus une faille firmware
Un hack compatible avec un SOC d'une référence quasi identique mais pas trop confiance
Et peut-être une API custom
Et c'est tout. Pas de vraies informations à ce mettre sous la dent.
Mais j'ai réfléchi et j'ai peut-être une solution : Wireshark
j'ai reçu une notification de chez Tuya pour dire qu'ils ont délié la caméra du compte fantôme.
Ce qui veut dire que je peux la relier à mon compte. Et même mieux : voir les paquets qui passent et les décortiquer.
Avec l'aide de chatGPT, j'ai appris qu'on peut faire avec le langage python des paquets à envoyer vers la caméra pour la "déverouiller".
Etant en BTS sio SISR, j'ai très très peu de compétences de programmation, on s'arrête à ce qu'on a fait en algo. Mais si je peux faire un script qui envoie un paquet pour que le flux vidéo de la caméra soit visible sur tout le réseau, je pense qu'on aura bien avancé.
Donc on va sur Tuya, connecter la caméra, et avoir en parallèle Wireshark.
Et voici les paquets qu'on voit pendant la connexion : 
La caméra est sur l'ip 192.168.1.16
Rien
on l'a voit utiliser le port 6667 , qui serait la recherche de périphérique d'après la doc tuya : https://support.tuya.com/en/help/_detail/Kd9ym28csm58k
Sauf que j'ai initialisé la connexion et j'ai du flux vidéo sur mon téléphone.
Et ça marche bien
Mais où passe ce flux ? par quels paquets, j'ai pu connecter cette caméra et mon tel ?
Coté Téléphone, les informations ne sont pas meilleures...

Une répétition de la même trame sur le port 7000 vers nulle part....
et c'est la que je me dis que ça vient peut-être pas d'eux mais de plus haut, de la box internet, de la Livebox. Elle doit bloquer le fait que les paquets qui ne sont pas destinés au pc , ne viennent pas au pc. Solution : Le partage de connexion sur le pc
Si les deux appareils sont connectés sur le partage de connexion du pc, le pc, et donc wireshark, va tout voir.

Et on a déjà plus de trames que précédemment :

Déjà je vois les requêtes DHCP
Et donc j'ai passer quelques temps à lire les trames... Enfin essayé. Car le souci, c'est que c'est chiffré. Et même si j'ai le paquet qui donne le certificat , la clé de chiffrement, je ne sais pas comment faire.
Mais je me rappelle de quelque chose : go2rtc.
Maintenant que ma caméra est reliée à mon compte Tuya, je peux lui donner accès à mon compte

Voyons ce que ça donne :
On doit faire un fichier de conf en yaml, situé au même endroit que le .exe :
streams: # Tuya Smart API: WebRTC main stream (use Add > Tuya to discover the URL) tuya_main: - tuya://protect-us.ismartlife.me?device_id=XXX&email=XXX&password=XXX source : le github de go2RTC
Et ça marche !

Le souci, c'est que ça ne répond pas vraiment ce que je demande : l'indépendance.
Actuellement le flux vidéo fait cela : cam -> serveur tuya -> go2rtc -> VLC
Sauf que je veux supprimer l'étape serveur tuya .
Il y a aussi un autre souci, c'est qu'on a 2 secondes de délais, et pas de son.
Donc je repars sur Google, trouver des réponses, et après quelques recherches....
J'ai rien.
Une dernière possibilité serait d'envoyer des paquets à la caméra pour lui lancer des commandes, mais il faudrait que les paquets aient les bonnes commandes et soit validés par la caméra.
Mais même si j'ai des trames, je n'ai pas la moindre idée de comment trouver, et je pense que ça va prendre beaucoup de temps.
Donc à la fin de tout ça :
- j'ai des sauvegardes Wireshark des moments où je relis la caméra à l'application sur mon téléphone.
- la caméra fonctionne sans souci avec l'application originale Tuya, mais pas son fork Logicom Home (peut-etre quelque chose à fouiller par là )
- on peut faire du proxy et conversion du flux avec go2RTC
- Je crois en openIPC pour faire un firmware pour le SOC de ma caméra
- Peut-être utiliser Tuya IOT
je m'arrête et mets cette caméra de coté. Elle m'a montré qu'elle fonctionnait, elle reste reloue à vouloir utiliser les serveurs Tuya.
Peut-être que je chercherai plus tard, mais elle m'a pris pas mal de soirées, donc je fais un temps mort sur elle.
Posté le 29 mars 2026 par _Antonin_