Table des matières:
- Étape 1: configuration et connexion du matériel
- Étape 2: Installez le logiciel sur l'Arduino
- Étape 3: Connectez-le et commencez à récupérer des données
- Étape 4: Les données et ce que tout cela signifie
- Étape 5: Regardez la vidéo
Vidéo: Piratage du CAN-BUS V2.0 de Seeed Studio - Prise en main : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Cette instructable est destinée aux débutants qui connaissent déjà Arduino. Le savoir-faire initial pour démarrer est toujours une douleur et prend du temps dans tout projet. Mais jusqu'à ce que vous sachiez vous débrouiller, vous souhaiterez presque toujours avoir quelqu'un pour vous montrer les bases.
Dans ce instructable, nous renverrons des données CAN-BUS de votre véhicule.
Et ne vous inquiétez pas ! Je vais aller droit au but sans divaguer et utiliser des mots à la mode pour me faire passer pour un hacker intelligent:-)
Je recommande personnellement les shields CAN-BUS de Seeed Studio. Je ne peux pas vraiment parler pour les autres marques, mais le CAN-BUS Shield de SeeedStudio m'a très bien servi.
Remarque importante: Le blindage can-bus est obligatoire. J'ai pris cette note car assez souvent les gens demandent si vous devez utiliser un blindage CAN-BUS. Le shield dispose d'un MCP2515 (contrôleur CAN) et d'un MCP2551 (émetteur-récepteur) qui traiteront les données CAN-BUS vers le port série de votre Arduino.
Le matériel requis.1. Arduino UNO - Tout compatible arduino suffira. j'ai utilisé celui-ci
2. Blindage CAN-BUS SeeedStudio. Je l'ai eu directement de SeeedStudio voici le lien
3. Quelques fils à brancher sur le CAN-BUS
4. un véhicule dont vous pouvez récupérer des données
Le logiciel requis1. IDE Arduino, duh ! Évidemment:-)
2. Bibliothèque CAN-BUS SeeedStudio. Téléchargeable depuis GIT Hub
Quelques informations vitales supplémentaires si vous avez envie d'en savoir plus sur le shield CAN-BUS de SeeedStudio.
Commençons!
Étape 1: configuration et connexion du matériel
Commençons par la partie la plus difficile. Nous devons trouver un endroit dans votre véhicule où nous pouvons puiser dans le CAN-BUS. Il n'y a pas grand-chose que je puisse faire pour vous ici, vous devez le découvrir par vous-même. Dans mon cas, j'ai branché le CAN-BUS via la radio. Oui! la radio. Les véhicules équipés d'un système audio de voiture intégré règlent généralement l'éclairage de l'écran stéréo de la voiture en fonction du réglage des phares du véhicule pour la conduite de nuit. Cela se fait généralement via le CAN-BUS intérieur.
J'ai utilisé un câble d'extension USB doté d'une extrémité USB mâle et d'une extrémité USB femelle. Je l'ai donc simplement coupé en deux, puis j'ai soudé le côté femelle sur le connecteur de la radio. Vous voudrez peut-être acheter un connecteur mâle femelle pour votre type de radio, de cette façon, vous n'aurez pas à épisser le câblage de votre véhicule et à annuler votre garantie ou à provoquer un risque d'incendie.
Et puis la partie mâle que j'ai connectée au shield SeeedStudio CAN-BUS comme indiqué sur la photo. De cette façon, je peux me connecter/déconnecter en cas de besoin.
Astuce: utilisez un fil rouge pour CAN-H et noir pour CAN-L
Étape 2: Installez le logiciel sur l'Arduino
Téléchargez la bibliothèque SeeedStudio à partir du wiki CAN-BUS de SeeedStudio.
github.com/Seeed-Studio/CAN_BUS_Shield
Installez la bibliothèque comme indiqué dans les images.
Dans l'IDE Arduino, sélectionnez Sketch Include Library - Add.zip Library.
Après avoir ajouté la bibliothèque, fermez l'IDE Arduino et rouvrez-le. Vous pourrez maintenant charger quelques exemples à partir du menu Fichier Exemples de fichiers Bouclier CAN-BUS Contrôle de réception
Pour ce didacticiel, chargez l'exemple de vérification de réception.
Important!
Ce qui suit nécessitera quelques essais et erreurs.
J'ai utilisé mon Jeep JK 2010 Rubicon pour récupérer des données et son bus intérieur fonctionne à 125 Ko.
Dans la section de configuration où il se lit
tandis que (CAN_OK != CAN.begin(CAN_500KBPS)) j'ai dû le changer en
tandis que (CAN_OK != CAN.begin(CAN_125KBPS))
Si vous vous trompez, vous ne pourrez pas récupérer les données lisibles. Dans la plupart des cas, y compris le mien, votre véhicule deviendra fou. C'est-à-dire que le cluster s'allume comme un arbre de Noël et les essuie-glaces commenceront à bouger. parce que le bouclier de bus peut corrompre le bus.
Étape 3: Connectez-le et commencez à récupérer des données
Avant de vous connecter, veuillez effectuer un contrôle de cohérence avant de le brancher à votre véhicule. La dernière chose que vous voulez faire est d'envoyer de l'énergie à votre CAN-BUS, ce qui risque de faire exploser l'ECU de votre véhicule.
Je n'ai pas fait de contrôle de cohérence et ce n'est qu'après avoir réalisé que je ne recevais pas de données que j'ai vu que j'avais connecté l'USB de l'ordinateur portable directement à l'alimentation USB de l'Arduino. Heureusement, il ne s'est rien passé.
Dans les images de cette étape, j'ai utilisé mon ordinateur portable Lenovo chargé de Linux Mint. Vous pouvez utiliser n'importe quel système d'exploitation pour vous connecter au port série de votre Arduino, 1. Installez l'ordinateur portable dans votre véhicule et allumez le blindage Arduino CAN-BUS avec un câble USB.
2. Démarrez Putty ou le moniteur série Arduino (je préfère Putty). Lorsqu'il est connecté, vous devriez voir un message dans la console série vous indiquant qu'il a réussi à initialiser le bouclier Can-Bus.
3. Allumez le véhicule. Il n'a pas besoin d'être démarré tant que la clé est en position marche.
4. Connectez l'Arduino au CAN-BUS. Au moment où il est connecté, les données commenceront à être diffusées dans la console.
Étape 4: Les données et ce que tout cela signifie
Lorsque les données sont récupérées, elles sont sauvegardées dans le format HEX suivant.
ID, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, BIT8
L'ID représente généralement un nœud dans votre véhicule.
Faisons un exemple simple. (Ce ci-dessous est inventé et non réel, juste un exemple)
ID du nœud de climatisation = 0x402 ÉTEINDRE LA CLIMATISATION = 13 ACTIVER LA CLIMATISATION = 14 RÉGLER LE SOUFFLEUR DE LA CLIMATISATION À BAS = 7C RÉGLER LE SOUFFLEUR DE LA CLIMATISATION À MOYEN 8C RÉGLER LE SOUFFLEUR DE LA CLIMATISATION À ÉLEVÉ 9C
Donc, si nous allumons l'Aircon et le réglons sur le support, le message ressemblera à ceci0x402, 13, 8C
il en va de même pour les autres nœuds, exemple Central LockingCentral Locking ID= 0x503LOCK toutes les portes = 14
Donc, si vous appuyez sur le bouton pour verrouiller toutes les portes, le message ressemblera à ceci
0x502, 14
Quelques notes supplémentaires.
Certains messages sont pilotés par l'état et certains ou momentanément.
Exemple 1. Lampes frontales comme conduites par l'état. Lorsque vous placez un interrupteur dans le véhicule sur une position spécifique, le nœud continuera à diffuser le message encore et encore. Si vous deviez interférer avec le CAN-BUS, envoyez un message pour éteindre les phares. Il s'éteindra brièvement puis se rallumera car le nœud sur lequel l'interrupteur est réglé pour allumer les phares enverra à nouveau un message pour l'allumer.
Exemple2. Sauter des pistes sur votre autoradio. lorsque vous appuyez sur un bouton et c'est un bouton momentané qui fera et interrompra immédiatement le circuit lorsque vous le quitterez, il enverra un message pour sauter la piste et plus jamais jusqu'à ce que vous demandiez d'appuyer à nouveau sur le bouton.
Les boutons momentanés sont généralement les plus utiles car vous pouvez contrôler les fonctionnalités de votre véhicule en envoyant une seule commande sans craindre que votre commande ne soit écrasée. Où en tant que fonctionnalités pilotées par l'état seront écrasées indéfiniment.
Quelques conseils et idées
Voyant que vous êtes maintenant capable de vider les données, vous pouvez les utiliser pour créer vos propres circuits Arduino qui réagiront en fonction des messages affichés sur le CAN-BUS. à titre d'exemple. Supposons que vous installiez des spots après le marché. Sans avoir à creuser dans votre câblage existant, vous pouvez installer vos lampes frontales indépendamment et ne les allumer que lorsque votre Arduino détecte un message sur le CAN-BUS.
Envoi de données dans le CAN-BUS
Si vous avez suivi les instructions au début de cette instructable, vous avez installé les bibliothèques SEEEDStudio. Dans l'IDE Arduino, vous pouvez essayer quelques exemples.
Connaître l'ID et le message CAN0-BUS du nœud avec lequel vous souhaitez interagir.
Malheureusement, ce n'est pas une tâche très facile. Mais voici une idée. Utilisez la fonction de journalisation de Putty et sauvegardez toutes les données de session dans un fichier. Laissez l'Arduino surveiller le bus can pendant environ 5 minutes, puis enregistrez le journal à l'écart.
Ensuite, démarrez une nouvelle session et commencez à vider les données. Mais cette fois, pendant le vidage des données, appuyez sur un bouton. N'appuyez pas sur plus d'un bouton. Appuyez sur le bouton plusieurs fois pour garantir qu'il a capturé la pression sur le bouton.
Ensuite, utilisez une sorte d'outil de comparaison et comparez le fichier pour repérer les différences. Excel fonctionne très bien pour cela.
Quelques codes que vous pouvez essayer
Si vous avez le même modèle Jeep 2010 Rubicon que moi (je suis sûr que ce qui suit fonctionnera également pour les modèles '07, '08', 09)
Vous pouvez essayer les messages suivants. Chargez les exemples d'envoi à partir du menu des exemples Arduino et les modifications étaient pertinentes.
Engager le casier arrière.: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);
Clignotant gauche allumé: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);
Clignotant droit allumé: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);
ESP activé/désactivé: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);
Dans mon prochain instructable, j'enverrai des données au CAN-BUS de ma Jeep pour montrer comment vous pouvez interférer avec cela.
Bonne chance!
Étape 5: Regardez la vidéo
Voir la vidéo pour plus de bonté CAN-BUS !
Conseillé:
Piratage des banques d'alimentation USB pour alimenter Arduino : 6 étapes
Piratage des banques d'alimentation USB pour alimenter Arduino : l'utilisation de banques d'alimentation bon marché pour alimenter vos circuits Arduino est si frustrante avec leurs circuits à faible courant et à arrêt automatique. Si la banque d'alimentation ne détecte pas une charge d'alimentation suffisamment importante, elle s'éteint juste 30-40 secondes. Modifions un Ch
Piratage du Hexbug Spider XL pour ajouter une vision par ordinateur à l'aide d'un smartphone Android : 9 étapes (avec photos)
Piratage du Hexbug Spider XL pour ajouter une vision par ordinateur à l'aide d'un smartphone Android : je suis un grand fan du Hexbug™ Araignée. J'en ai possédé plus d'une douzaine et je les ai tous piratés. Chaque fois qu'un de mes fils va chez un ami’ fête d'anniversaire, l'ami reçoit un Hexbug™ araignée en cadeau. J'ai piraté le ou
Piratage d'IKEA Växer : 12 étapes (avec photos)
Piratage d'IKEA Växer : Voici un projet de week-end rapide pour automatiser la lumière du cultivateur d'intérieur Växer (+ Krydda) d'IKEA, en l'intégrant dans Home Assistant à l'aide d'un microcontrôleur et d'ESPHome. Cela suppose que vous êtes déjà opérationnel avec Home Assistant
Piratage automobile du capteur de débit d'air COVID-19 : 5 étapes
COVID-19 Airflow Sensor Automotive Hack : Il s'agit d'un projet en évolution rapide… ce capteur a été abandonné car il n'a pas de trous de montage ou de méthode facile à sceller contre un tube. Un projet de capteur de débit d'air en cours est ici : AFH55M12Description du projet de Helpful Engineering L'int
Piratage de prothèses : modifications bioniques de la main : 6 étapes (avec photos)
Hacking Prosthetics : Bionic Hand Modifications : Ce projet consiste à explorer les modifications apportées aux prothèses, qui pourraient inspirer de futurs designs… J'ai travaillé avec Nigel Ackland, un « pionnier de la prothèse », après notre rencontre au Future Fest 2016 (et découvrez son incroyable discours chez Wired, à la dernière étape). Nous avons