IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Extraction de données d'un calculateur


Sujet :

Embarqué

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Par défaut Extraction de données d'un calculateur
    Bonjour! Je veux faire du reverse engineering sur des ECUs de voiture. Je me pose des questions sur la connexion à réaliser (OBD ou pas) et le format de données que je vais obtenir. Je peux prendre Ghidra je suppose pour l'analyse.

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 237
    Par défaut
    Bonjour,
    Concernant la prise ODB elle ne te remontra que la liste des défauts du véhicule. Liste définie par les fabricants.

    Si tu veux voir ce qui ce passe entre les ECU et les capteurs il faudra lire les données sur les bus CAN mais aussi Flexray et Lin car certaines voitures ont des bus de comm différents. Les données seront du binaire et difficilement interprétable puisque tu ne saura pas qui parle/repond (le maître, l'esclave ?)

    Il faudrait se placer non pas sur le bus mais plutôt derrière les transceivers CAN (par exemple) maitre et esclave car à ces endroits tu as des UART Rx Tx bien plus facile à interpréter.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Par défaut
    Les données sont une chose, et c'est utile de les connaitre... d'autant plus que le système embarqué d'une voiture est distribué au niveau granulaire des sous fonctions... Donc Sur une chaîne de bout-en-bout type capteurs-fonctions intermédiaires-actionneurs, on peut non seulement retrouver un code réparti sur plusieurs ECUs mais également des variables introduites depuis encore d'autres calculateurs... Ces dernières sans doute récoltables par le biais de ce que tu m'as dit, si j'en désire les valeurs. Il me manquera la partie code des ECUs puisque je vais tâcher de comprendre le fonctionnement (même si j'avoue que je m'attend à une tâche colossale). J'ai pensé ouvrir l'ECU dont je veux récupérer le programme et faire un full BDM car la cartographie n'est pas ce qui m'intéresse le plus.
    En effet il faudra que je m'adapte au type de réseau mis en place... Comment te connecte tu pour récupérer les données UAT? Je suppose qu'il faut un programme de déchiffrage spécifique?

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 237
    Par défaut
    Citation Envoyé par Esther Brulard Voir le message
    même si j'avoue que je m'attend à une tâche colossale.
    En effet c'est loin d'être simple.

    Citation Envoyé par Esther Brulard Voir le message
    J'ai pensé ouvrir l'ECU dont je veux récupérer le programme et faire un full BDM car la cartographie n'est pas ce qui m'intéresse le plus.
    En effet il faudra que je m'adapte au type de réseau mis en place...
    Oui ouvrir un ECU est une bonne idée.
    Un ECU c'est un microcontrôleur au quel on a ajouté un transceiver BUS CAN pour le maitre (le calculateur) ou un capteur/actionneur suivi d'un microcontrôleur au quel on a ajouté un transceiver BUS CAN pour les esclaves. Selon où on se trouve dans la voiture ça peut être du BUS LIN (des capteurs simples genre porte ouverte/fermée) ou même du FlexRay.

    Pour reprogrammer le microcontrôleur il faut bien souvent une sonde JTAG mais encore faut il avoir le programme à mettre dedans. Lire le programme existant c'est pas gagné car quasiment tous les microcontrôleurs ont des systèmes de verrouillage anti-lecture. Parfois le microcontrôleur permet de mettre à jour une map/emplacement mémoire spécifique mais il faut savoir comment faire ça et pas sur que ce soit documenté quelque part.

    Citation Envoyé par Esther Brulard Voir le message
    Comment te connecte tu pour récupérer les données UAT? Je suppose qu'il faut un programme de déchiffrage spécifique?
    Mon oscilloscope et beaucoup d'autres permettent de faire ça. Beaucoup d'oscillo ont des décodeurs de protocole, le mien fait CAN et LIN pour l'automobile. Ici dans cet exemple (c'est précisément mon oscillo) est directement mis sur le bus CAN, mais il aurait pu être placé entre le microcontrôleur et le transceiver CAN auquel cas il aurait fallu activer le décodage UART

    Alors ça ne fait pas tout évidement, l'oscillo décode la trame CAN, tu vois les données, le CRC etc...mais il faut arriver à savoir a quoi correspondent ses données (le maître qui pose une question ? Un capteur qui répond ? La donnée que je vois correspond à quoi ?). C'est ça la tâche colossale !

    Nom : Capture024.PNG
Affichages : 98
Taille : 53,4 Ko

    Nom : Capture025.PNG
