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 :

Aide sur le décodage d'un langage et eprom


Sujet :

Embarqué

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut Aide sur le décodage d'un langage et eprom
    Bonjour à tous, amateur et pro du binaire et autres hexadecimal

    Voila je viens vers vous car cette plateforme semble concentrer pas mal d'expert.
    Je m'excuse si je n'ai pas posté dans la bonne section j'ai essayé de faire au mieux, et merci d'avance pour votre lecture

    Je vous explique brièvement mon problème, j'ai récupéré un vieil analyseur de gaz facom de type XR642. Ce type d'analyseur de gaz doit dans le cadre légal avoir un étalonnage tous les ans ( notamment pour les CT quand ils se servaient encore de ces appareils), aujourd'hui tout le monde est passé à une nouvelle génération mais il fonctionne bien et je voudrais l'utiliser à des fins perso pour mes autos anciennes.

    Pour étalonner il semble y avoir un code secret à entrer dans la machine pour débloquer le mode calibration et une fois celle ci fait le calendrier de validité doit se remettre à zéro autorisant un certain nombre de jour à venir. J'ai fait de nombreuses recherches et pris des contacts internes mais à aujourd'hui impossible de connaitre cette procédure l'appareil semble trop ancien.

    J'ai démonté l'appareil et celui ci est géré par 3 composants majeurs : 1 eprom 27C256 , 1 µC nec 78C10 et une EEProm 93c46 ( c'est elle qui contient la clé et le calendrier, j'ai trouvé une datasheet dédiée à cette application) ce qui est logique car impossible de reprogrammer une 27C256 avec un clavier il faudrait la passer aux UV etc...

    Du coup à force de fouiner j'ai trouvé quelques choses : en temps normal l'appareil nécessite un préchauffage de 15min, mais j'ai trouvé une procédure raccourci, en maintenant une des touches en facade appuyée et en allumant-éteignant et allumant l'appareil à nouveau le préchauffage passe à 2min.

    J'ai donc branché mon oscillo sur la broche Chip Select du 93c46 ( celle contenant la clé) : un canal sur le chip select et un canal sur le data input-output ( ils sont reliés ensemble)
    Résultat sans la procédure raccourcie, pas de signal sur le Chip select, l'appareil démarre
    En activant la procédure raccourcie je trouve un signal sur le chip select et un échange de données ( il semble bien que ce soit le départ de la procédure de calibration...mais il me manque une étape)
    sur le graph( Chip select en jaune et data output en bleu)

    J'ai donc branché ensuite un canal sur le serial clock, et un sur data input/output. ( clock en bleu et signal input/output en jaune)

    Mes questions sont les suivantes :

    Est ce que ce protocole ressemble à du RS232 ( car l'appareil à une prise externe RS232 ) ? Le microproc peut il gérer plusieurs langage ?

    J'ai commandé un analyseur logique afin d'avoir une lecture plus aisée, j'ai entendu dire que l'analyseur donnait des adresses différentes des adresses physique ?! Est ce que quelqu'un pourrait m'expliquer ?

    Je compte dessouder la 93c46 pensez vous qu'il sera possible de desassembler cette petite eeprom afin de trouver la manip ? ou le code ?
    Images attachées Images attachées   

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir Benji et bienvenu sur DVP

    Si je comprends bien tu veux débloquer l’appareil qui se verrouille un certain temps après la dernière calibration? (Je suis un peu surpris car dans mon domaine, les appareils restent utilisable après échéance de leur calibration.)

    C'est théoriquement faisable mais pratiquement quasi impossible car cela nécessite un travail très long et qui doit être absolument rigoureux. Une erreur passera généralement inaperçue jusqu'à la fin quand on se rend compte que l'on ne comprend rien.

    Lire uniquement l'EEPROM c'est facile, mais cela restera du Chinois faute de savoir ce que les données veulent dire. A ce sujet voir ce topic: Modifier eeprom 24C32 qui reste valable sur le principe même si cela est pour une autre application.

    Sauf que ici tu as de la chance car c'est un ancien micro sans mémoire interne pour le code. Il est donc théoriquement possible de lire l'EPROM, de désassembler le code au moyen de la doc du microcontrôleur pour l’analyser, et in fine en déduire la signification et l'encodage de chaque adresse de l'EEPROM. Le problème reste que comprendre un code désassemblé c'est dur, car il n'y a que les instructions et les adresses, mais aucun label ou nom de variable (qui disparaissent à la compilation) et que les parties "code" et "données" sont généralement joyeusement mélangée et sauf désassembleur avancé, c'est à toi de les séparer.

    La communication avec l'EEPROM c'est du SPI, et vu que le micro n'a pas ce périphérique intégré c'est probablement une implémentation software du protocole (qui reste une chose finalement assez simple). Pour l'analyser il faut 3 à 4 canaux de mesure (le CS pouvant être éventuellement ignoré si il y a qu'un périph de branché sur le SPI). Avec une bonne analyse tu pourras comprendre quelles sont les adresses lue dans l'EEPROM au démarrage et les valeurs retournées, probablement la date d'expiration, mais également les données de calibrations. Reste que sans la compréhension du programme, cela sera quasi impossible de comprendre quelle donnée signifie quoi, c'est le problème de la lecture seule du contenu de cette EEPROM indiqué plus haut.

    Rien ne t’empêche de le tenter mais ne compte pas réussir sans plusieurs dizaines d'heures de travail et à condition que tu sois à l'aise avec la programmation de micro en assembleur.

    Bonne soirée

    Delias

  3. #3
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    A partir de la page 23 du doc https://4donline.ihs.com/images/VipM...CCS05084-1.pdf (ou page 25 de ton navigateur) tu as tout le codage binaire du jeu d'instructions du micro et le but de la manipe c'est de décoder les bits de l'EEPROM pour retrouver le code assembleur et ensuite espérer comprendre ce tout ça ça fait.

    Moi aussi je dirai que c'est quasi impossible sauf a maîtriser sur le bout des doigts le micro.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Tout d'abord merci à vous deux d'avoir pris le temps de répondre

    Alors pour le protocole je trouve tout de même un truc bizarre j'ai regardé à l'oscillo le CS sur le canal 1 et l'horloge en 2, et j'ai 26 top d'horloge sur une trame CS ?! ça fait pas un peu beaucoup ?

    Je pense qu'à l'allumage une instruction doit être donnée et elle est comparée avec ce qu'attends le 93c46, le souci c'est que les canaux data in/out sont liés donc impossible de savoir qui envoi qui recoit, j'ai vu qu'en SPI y'a une histoire de maître et esclave peut être que ça permet de différencier ça.

    J'ai également trouver ce lien j'ai pas trop compris si c'était sur l'assemblage ou le desassemblage du 93c46
    https://www.pjrc.com/tech/8051/serial-eeprom.html

    Avec un analyseur logique je vais avoir les adresses physiques ou autres ? j'arrive pas à faire la distinction ( faut m'excuser c'est pas mon domaine de prédilection) même si j'ai passé une licence radioamateur y'a maintenant 23 ans Du coup l'analyseur logique va me traduire les données échangées et j'aurai à retrouver celle ci par les adresses dans l eeprom ?

    Par contre j'ai trouvé un doc très interessant sur l'utilisation du 93c46 comme une "serrure" je vous joins le fichier, l'auteur parle du fait que la clé soit entrée en une fois pour être comparé. Par rapport à cette article je pense avoir le montage qui nécessite 5 "chiffres" ou " clics en facade"

    L'eeprom doit contenir à mon sens : le code, la date d'expiration, et la calibration ( mais la calibration semble être à faire avec des résistances variables, il faut certainement une fois le 0 réglé validé et l'eprom prends cette valeur comme zéro)

    Question bête pour desassembler il faut créer un programme qui décompile le fichier ?

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir

    Citation Envoyé par Vincent PETIT Voir le message
    ... c'est de décoder les bits de l'EEPROM pour retrouver le code assembleur ...
    De l'EPROM pas de l'EEPROM,

    L'analyseur logique va traduire la séquence du SPI en sa représentation binaire, décimal et/ou hexa. Mais il ne fera rien de plus. Ensuite à l'aide de la datascheet de l'EEPROM, il te faudra interpréter ce que cela signifie, et isoler entre autre les parties "commandes", "adresses" et "données".

    Le SPI peut aller bien au delà de 8 clocks d'affilée, je dirais même que sauf quelques cas triviaux c'est la règle! L'activation du CS enclenche une séquence qui commence généralement par un ordre, puis une adresse et des données, puis la séquence peut souvent être poursuivie pour parcourir plusieurs adresses au moyen d'une incrémentation automatique. Tout cela et la façon de faire de cette EEPROM est décrit dans son datascheet. Ce qui suit l'ordre dépend de ce dernier, certains n'auront pas d'adresse ou pas de donnée ou aucun des deux, mais ce n'est, en général, pas la majorité de l'utilisation.
    Le fait que MISO et MOSI sont couplé n'est pas impossible (mais ce n'est pas ce que je ferais). Quand à l'analyse, en déroulant les trames et en se référant à la datascheet de l'EEPROM on peut très bien déterminer quand c'est le micro qui commande cette ligne et quand cela passe à l'EEPROM. (Puisque c'est toujours le micro qui écrira en premier!)

    Le lien que tu donnes n'est en rien en relation avec l'assemblage (on parle plutôt de compilation de l'assembleur) ou du désassemblage du code du micro. C'est une bibliothèque pour accéder à une mémoire SPI pour un micro 8051 (qui est l'un des plus rependu de son époque et qui a duré longtemps).

    Le programme qui tourne dans le microcontrôleur est stocké dans l'EPROM (avec un seul E ) cette mémoire du type à accès parallèle peut-être lue relativement facilement avec un appareil adéquat, ou avec un programme tout con sur un Arduino. Sauf que cette lecture ne retournera qu'une série de chiffres sur 8 ou 16 bits et qui pourront être visualisés par exemple dans un éditeur hexadécimal. De cette série de chiffre et de la doc du micro que Vincent t'a indiqué, on peut en déduire les instructions exécutées par le micro et traduire cette série de chiffre en un code en assembleur. C'est cette opération que l'on appelle le désassemblage. La difficulté c'est de savoir pour chaque adresse mémoire si c'est une instruction (à un moment ou un autre le micro prendra cette valeur comme un instruction à exécuter) ou une donnée (c'est une autre instruction qui viendra lire cette valeur pour travailler dessus).

    Je ne suis pas certain que tu as bien compris. Le désassemblage doit être fait sur le contenu de l'EPROM pour analyser le programme du micro et cette étape énorme permettra ensuite de savoir ce que signifie chaque donnée stockée dans l'EEPROM.

    Mais bon au vu de ton niveau, je pourrais aussi simplement dire que c'est impossible.

    Edit: Je me demande si tu n'aurais pas meilleur temps d'intervenir sur le module horloge / calendrier, pour tromper le micro en lui envoyant toujours la même date. Par exemple en intercalant un petit micro contrôleur sur la ligne de communication pour modifier les données qui transitent. Bon ce n'est pas garanti que cela fonctionne à tout les coups, cela va dépendre des vérifications de plausibilité de la date qui sont effectuées par le programme du micro.

    Bonne soirée

    Delias

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Ouais je vois la démarche

    Je ne pense pas y arriver mais au moins je vais essayer et j'apprendrais quelques choses

    Décoder les trames et essayer de comprendre l'instruction avec la datasheet jusque là je suis, c'est quand on parle de désassemblage que ça devient nébuleux pour moi

    Je vais déjà essayer de choper les trames voir ce qui est demandé à l'eprom ( j'ai mis 2e car je pensais a electrical erasable prom ) Une fois que j'aurai peut être vu les instructions demandés je m'interesserais au reste Je suis pas pressé et c'est toujours bon d'apprendre ça me servira toujours pour les cartographies moteurs un jour

    J'attends mon analyseur logique et je vais essayer de déchiffrer le début, le seul avantage c'est qu'il semble pas y avoir beaucoup d'instructions échangées d'apres l'oscillo c'est surtout au lancement de l'appareil y'a quelques trames

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonsoir

    Non tu as juste, la 93C46 est bien une EEPROM, c'est la 27C256 qui est une EPROM. Je corrigeais une erreur de Vincent (ou alors je n'ai pas compris ce qu'il voulait dire )
    Sauf que la 93C46 c'est juste des données, et sans information sur leur signification c'est quasi impossible de savoir ce que les données brutes signifient (exception des gros coups de chance quand on sait ce que l'on attend et que l'on trouve une représentation binaire qui correspond).
    Le désassemblage devrait être réalisé sur le code de la 27C256 pour comprendre le programme et donc savoir ce que les données de la 93C46 signifient (c'est en comprenant l'utilisation des données que l'on comprend comment elles sont stockées).

    Bonne découverte

    Delias

  8. #8
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Citation Envoyé par Delias Voir le message
    Edit: Je me demande si tu n'aurais pas meilleur temps d'intervenir sur le module horloge / calendrier, pour tromper le micro en lui envoyant toujours la même date. Par exemple en intercalant un petit micro contrôleur sur la ligne de communication pour modifier les données qui transitent. Bon ce n'est pas garanti que cela fonctionne à tout les coups, cela va dépendre des vérifications de plausibilité de la date qui sont effectuées par le programme du micro.
    +1 C'est une très bonne idée !

    Citation Envoyé par Delias Voir le message
    Je corrigeais une erreur de Vincent (ou alors je n'ai pas compris ce qu'il voulait dire )
    En effet je m'étais trompé, j'ai bien mis un E en trop (celui de electrically) merci de m'avoir corrigé

    Citation Envoyé par Delias Voir le message
    Le désassemblage devrait être réalisé sur le code de la 27C256 pour comprendre le programme et donc savoir ce que les données de la 93C46 signifient (c'est en comprenant l'utilisation des données que l'on comprend comment elles sont stockées).
    Si tu veux un aperçu, dans ce sujet https://www.developpez.net/forums/d1.../#post10356707 j'ai désassemblé un programme de 35 lignes, sans les commentaires, écrit en langage C. C'est un cas très très simple car d'une part c'est un très petit programme et d'autre part j'ai accès à sa version compréhensible dans le langage C. Tu as vu la purée que renvoie le désassemblage malgré ça

    Dans ton cas lorsque tu vas faire un dump mémoire de l'EPROM tu vas probablement te retrouver avec un fichier de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    :100000000C9434000C944F000C944F000C944F004F
    :100010000C944F000C944F000C944F000C944F0024
    :100020000C944F000C944F000C944F000C944F0014
    :100030000C944F000C944F000C944F000C944F0004
    :100040000C944F000C944F000C944F000C944F00F4
    :100050000C944F000C944F000C944F000C944F00E4
    :100060000C944F000C944F0011241FBECFEFD4E02E
    :10007000DEBFCDBF11E0A0E0B1E0E8EFF0E002C0EC
    :1000800005900D92A030B107D9F711E0A0E0B1E0E2
    :1000900001C01D92A030B107E1F70C9467000C94E9
    :1000A00000008FEF84B987B98EEF8AB9089501C037
    :1000B0000197009759F020E00000000000000000C8
    :1000C000000000002F5F2A3599F3F6CF08958FEFD7
    :1000D00084B987B98EEF8AB98FEF88B985B98BB9A2
    :1000E00084EF91E00E94570018B815B81BB884EF50
    :0800F00091E00E945700F0CFDF
    :00000001FF
    Tu vas devoir le dépouiller et l'examiner pour le retranscrire dans un assembleur aussi ignoble que ce que j'ai fait dans le sujet dont je fais référence juste avant (celui où tu peux voir un aperçu). Ce boulot là c'est équivalent à tondre la pelouse d'un stade de foot avec un coupe ongle ! Mais c'est possible.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Ouais je commence à vraiment saisir le truc, je me disais aussi que dans les 93c46 y'avait pas de programme en fait ils ont mis cet eeprom en place juste pour permettre à l'opérateur de pouvoir
    remettre le truc à 0 directement en garage sans se balader avec un truc à UV. Ca semble logique.

    Si je comprends le cheminement le microcontrolleur interroge le programme de la 27c256 et l'instruction dans le progarmme lui demande de verifier la donnée brute dans la 93c46, quand la valeur est retournée ( calendrier hors date), il compare la valeur retournée avec le programme et execute l'instruction liée à savoir ==> affichage erreur

    Il faut donc deassembler le progammer ( si possible ) et modifier cette instruction ou trompé comme tu le dis le retour d'instruction du 93c46 pour leurrer le programme.

    Je vais deja extraire dès que j'aurai le programmateur les deux fichiers dump, et voir dès que l'analyseur sera là si je peux tirer quelques trucs de cette petite puce

    En tous les cas c'est très instructifs d'échanger avec vous.

    J'attends un emulateur d'eprom 27c256 peut être que c'est possible en y allant à taton après avoir "identifié" quelques brides d'essayer de les modifier à la volée enfin c'est une idée

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai extrait le fichier Dump de la 27c256

    Alors y'a la moitié de l'eprom vide je dirai et en regardant j'ai vu que le programme semblait se repeter complètement à l'exception d'une chose, dans la premiere version du programme j'ai une partie clair en francais et dans la seconde j'ai le même progamme mais la partie claire est en néerlandais ( ce qui est cohérent puisque le facom xr642 et le banc Sun MGA1200 qui est néerlandais sont frères )

    J'ai donc coupé le fichier en 2 hexadecimaux sauf la partie clair pour comparer, j'ai fait ça avec flexhex et les 2 fichiers sont identiques

    Les parties en claires sont je pense le texte à imprimer pour donner le compte rendu au client avec le type appareil et les relevés

    Donc au final le programme occuperait 30% au pire de l'eprom

    Je vous upload ce à quoi ressemble la partie en clair ( ouvert sur note pad on voit bien la structure ) et le fichier total en bin
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Après quelques recherches je vois parlé de langage z80 ? Voici des extraits trouvé sur le net où on parle de ce proc et du z80
    J'ai trouvé un desassembleur mais j'ai aucune idée d'un si c'est ce langage, et aucune idée de ce que ça sort....
    Nom : 2018-07-11 23_13_04-Z80 Requests for Documents.png
Affichages : 2336
Taille : 26,0 Ko
    Nom : 2018-07-11 23_16_38-Akai XR10.png
Affichages : 2295
Taille : 6,7 Ko
    Nom : 2018-07-11 23_51_22-MAMEWorld Forums - News - Bonze Adventure proto.png
Affichages : 2298
Taille : 1,7 Ko
    Nom : 2018-07-12 00_11_26-Capacity meter in City-El _ Located under the seat in the Se… _ Flickr.png
Affichages : 2295
Taille : 4,4 Ko

    Voila ce que ça ressort.....
    Nom : 37020703_10156518965314483_6075033005976453120_n (1).png
Affichages : 2439
Taille : 16,3 Ko

  12. #12
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Il semble que tu as réussi a retranscrire en langage assembleur les données bruts de l'EPROM.

    - La première étape est franchie mais malheureusement c'était celle là la plus facile (voir mon message où je montre comment faire avec un micro Atmel)

    - La seconde étape est la plus complexe et de très très très très loin, car le but est d'arriver a comprendre ce que ça fait
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    en fait j'ai trouvé autre chose de peut etre plus interessant un desassembleur pour le 78C10 notamment sur ce lien
    http://www.cpcwiki.eu/index.php/UPD7810/uPD7811

    le programme s'appelle unidasm je l'a executé sous Dos ( ça m'a rappellé pas mal de truc... quand on compressait encore sous Arj par exemple )

    et du coup je me retrouve avec un autre desassemblage mais je pense que celui ci serait le bon parce qu'il est dédié au proc', j'ai vu un autre exemple d'un collègue radioamateur US qui a fait ca sur un firmware de transceiver kenwood géré par ce proc et une ROM externe

    Nom : 2018-07-12 01_08_24-Administrateur _ Invite de commandes.png
Affichages : 2408
Taille : 19,4 Ko
    Nom : 2018-07-12 01_06_18-1 - Bloc-notes.png
Affichages : 2352
Taille : 15,4 Ko

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    J'ai regardé ton sujet sur le deassemblage mais je vais le relire attentivement demain, j'essaye de dégrossir si je peux au max ainis je comprendrais sans doute mieux ton sujet

    Il me reste encore a lire le 93c46 ça sera sans doute instructif

  15. #15
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par Benjilamalice3 Voir le message
    le programme s'appelle unidasm je l'a executé sous Dos ( ça m'a rappellé pas mal de truc... quand on compressait encore sous Arj par exemple )
    Je doute que tu l'as exécuté sur MS-DOS , la ligne de command ne veut pas dire DOS , de plus les programme en ligne de commande c'est toujours très utilisé notamment sur Linux.
    Pour le désassemblage , il faut quand même bien connaître le point d'entrée du programme , parce que si tu décode des data ça peut être problématique

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Ouais enfin le but c'est pas de jouer à celui qui utilisent le plus "old" ou qui fait mieux que les autres
    Dos je connais ayant commencé sur 8086 avec un disque dur de 20Mo héhé

    Le collègue radioamateur m'a dit qu il a déjà deassemblé un programme de ce type m'a dit que généralement le point d'entrée est 0x0000
    Pour le moment j'en suis là

  17. #17
    Membre actif Avatar de cedd70
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Mars 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 154
    Points : 263
    Points
    263
    Par défaut
    Salut,

    Pas de chance j'ai développé des produits pour eux mais celui la n'en fait pas partie.
    Bonne chance car ça sera surement infaisable.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Merci cedd ça me donne espoir

    Par contre t'aurais pas un contact qui saurais à tout hasard

    J'ai pensé à autre chose j'ai vu dans le programme desassemblé que les instructions sont délimitées entre les fonctions "RET" pour return. Je me posais la question car j'ai un émulateur d'eprom donc je peux modifier ça quasiment en direct, si en rentrant bloc après bloc ( en respectant les sauts éventuels JMP) si c'était une bonne idée pour identifier le bloc voulu ?

  19. #19
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 187
    Points : 11 568
    Points
    11 568
    Par défaut
    Salut,
    C'est en effet une des nombreuses identifications que tu dois faire.

    - Trouver où commence le programme.
    - Trouver où est la pile et comprendre son pointeur.
    - Comprendre les modes d'adressage du micro pour comprendre les instructions de chargement.
    - Trouver les registres des périphériques du micro.
    - Une instruction CALL doit finir par un RET au quel cas c'est une fonction. Si il finit par RETI c'est une fonction d'interruption et elle se trouve dans un endroit bien précis de la mémoire, qu'on appelle vecteur d'intruption.
    -Une fonction doit contenir des PUSH et des POP qui sont des empilements et des dépilements.
    - Il faut comprendre tous les JUMP car les boucles et tests (le if en langage C) peut être fait comme ça.
    - .....

    Je ne peux pas lister tous les cas de figure tellement il y en a et je ne pourrai pas t'assurer de ne rien oublier.

    Même si tu arrives au bout de ce travail long et fastidieux, donc après avoir appris par coeur le micro + son assembleur, il faudra faire le même boulot pour le hardware car évidemment ils sont liés. Certaines instructions seront pour initialiser et utiliser les ports d'entrées/sorties et périphériques du micro.

    Je donne un exemple, imagine que tu vois une série de 5 instructions NOP. Il y a toutes les chances qu'il s'agisse d'une tempo mais la question qui restera peut sans réponse c'est pourquoi une tempo ? Est ce parce que le hard le necessite ? Est ce la tempo d'anti rebonds d'un interrupteur ? Est ce une tempo qui se trouve entre deux acquisitions du convertisseur analogique numérique et qu'elle sert à faire un calcul ? Une dérivée ? Une intégrale ? C'est peut être juste une tempo entre deux affichages sur l'écran ?

    Même en comprenant ce que l'assembleur fait ça ne répondra pas forcément à la question, pourquoi il le fait.

    C'est pour cette raison que nous beaucoup à te dire que c'est impossible.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Ouais commence à bien saisir l'ampleur de la tâche, cependant seule la partie "déclenchement de la calibration" en vrai m'intéresse, et ça doit se trouver je "pense" dans
    un bloc d'instruction.

    Ce calibrage doit être lancé à mon avis au départ de l'appareil, donc logiquement dans le début ou peut être le 1er tiers du programme ( c'est une idée )

    Après avoir un peu réfléchit à tout ça je pense que dans le programme y'a pas mal de bloc d'instructions auquel je ne souhaite pas toucher, je vais en citer quelques fonctions de l'appareil qui à mon avis sont gérés par ces blocs d'instructions :

    - démarrage de l'appareil ==> affichage version firmware et référence appareil
    - démarrage du préchauffage
    - mesure des différents gaz ( Co² etc...)
    - impression des comptes rendu
    - mémorisation
    - bascule moteur 2 temps / 4 temps
    - controle de la température d'huile
    - controle du nombre de tour moteur etc..
    etc.. etc..

    J'ai remarqué au lancement de l'appareil cette affichage qui dure 1sec 04 2010 qui est justement la date d'étalonnage de l'appareil... avant cette affichage là il y a sans doute ( liste non exhaustive bien sur) :

    - démarrage de l'appareil
    - mise en route du décompte de préchauffage (2 min en cycle court au lieu de 15 ... à force de bidouiller j'ai quand même trouvé ça )
    - calibration automatique


    et entre tout ça je pense qu'il y a certainement un bloc d'instruction qui "dit" si tel combinaison de touche etc... aller au sous programme tant pour la calibration

    En tous les cas MERCI DES CES ECHANGES, j'ai appris beaucoup de chose en quelques jours sur tout ça

    Nom : 2018-07-13 14_03_57-Lecteur Windows Media.png
Affichages : 2375
Taille : 558,5 Ko

Discussions similaires

  1. [Débutant] Demande d'aide sur le choix d'un langage approprié !
    Par walid6002 dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 09/08/2014, 19h36
  2. Langage C : fichier d'aide sur les fonctions
    Par larnicebafteur dans le forum C
    Réponses: 6
    Dernier message: 09/04/2007, 15h01
  3. [NetBeans 5][Linux] F1 != Aide sur le langage
    Par Giovanny Temgoua dans le forum NetBeans
    Réponses: 9
    Dernier message: 14/03/2007, 18h22
  4. Aide sur choix de langage de programmation pour PC et Mac
    Par benouille69 dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 11/11/2006, 18h30
  5. [WinDev 10] Aide sur W langage
    Par Lenalyon dans le forum WinDev
    Réponses: 6
    Dernier message: 08/11/2006, 09h55

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