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
  • Neoland
    Junior Member
    • mars 2013
    • 26

    #46
    @winbond

    Bonsoir,
    pas compliqué pour l'appli.com en 4.3.0 :
    C:\AWRoot\bin\launcher

    tcho

    Commentaire

    • Tomtom71
      Legendary Member

      • décembre 2012
      • 1127

      #47
      Envoyé par Neoland
      @winbond

      Bonsoir,
      pas compliqué pour l'appli.com en 4.3.0 :
      C:\AWRoot\bin\launcher



      tcho
      Je crois pas que ca soit ce qu'il cherche :s

      Commentaire

      • jarod54190
        Member
        • janvier 2013
        • 142

        #48
        sisi, c'est ce que nlc cherchait

        Commentaire

        • Tomtom71
          Legendary Member

          • décembre 2012
          • 1127

          #49
          ha ca me paraissait trop simple car même moi javais trouvé ce dossier ( par hasard ) ^^

          Commentaire

          • Neoland
            Junior Member
            • mars 2013
            • 26

            #50
            Winbon45 dit :Moi je cherche coté diagbox "logiciel" comment fait-il pour flasher nos interfaces sans passer par interface checker !!
            De plus ou est rangé le firmware 4.3.0 dans ce logiciel!


            Donc j'ai répondu à l'attente

            a+

            Commentaire

            • Tomtom71
              Legendary Member

              • décembre 2012
              • 1127

              #51
              Pas de souci l'ami mea culpa

              Commentaire

              • Winbond45
                Junior Member
                • février 2013
                • 86

                #52
                Bonsoir Neoland!
                Non c'est pas ce que je cherche mais merci quand même !
                Ca je savais qu'il était la moi ce que je cherche c'est l'attribut et le fichier .dll qui l'execute au démarrage mais je crois avoir touvé ma piste !

                Commentaire

                • _nlc_
                  Member
                  • mars 2013
                  • 182

                  #53
                  Bonsoir à tous,

                  Dis Winbond les dump tu les fais avec flashkit29 ? Il y a une option lecture et enregistrement du binaire lu ?

                  Sinon moi comme mon interface est HS en attendant que je la reflashe par le connecteur 12 pins (ça permettra de valider le fait que les interfaces sans ce connecteur peuvent quand même se reflasher d'ailleurs), je vais essayer de trouver le point d'entrée de l'application.
                  Car j'ai fouillé un peu dans les dossiers et j'ai trouvé les logs de mes flash d'hier :

                  D'abord le reflash en 4.2.2, qui a bien fonctionné :

                  Today's date and time: Mon Mar 18 22:10:52 2013


                  Init_Library
                  Path majcom.ini : C:\APPLIC\LEXIA\MajAppCom\majcom.ini
                  Path Gestcomm : \APPLIC\COMMON\gestcomm.dll
                  Status = 1
                  Exit Init_Library

                  Init_Com
                  _CreateRouter OK
                  _InitialiseCommBoard_Exp Report com = 3 - Report general = 0
                  Exit Init_Com
                  Exit Init_Module_COM
                  -----------------------------------------------------

                  GetVersionComposant_COM
                  _ExecuteCommand GetVersionComposant_COM Report com = 1 - Report general = 0
                  Firmware Version : APPLI_XS_Fuji_ P106138A V4.2.2 @ACTIA 09.04.09
                  Exit GetVersionComposant_COM
                  -----------------------------------------------------

                  GetReferenceBoard_COM
                  Card Reference 963830 B/
                  _BoardGetInfo Report com = 1 - Report general = 0
                  Exit GetReferenceBoard_COM
                  -----------------------------------------------------

                  TelechargeComposant_COM
                  Path Download : C:\APPLIC\LEXIA\MajAppCom\APPLI software\APPLI 4.2.2.com
                  Version à télécharger : APPLI_XS_Fuji_ P106138A V4.2.2 @ACTIA 09.04.09

                  Reset_Board
                  _ExecuteCommand Reset_Board Report com = 12 - Report general = 104
                  Exit Reset_Board
                  _ExecuteCommand TelechargeComposant_COM Report com = 3 - Report general = 0

                  Saut_Appli
                  _ExecuteCommand Saut_Appli Report com = 3 - Report general = 0
                  Exit Saut_Appli

                  Reset_Board
                  _ExecuteCommand Reset_Board Report com = 3 - Report general = 0
                  Exit Reset_Board
                  Exit TelechargeComposant_COM
                  --> On voit la commande de telechargement qui est lancée (_ExecuteCommand TelechargeComposant_COM), puis ensuite il y a une demande d’exécution de l'application (_ExecuteCommand Saut_Appli), puis un reset pour revenir au bootloader.
                  Donc après le téléchargement le programme de mise à jour demande à l'interface de lancer l'application, qui doit indiquer qu'elle démarre du coup le programme déduit que le téléchargement s'est bien déroulé et il affiche OK.

                  Au niveau du flash de mon firmware fake ça a donné ça :

                  Today's date and time: Mon Mar 18 22:12:03 2013


                  Init_Library
                  Path majcom.ini : C:\APPLIC\LEXIA\MajAppCom\majcom.ini
                  Path Gestcomm : \APPLIC\COMMON\gestcomm.dll
                  Status = 1
                  Exit Init_Library

                  Init_Com
                  _CreateRouter OK
                  _InitialiseCommBoard_Exp Report com = 3 - Report general = 0
                  Exit Init_Com
                  Exit Init_Module_COM
                  -----------------------------------------------------

                  GetVersionComposant_COM
                  _ExecuteCommand GetVersionComposant_COM Report com = 1 - Report general = 0
                  Firmware Version : APPLI_XS_Fuji_ P106138A V4.2.2 @ACTIA 09.04.09
                  Exit GetVersionComposant_COM
                  -----------------------------------------------------

                  GetReferenceBoard_COM
                  Card Reference 963830 B/
                  _BoardGetInfo Report com = 1 - Report general = 0
                  Exit GetReferenceBoard_COM
                  -----------------------------------------------------

                  TelechargeComposant_COM
                  Path Download : Z:\lexia_firmwares\fake_firmware.com
                  Version à télécharger : APPLI_FAKE_NLC P123456A V1.0.0 @TOTO 18.03.13

                  Reset_Board
                  _ExecuteCommand Reset_Board Report com = 12 - Report general = 104
                  Exit Reset_Board
                  _ExecuteCommand TelechargeComposant_COM Report com = 3 - Report general = 0

                  Saut_Appli
                  _ExecuteCommand Saut_Appli Report com = 30 - Report general = 104
                  Exit Saut_Appli
                  Exit TelechargeComposant_COM
                  --> Donc ça foire bien au niveau du lancement de l'application, le code d'erreur du report général est à 104 alors qu'il est à 0 sur le flash précédent.

                  Faut que je trouve le point d'entrée de l'application maintenant...

                  Commentaire

                  • rojhat
                    Super Member
                    • février 2013
                    • 579

                    #54
                    En attendant que tous le monde ce trouve une alternative moi je dit y a pas mieux que la version winbond du flashage , simple ( pas trop) et efficasse apres je pense que notre amis winbond45 va trouvé j'ai vue la qualité de son travail il ma renvoyé mon interface les soudure son nickel et aucun probleme de driver ou de connection merci l'amis .

                    Commentaire

                    • _nlc_
                      Member
                      • mars 2013
                      • 182

                      #55
                      Oui le flashage du MCU est une chose, après par contre le dessoudage/ressoudage de l'eeprom pour changer le n° de série en est une autre, c'est pas à la portée de tout le monde. C'est donc l'objectif de ce topic, changer le n° de série dans l'eeprom sans dessouder l'eeprom.
                      En fait il y a plusieurs solutions, dans l'ordre de difficulté de la plus chiante pour l'utilisateur à la plus simple :

                      1) Démonter l'interface, flasher dans le MCU par le connecteur 12 pins le firmware spécial que je vais écrire et qui va mettre à jour le n° de série de l'eeprom sans la dessouder. Puis reflasher un firmware officiel. Cette solution ne peut que marcher, c'est la plus simple en terme de développement et de temps à passer. Par contre, autant le démontage de 4 vis c'est facile, autant ce qui peut devenir plus compliqué pour les néophytes c'est de fabriquer et mettre au point l'interface de programmation, voire de souder le connecteur 12 pins qui est manquant sur certaines interface lexia (dont la mienne par exemple)

                      2) Ne pas démonter l'interface, flasher avec le soft PSAInterfaceChecker mon firmware spécial qui va mettre à jour le n° de série de l'eeprom sans la dessouder. Puis reflasher avec le soft PSAInterfaceChecker un firmware original. C'est sur cette solution que je travaille en ce moment car c'est vraiment ce qui simplifierait le plus la vie à tout le monde, même pas besoin de démonter l'interface lexia !! Cette solution est bien partie, on a vu qu'on peut flasher un firmware maison sans problème dans l'interface lexia. Me reste à trouver le point d'entrée de l'application, développer le firmware spécial, et être sûr qu'ensuite on puisse à nouveau flasher un firmware officiel par PSAInterfaceChecker.

                      3) Utiliser un soft PC (à développer) qui ouvre directement le port USB vers l'interface lexia et exploite le même jeu de commande que les soft PSA pour communiquer avec le bootloader de l'interface, et envoyer des commandes d'écritures vers l'eeprom. Car oui, en fait on peut faire ça ! Le bootloader gère des commandes de lecture/écriture de l'eeprom....
                      Mais là c'est un gros travail, je regarderai ça dans un second temps

                      Commentaire

                      • mecano57
                        Legendary Member

                        • septembre 2012
                        • 2604

                        #56
                        Bonsoir

                        moi j'ai remarquer qu'elle que chose sauf que s'était dans la version 6.1 de diagbox je n'avais pas besoin de changer le fiirmwar jusque qu'a la version 6.05

                        je sais pas si il y a qu'elle que chose a voir le firmwar changer après la version 6.05


                        cordialement
                        jean-claude

                        Commentaire

                        • _nlc_
                          Member
                          • mars 2013
                          • 182

                          #57
                          Je ne sais pas j'ai pas encore diagbox d'installé j'ai pas pu faire d'essais.

                          Mais en tout cas, je pense avoir compris quelque chose, et qui explique pourquoi changer le n° de série dans l'eeprom ne suffit pas et qu'il faut aussi mettre à jour le MCU.
                          Ce qui m'a mis la puce à l'oreille, c'est le résultat du flash d'hier de mon firmware fake dans l'interface. Chez windbond ça a marché et sans aucun souci il peut reprendre la main pour reflasher un firmware officiel derrière, alors qu'il y avait bien mon firware fake dedans. Et chez moi, foirage total, mon interface est cuite, impossible de reprendre la main dessus.

                          La seule possibilité c'est que mon interface initialement en 4.2.2 n'avait pas le même bootloader que l'interface de winbond. Ton interface windbond tu l'as déjà flashé avec un dump complet d'interface originale en 4.3.0, donc avec un bootloader plus récent. Ca explique pas mal de chose :

                          - Que ton interface est capable de reprendre la main après le chargement d'un firmware fake
                          - Que les interfaces sont reconnues au niveau des périphériques USB de 2 façons différentes
                          - Qu'il faille absolument aussi flasher le MCU avec un dump complet de 4.3.0 en plus de changer le n° de série dans l'eeprom, car pour fonctionner avec le dernier diagbox il doit falloir absolument le bootloader récent qui fait reconnaitre l'interface en xs evolution au niveau des périphériques USB. Et pour mettre à jour le bootloader, pas le choix, il faut reflasher par le connecteur 12 pins.

                          Conclusion :

                          Vu qu'il faut de toute façon impérativement reflasher le MCU par le connecteur 12 pins afin de mettre à jour le bootloader, je peux me concentrer sur la solution 1 exposée ci-dessus, qui est la plus simple d'ailleurs donc c'est pas plus mal
                          Plus besoin de trouver le point d'entrée, je peux juste développer un firmware standard qui ne nécessite pas d'être appelé par le boot loader. Ce firmware met à jour le n° de série de l'eeprom et basta. Après reflash par le connecteur 12 pins d'un firmware 4.3.0 pour avoir le dernier bootloader et le dernier firmware et c'est bon.

                          Ca n'évite pas le démontage de l'interface, l'éventuelle soudure d'un connecteur 12 points, et la réalisation de l'interface de programmation, mais ça évite quand même le déssoudage/ressoudage de l'eeprom ainsi que l'achat ou la réalisation de l'interface de programmation de l'eeprom, c'est déjà pas mal !!

                          Après j'ai bien une autre idée mais on verra plus tard il me faut analyser plus en détail le hardware de l'interface. Car le MCU est capable de placer du code dans la ram externe et de l'executer.
                          Du coup il y aurait la possibilité de :
                          - flasher avec PSAInterfaceChecker un firmware spécial dans l'interface.
                          - Le boot loader lance ce firmware spécial (du coup toujours le point d'entrée à trouver)
                          - Il met à jour le n° de série dans l'eeprom
                          - Il copie en ram externe les données binaires du dernier boot loader, et le code nécessaire pour programmer la flash du MCU
                          - Après coupure des interruptions, il jump sur la suite du programme en ram externe, qui efface la zone bootloader en flash et la remet à jour....

                          Commentaire

                          • Tomtom71
                            Legendary Member

                            • décembre 2012
                            • 1127

                            #58
                            Ce mec est fou As tu oublié que tu étais en vacances ?!?
                            En tout cas je suis ce post avec grand intéret
                            Hâte de voir sur quoi il va déboucher !!!
                            Bonne continuation et courage pour Madame

                            Commentaire

                            • saibox
                              Member
                              • février 2013
                              • 104

                              #59
                              Ce mec est fou As tu oublié que tu étais en vacances ?!?
                              Bonjour, je pensait exactement là-même chose.
                              Bravo _nlc_ !!! ta réflexion fait avancer tout le monde et c'est extrêmement instructif.
                              On sent la passion pour ce que tu fais.
                              Bonne continuation je suis impatient de voir l'avancement.

                              Commentaire

                              • _nlc_
                                Member
                                • mars 2013
                                • 182

                                #60
                                Bonsoir,

                                Oui en effet c'est la passion qui fait que je peux avoir le cerveau verrouillé sur quelque chose même pendant les vacances
                                Et puis aussi j'aime bien les casse-têtes et les défis techniques

                                Donc les avancées du jour : j'ai la confirmation de mon hypothèse d'hier, il y a bien un bootloader différent ! Pour fonctionner correctement en 4.3.0 il faut le bootloader associé qui fait reconnaitre l'interface en XS évolution au niveau de l'usb.
                                J'ai pu comparer un dump de clone chinois en 4.2.0 et le dump de l'interface fonctionnelle de winbond en 4.3.0, les bootloader sont bien différents. Sur le clone en 4.2.2 le bootloader date de 2003 !!! Et celui de la 4.3.0 de 2007....

                                Bizarre que les chinois ne se soient pas mis à jour en tout ce temps !!??

                                Commentaire

                                Chargement...