Originariamente Scritto da
matteosr
Non voglio frenare le speranze di qualcuno, ma quello che volete fare è quasi impossibile, e chi programma un pò ve lo può confermare.
Intanto non soffermatevi su quello che c'è nella eeprom, ma su quello che c'è nella flash; nella eeprom ci sono solo dati variabili, nella flash c'è il vero sistema operativo della ecu, che sarebbe quello da disassemblare e interpretare.
Bisogna fare delle precisazioni, ogni tipologia di ecu ha un micro con un'architettura diversa; nel caso della edc16c39 c'è un motorola con architettura arm.
I progettisti quando creano una ecu, scrivono il programma che deve svolgere e lo scrivono in un linguaggio di alto ****llo (C++ o similari), poi lo compilano utilizzando i tool messi a disposizione dalle stesse aziende che creano i microcontrollori, facendolo diventare un file binario che viene caricato o direttamente della memoria del micro, o in una memoria esterna.
Un file binario o hex non può in nessun modo e con nessun software restituire il listato sorgente originale, ma può solo essere disassemlato con gli stessi tool utilizzati per compilarlo, ottenendo un file in linguaggio macchina o assembly, ma ovviamente privo di ogni nome di variabile e info varie.
In sostanza, io riesco a leggere il contenuto di una ecu, riesco a disassemblarlo, ma il file assembly che ottengo è quasi inutile poichè ottengo solo pagine e pagine di codice sorgente scritto in linguaggio macchina senza nomi e appunti, umanamente impossibile da interpretare.
Se io voglio realmente creare qualcosa ho bisogno dei sorgenti originali di quella ecu, scritti non in linguaggio macchina, ma in un linguaggio di alto ****llo più umanamente interpretabile.