Voici un autre ancien avec des problèmes de système environnemental. La tâche consiste à développer une solution logicielle Decat.
Nous avons une unité de contrôle moteur (ECU) Mitsubishi FS6S18881B E2T88876H, qui utilise le processeur H8 avec 128 Ko de mémoire flash. Le firmware est identifié comme EZFS6S.
Ce microprocesseur a une caractéristique spécifique : lorsqu'il est chargé dans IDA Pro, l'adressage ROM ne commence pas par le début.

Chargeons le firmware dans WinOls et examinons le tableau des erreurs. Voici ce que nous avons trouvé :

Il semble que les erreurs liées au capteur d'oxygène arrière se trouvent sur la même ligne, ce qui simplifie la tâche puisque les drapeaux d'activation sont probablement dans le même octet.
Ensuite, analysons les mêmes informations dans IDA Pro et localisons les procédures nécessaires :

À travers ce processus, nous avons découvert le "masque" pour les bits d'activation qui contrôlent les deux erreurs dans notre chaîne identifiée. Ou du moins, ils devraient les contrôler !
Cependant, il y a une surprise inattendue de la part des développeurs : il semble que le DTC P0141 ne puisse pas être désactivé en utilisant cette méthode. Nous avons dû creuser plus profondément, et en conséquence, nous avons trouvé des procédures supplémentaires où les bits requis sont définis en fonction de certaines conditions. Ces drapeaux sont écrits dans la RAM et traités par les procédures uniquement lorsque cela est nécessaire. Il convient de noter que le fait d'observer la tension de l'accélérateur pendant les diagnostics ne signifie pas nécessairement que ces valeurs sont activement traitées dans le programme.
Enfin, nous avons réussi à localiser le bit spécifique dont nous avions besoin et à le désactiver. Après plusieurs jours de travail, nous avons réussi à créer l'une des variantes Decat pour ce programme.

