Reverse engineering d'un clone de l'interface XS evolution pour reflash n° de série

Réduire
Cette discussion est fermée.
X
Ceci est une discussion importante.
X
X
 
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages
  • _nlc_
    Member
    • mars 2013
    • 182

    #61
    Yes, c'est bon j'ai trouvé l'adresse du point d'entrée de l'application
    C'est à l'offset 0x21000
    Pour rappel le point d'entrée c'est l'adresse à laquelle le bootloader fait l'instruction de saut mémoire pour sortir du bootloader et basculer sur l'application.
    Ca n'aura finalement pas été trop compliqué : en général quand on développe une application pour un microcontrôleur donné, on ne se casse pas la tête pour la partie startup, à savoir le tout début de l'application qui a pour mission d'initialiser les variables ram avec leur valeurs par défaut (et plusieurs autres bricoles) avant l'appel au main(). On utilise en général le fichier source startup fournit par le fabricant du MCU. C'est ce que je fais, et comme j'ai déjà utilisé ce MCU j'ai ouvert le binaire d'un de mes applicatifs MB90F546, et j'ai regardé le code hexadécimal se trouvant au niveau du point d'entrée de l'applicatif (que je connais forcément là !!). Puis j'ai fait une recherche de la même suite de données binaires dans les dump 4.2.2 et 4.3.0, et dans les 2 cas je retrouve cette même suite de données binaires à 2 adresses :
    - Dans la zone bootloader, et qui correspond d'ailleurs à l'adresse du vecteur d'interruption (c'est là que ça démarre à la mise sous tension ou au reset)
    - Dans la zone application, donc à l'offset 0x21000

    Il est donc facile maintenant de faire une application télechargeable par PSAInterfaceChecker et executée correctement (puisqu'à la fin du flash il y a un ordre de saut vers l'application est est donné).
    Du coup il devient faisable de reflasher le bootloader par l'usb (et mettre à jour l'eeprom bien sûr) comme je l'ai détaillé hier : flashage d'un firmware spécial qui embarque le code binaire du bootloader, le stocke en ram (ainsi que les routines d'ecriture en flash), et le flashe dans la zone bootloader

    Commentaire

    • jarod54190
      Member
      • janvier 2013
      • 142

      #62
      alors ça, ça serait top (pouvoir flasher le bootloader par l'usb)

      Commentaire

      • jsamii
        Junior Member
        • août 2012
        • 29

        #63
        bien joué nlc ,on attend la suite pour éviter de dessouder le winbond

        Commentaire

        • wdarlid
          Junior Member
          • janvier 2013
          • 22

          #64
          T'es trop fort et t'as du souffle .vraiment une bonne nouvelle ,vivement la pratique avec l'aide des connaisseur et kit a faire des dons si on peut .

          Commentaire

          • MFAGRI
            Compte inactif
            • janvier 2013
            • 10

            #65
            Envoyé par _nlc_
            Yes, c'est bon j'ai trouvé l'adresse du point d'entrée de l'application
            C'est à l'offset 0x21000
            Pour rappel le point d'entrée c'est l'adresse à laquelle le bootloader fait l'instruction de saut mémoire pour sortir du bootloader et basculer sur l'application.
            Ca n'aura finalement pas été trop compliqué : en général quand on développe une application pour un microcontrôleur donné, on ne se casse pas la tête pour la partie startup, à savoir le tout début de l'application qui a pour mission d'initialiser les variables ram avec leur valeurs par défaut (et plusieurs autres bricoles) avant l'appel au main(). On utilise en général le fichier source startup fournit par le fabricant du MCU. C'est ce que je fais, et comme j'ai déjà utilisé ce MCU j'ai ouvert le binaire d'un de mes applicatifs MB90F546, et j'ai regardé le code hexadécimal se trouvant au niveau du point d'entrée de l'applicatif (que je connais forcément là !!). Puis j'ai fait une recherche de la même suite de données binaires dans les dump 4.2.2 et 4.3.0, et dans les 2 cas je retrouve cette même suite de données binaires à 2 adresses :
            - Dans la zone bootloader, et qui correspond d'ailleurs à l'adresse du vecteur d'interruption (c'est là que ça démarre à la mise sous tension ou au reset)
            - Dans la zone application, donc à l'offset 0x21000

            Il est donc facile maintenant de faire une application télechargeable par PSAInterfaceChecker et executée correctement (puisqu'à la fin du flash il y a un ordre de saut vers l'application est est donné).
            Du coup il devient faisable de reflasher le bootloader par l'usb (et mettre à jour l'eeprom bien sûr) comme je l'ai détaillé hier : flashage d'un firmware spécial qui embarque le code binaire du bootloader, le stocke en ram (ainsi que les routines d'ecriture en flash), et le flashe dans la zone bootloader
            bonsoir

            Bravo à toi pour tes recherches "puissantes" sur le flashage , on attends la suite avec hâte !!
            Merci !

            Commentaire

            • _nlc_
              Member
              • mars 2013
              • 182

              #66
              Alors la suite c'est pas pour tout de suite du coup, je suis un peu bloqué puisque pas chez moi là

              Commentaire

              • gege29
                Member
                • février 2013
                • 109

                #67
                Envoyé par _nlc_
                Alors la suite c'est pas pour tout de suite du coup, je suis un peu bloqué puisque pas chez moi là
                bonjour nlc
                je crois qu'on peut t'accorder un peu de vacance ; tu sais à la rentée il y a encore du boulot !
                tu vas éviter pas mal de dé-soudage de winbond merci encore

                Commentaire

                • _nlc_
                  Member
                  • mars 2013
                  • 182

                  #68
                  Le reverse engineering continue, côté hardware pour l'instant :

                  - La led est pilotée par le MCU, donc après flashage du firmware spécial par PSAInterfaceChecker, je pourrai l'utiliser pour afficher le status de la mise à jour de l'eeprom et du bootloader

                  - J'ai trouvé le mapping mémoire utilisé afin de pouvoir exploiter la RAM statique externe (pour y placer les données binaire du bootloader et la fonction de réecriture de la zone bootloader). Le mapping est très curieux et je ne comprends pas pourquoi. La RAM n'est pas mappée en une seule plage mémoire consécutive de 512Ko, mais 2 zones : 0x20000-->3FFFF et 0x60000-->7FFFF
                  Je vois pas bien pourquoi mais bon. Truc bizarre aussi, un bit d'adresse de la ram est connecté au A0 du MCU uniquement si la pin 55 du MCU est à 0, sinon le bit d'adresse de la ram est forcé à 1. Autrement dit le bit d'adressage A0 du MCU n'a pas d'effet sur l'adressage de la ram si la pin 55 du MCU n'est pas à 0. Je pige pas l'utilité !!

                  Commentaire

                  • Tomtom71
                    Legendary Member

                    • décembre 2012
                    • 1127

                    #69
                    rolala tu es vraiment motivé , désolé de ne rien pouvoir faire pour te soulager dans tes recherches
                    Bon courage a toi
                    et madame

                    Commentaire

                    • kalash
                      Junior Member
                      • janvier 2013
                      • 38

                      #70
                      salut les "bricolous" voila le fichier



                      qui passe vos système en 4.3.0

                      Commentaire

                      • _nlc_
                        Member
                        • mars 2013
                        • 182

                        #71
                        le lien marche pas ? Et c'est quoi, juste le dump complet en 4.3.0 ?

                        Commentaire

                        • kalash
                          Junior Member
                          • janvier 2013
                          • 38

                          #72
                          ah ??? bon ??? 10 l'on downloader sans soucis, c'est juste dernier firmware de la VCI PSA apres le 4.2.8 DB ...

                          - - - Mis à jour - - -

                          que tu va mettre dans ce fichier la "C:\APPLIC\LEXIA\MajAppCom\APPLI software pour faire la mise a jour manuelle, d'une vci en passant par "appCom"

                          voilou

                          Commentaire

                          • _nlc_
                            Member
                            • mars 2013
                            • 182

                            #73
                            Chez moi ça marche pas le lien : Download permission denied by uploader

                            Mais de toute façon c'est quoi, juste le fichier .com de la version 4.3.0 ?
                            Si oui mettre à jour les interfaces clone avec ne suffit pas forcément, d'ailleurs l'interface est mise à jour automatiquement en 4.3.0 avec diagbox de toute façon.
                            Le but du topic c'est de pouvoir changer facilement le n° de série de l'interface sans dessouder l'eeprom SPI, et par la même occasion mettre à jour le bootloader pour que la 4.3.0 fonctionne correctement et soit reconnue en XS evolution sur l'usb.

                            Commentaire

                            • kalash
                              Junior Member
                              • janvier 2013
                              • 38

                              #74
                              Envoyé par _nlc_
                              Chez moi ça marche pas le lien : Download permission denied by uploader

                              Mais de toute façon c'est quoi, juste le fichier .com de la version 4.3.0 ?
                              Si oui mettre à jour les interfaces clone avec ne suffit pas forcément, d'ailleurs l'interface est mise à jour automatiquement en 4.3.0 avec diagbox de toute façon.
                              Le but du topic c'est de pouvoir changer facilement le n° de série de l'interface sans dessouder l'eeprom SPI, et par la même occasion mettre à jour le bootloader pour que la 4.3.0 fonctionne correctement et soit reconnue en XS evolution sur l'usb.

                              salut,

                              vous cherchiez se fichier partout et maintenant vous en voulez plus ????? bon soit .... tampis autre lien :

                              Free - Envoyez vos documents

                              vous devriez vous rapprochez de pseudo TITOUN qui flash les interfaces PSA depuis plus de deux ans maintenant et qui je crois connait très bien ce sujet ou voir avec SCARY and CO qui ne sont pas manchot non plus ...


                              ou aussi plus simple d'acheter des interfaces officielles ...


                              a plus

                              Commentaire

                              • _nlc_
                                Member
                                • mars 2013
                                • 182

                                #75
                                Bonjour, il doit y avoir un malentendu !
                                Ce fichier 4.3.0 winbond me l'a déjà fait parvenir (il m'a même fourni un dump complet avec la zone bootloader en plus), et la mise à jour de l'applicatif en 4.3.0 n'est pas un problème, étant donné que ça se fait de toute façon automatiquement avec diagbox.
                                Mais certaines interfaces clone ne fonctionne pas correctement avec cette version. Car pour fonctionner correctement il faut mettre aussi à jour le bootloader de l'interface, ce qui ne peux pas se faire avec l'appli appCom ou PSAInterfaceChecker. Il faut aussi mettre à jour le n° de série de l'interface dans l'eeprom SPI, et actuellement la seule solution c'est de dessouder cette eeprom.

                                L'objectif ici (ce sur quoi je travaille), c'est de pouvoir mettre à jour le bootloader de l'interface et changer le n° de série de l'interface (dans l'eeprom SPI), sans avoir à démonter l'interface, et donc sans avoir à souder ou dessouder quoi que ce soit.

                                A+

                                Commentaire

                                Chargement...