Affichages : 97
Taille : 58,2 Ko

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2019
    Messages : 13
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message
    Lire le programme existant c'est pas gagné car quasiment tous les microcontrôleurs ont des systèmes de verrouillage anti-lecture.
    Tu veux dire qu'ils sont cryptés, c'est celà?

    En tout cas belle explication illustrée! Il me semble que des programmes can sniffer récupèrent aussi les données, et permettent de voir en direct l'effet des actions sur des commandes de la voiture... Une façon de coller un nom sur qui fait quoi?

  6. #6
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 237
    Par défaut
    Citation Envoyé par Esther Brulard Voir le message
    Tu veux dire qu'ils sont cryptés, c'est celà?
    Non ce n'est pas crypté, c'est un simple mode anti-lecture.
    A moins que tu ne possèdes le programme d'origine, lorsqu'il est activé tu ne peux pas lire le programme existant dans le microcontrôleur, tu peux l'effacer si tu veux ou le programmer c'est à dire écraser l'ancien programme avec un nouveau programme. Tu ne peux pas par exemple, lire le programme en faire une copie et le remettre dans d'autres microcontrôleurs.

    Si tu as une photo d'un ECU démonté et que j'arrive à lire la référence des composants, il est possible qu'on trouve la doc du microcontrôleur pour voir s'il a cette option anti-lecture (même si je suis quasi sur que c'est le cas)

    Après faut voir comment le fabricant a prévu son coup pour les mises à jours. Il n'a peut être pas activé l'anti-lecture.

    Regarde cette vidéo par exemple :



    A un moment, on voit la référence du microcontrôleur, un TC1766 de chez Infineon. La doc constructeur du micro est ici : https://www.infineon.com/dgdl/Infine...1368a9b40e0224

    Nom : Capture027.PNG
Affichages : 77
Taille : 53,2 Ko

    On peut voir qu'il peut être programmé une seule fois pour toujours (OTP One Time Programming) donc ça si c'est activé alors là... on ne peut même pas l'effacer ou le reprogrammer. On voit qu'on peut mettre même mettre un mot de passe pour temporairement désactiver la protection anti-lecture.

    Ce micro a plusieurs mémoires

    Nom : Capture026.PNG
Affichages : 76
Taille : 45,2 Ko

    Ca semble évident que les paramètres de réglages du calculateur sont dans la mémoire paramètre tandis que dans l'autre mémoire on va retrouver le programme.

    Ce micro a même un bootloader qu'on peut activer en mettant la broche 118 (/TESTMODE) au +5V, et je suis a peu prés sur que c'est ce que le gars qui soude à fait dans la vidéo plus haut. Un bootloader c'est ça :

    Citation Envoyé par Traduit du site Arduino
    Qu'est-ce qu'un chargeur de démarrage ?
    Les microcontrôleurs sont généralement programmés à l'aide d'un programmateur, à moins que vous n'ayez un micrologiciel dans votre microcontrôleur qui permette d'installer un nouveau micrologiciel sans avoir besoin d'un programmateur externe. C'est ce qu'on appelle un chargeur de démarrage.
    Donc la protection anti-lecture n'est peut être pas activé partout.


    Citation Envoyé par Esther Brulard Voir le message
    En tout cas belle explication illustrée! Il me semble que des programmes can sniffer récupèrent aussi les données, et permettent de voir en direct l'effet des actions sur des commandes de la voiture... Une façon de coller un nom sur qui fait quoi?
    Oui ça doit exister je pense, le plus compliqué c'est d'arriver à trouver qui parle et qui répond car si je mettais mon oscillo sur le bus CAN d'une voiture j'imagine que le nombre de ligne serait tellement gros qu'arriver à s'y retrouver serait très très très compliqué. Quand on a juste un maitre et 3 ou 4 esclaves ça va mais dans une voiture....

Discussions similaires

  1. l'extraction des donnés sur les site internet avec python
    Par zakaria spearfishing dans le forum Général Python
    Réponses: 0
    Dernier message: 17/04/2013, 00h14
  2. extraction de donnes depuis un phichier physique
    Par mery007 dans le forum DB2
    Réponses: 11
    Dernier message: 26/03/2012, 21h08
  3. [MySQL] eurreur d'extraction des donnés
    Par naim2009 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/02/2009, 23h05
  4. Réponses: 4
    Dernier message: 02/07/2008, 18h32
  5. Extraction de donnés dans un fichier XML
    Par ANISSS dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 27/01/2006, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo