Pagina 1 di 8 123 ... UltimaUltima
Risultati da 1 a 10 di 78

Visualizzazione Ibrida

  1. #1
    UTENTE ATTIVO L'avatar di munro
    Data Registrazione
    Oct 2012
    Localit
    TERRA
    Messaggi
    1,207

    disassemblare un file binario ecu

    ragazzi mi sono sempre chiesto in cosa consiste tale operazione cioè dissasemblare un file binario di una ecu per capire esattamente le operazioni previste dal programma eprom nel operate via micro..
    qualcuno ne sà qualcosa? mi sembra di capire che la cosa sia abbastanza complessa e piu alla portata di un informatico/programmatore....c'è qualche buona anima pia che potrebbe spiegare anche semplificando molto in cosa consiste?
    Un motociclista non crea code nemmeno in auto...
    un automoblista crea code anche in moto...

  2. #2
    UTENTE ATTIVO L'avatar di munro
    Data Registrazione
    Oct 2012
    Localit
    TERRA
    Messaggi
    1,207
    c'è qualche programmatore tra noi che conosca il linguaggio C/assembly o il linguaggio ASCII??
    Un motociclista non crea code nemmeno in auto...
    un automoblista crea code anche in moto...

  3. #3
    UTENTE MEDIO L'avatar di tranky
    Data Registrazione
    Aug 2015
    Localit
    Alfa147Land
    Messaggi
    702
    Allora per spiegare in forma "potabile" la composizione di un file binario non leggibile dobbiamo un po immedesimarsi in cio che vi sto per dire..
    Facciamo conto che io e te (munro) ci telefonassimo, tra me e te c'è un "tunnel comunicativo" nel quale transitano i miei messaggi vocali e i tuoi.. se un terzo si contrappone tra noi 2 può ascoltare tranquillamente il contenuto del "tunnel comunicativo".
    [io]----[te]
    [io]---[impiccione]---[te]
    questi sono i 2 esempi come detto sopra.
    ora partiamo con [io] che invio un messaggio incapsulato dietro un algoritmo definiamolo XYZ (tanto per rimanere in tema con il sito e ecm) il quale converte il suono in un qualcosa di non comprensibile che in fase di ricezione ha 2 opzioni:
    1) se il mittente ha il medesimo codice XYZ decripta il segnale e lo rende originale e "potabile"
    2) se il mittente o chiunque si intrometta nella trasmissione non avrà modo di ascoltare il contenuto.
    Diciamo che questo vale più che altro per le comunicazioni ma diciamo che il principio è il medesimo, basta invertire con
    [io] = programmazione originale della centralina
    XYZ = conversione del file da testo leggibile (in qualsiasi linguaggio sia espresso in precendenza sempre caratteri e linguaggi deve contenere)
    [tu] = interprete come winols ecm ecc ecc
    Allo stato attuale non saprei dirti con precisione con quale compilatore sia stato creato tale file ma esistono modi per il decompilare ma ci vuole tempo e fatica per arrivare al risultato anche perchè il file in se e per se farà parte di una suite alfa/bosch la quale avrà sicuramente il sorgente interprete.
    Avendo quello hai il mondo del tuning tra le dita
    Spero di essere stato di aiuto e sopratutto chiaro.. contorto sicuramente ma spero chiaro
    Chiedimi altro se ne hai necessità
    Vivi ****** & Muori da EROE !

  4. #4
    UTENTE MEDIO L'avatar di tranky
    Data Registrazione
    Aug 2015
    Localit
    Alfa147Land
    Messaggi
    702
    Guarda hai la mia massima collaborazione e se vuoi domenica mattina con calma postane uno e inizio a vedere la composizione e la scomposizione.
    Ma di sicuro nulla di potabile visto che ogni carattere nella tabella ascii è legata ad una funzione (sia a stringa che a singolo carattere) dal programma che genera questi file ecu e con difficoltà qualcosa magari si traduce.
    O magari è meno complicato di come pensiamo..
    Testiamo e vediamo che succede
    Vivi ****** & Muori da EROE !

  5. #5
    UTENTE ATTIVO L'avatar di munro
    Data Registrazione
    Oct 2012
    Localit
    TERRA
    Messaggi
    1,207
    ti ringrazio molto tranky ma tu dici che sarebbe per me pressoche impossibile imparare a leggere l'ASCII??
    intato però posto un piccolo promemoria in modo che anche chi e meno esperto possa capire di cosa parliamo.


    La costituzione e la logica di funzionamento delle centraline elettroniche (ECU)


    Voglio cercare di affrontare un argomento molto teorico e poco pratico, che può aiutare molti di noi a comprendere le logiche di funzionamento e la costituzione delle amate/odiate centraline elettroniche ECU con cui quotidianamente ci confrontiamo nelle diagnosi e nelle riparazione dei veicoli e nellla loro riprogrammazione.
    Le mie sono conoscenze in materia sono piuttosto basiche: non sono un esperto e spero che chi ha più esperienza possa poi correggermi.
    L' argomento se approfondito assumerebbe una piega molto teorica ed astratta che fontamentalmente serve e non serve se uno deve fare solo rimappature il discorso cambia nel caso delle riprogrammazioni di alcuni parametri del micro piu della eprom, quindi cercherò di essere più semplice possibile riassumendo le informazioni che ho al fine di capire solo come ragiona una centralina.



    Come è composta una centralina?
    Qualsiasi essa sia da quella motore a quella di aiuto al parcheggio, dalle prime comparse solo per l' iniezione, fino a quelle di ultima generazione, le centraline elettroniche sono formate principalmente da 5 parti fisiche :

    -Alimentazione:
    Comprende i positivi ed i negativi in arrivo dalla sorgente di alimentazione che, nel caso delle auto, è la batteria. La centralina ha al suo interno dei dispositivi in grado di stabilizzare le tensioni in gioco, generare altre alimentazioni come i 5V dei sensori, e filtrare il potenziale di massa isolandolo dai disturbi esterni (accensioni, spurie di radiofrequenza, interferenze elettromagnetiche, ecc..)

    -Ingressi o input (I):
    Una centralina deve avere degli ingressi per ricevere le informazioni dall 'esterno, siano esse "comunicazioni" (es. linea CAN) oppure segnali in arrivo dai sensori; a ****llo fisico gli ingressi devono essere composti da dispositivi che leggono dei segnali elettrici e li trasformano in informazioni digitali.

    -Uscite o output (O):
    Le uscite servono per convertire i comandi digitali in segnali di potenza al fine di far funzionare attuatori o spedire informazioni.

    -Microprocessore:
    E' il cuore operativo di tutto ed è in grado di elaborare le informazioni in arrivo dagli ingressi, accedere alla memoria e al programma di funzionamento e comandare le uscite.

    -Memoria o eprom:
    E' la sede dove viengono "stipate" le informazioni, le famose mappe e le istruzioni necessarie per gestire il processore.




    Microprocessori "stupidi".
    Il microprocessore è "stupido": non ha possibità di ragionare, ma solo di eseguire delle istruzione una alla volta; un insieme di istruzione di senso compiuto, che fanno compiere un lavoro al processore che si chiama Programma esempio:
    - Leggere le informazioni di un sensore;
    - Accedere alla memoria giusta;
    - Confrontarle con i parametri memorizzati;
    - Verificare la plausibilità del valore;
    - Gestire un eventuale comando di uscita.
    Questo insieme di istruzioni possono essere un vero e proprio "mini programma" quello che interessa a noi.
    La particolarità di un microprocessore è la velocità con cui esegue le singole istruzioni; velocità che può raggiungere anche il migliardo di operazioni al secondo!

    Come fa a gestire le informazioni?
    Il Processore -di qualsiasi centralina- essendo un componente elettronico può solo ragionare con segnali elettrici: esiste quindi la necessità di convertire tutto in segnali adeguati.
    Il discorso della conversione è alla base di questa mia discussione: le informazioni subiscono molte trasformazioni nel momento che raggiungono la centralina e per ora che escono, la complessità sta nel seguirle tutte.

    Bit,Byte esadecimale e ASCII
    Tutti questo nomi rappresentano i "formati" ed i linguaggi usati dalle centraline (e dai PC) per trattare i dati, ma cominciamo dalla base.
    I bit:
    L' unica cosa che sa fare un componente elettronico è quello di riconoscere delle tensioni (essere un multimetro), ecco che da qui nasce la necessità di trasformare tutto in segnali elettrici, dove una tensione bassa quasi uguale a zero verrà riconosciuta come "0", mentre una tensione più alta (esempio 5V) sarà riconosciuta come "1", questi due parametri sono i bit, ovvero le lettere dell' alfabeto elettronico.
    Facendo tutte le combinazioni di 1 e 0 possiamo creare un alfabeto e quindi parole ovvero istruzioni esempio 00000001 significa "inizio del testo", bisogna pensare che un processore non ha bisogno di una quantità di parole come un essere umano, ma solo istruzioni da eseguire.
    8 bit consegutivi compongono un Byte.
    CODICE HEX:
    Per semplificare il lavoro a chi programma e chi gestisce questa flotta di 1 e 0 hanno creato un altro linguaggio che semplifica il tutto è il "linguaggio esadecimale" o "HEX" ovvero un sistema con base 16 con il quale si trasformano i dati in byte in un codice più corto esempio 00111111 si può scrivere 1F (tradotto significa separatore oppure N°31).
    Sembra difficile, ma alla fine è solo un modo diverso di rappresentare la stessa informazione, nel codice HEX compaiono anche le lettere (A B C D E F). Solitamente le centraline e i PC questo codice (HEX) viene usato per rappresentare gli indirizzi delle memorie, ovvero l' indirizzo da dove prendere o dove scrivere l' informazione, questa necessità nasce dal fatto che un processore deve sapere dove andare a cercare il dato che gli serve altrimenti non lo può trovare.
    CODICE ASCII
    Il codice ASCII è un ulteriore codice per trasformare i Byte in lettere o frasi compiute al fine di far capire qualche cosa a noi esseri umani sia per programmare sia per interfacciarsi ad esempio la diagnosi (P0300 significa mancate accensioni).

    Riassumendo:
    i programmi di gestione vengono scritti in codice ASCII, gli indirizzi in codice HEX e il tutto viene tradotto dal programma stesso in Byte (8bit) ovvero l' unica lingua che un processore può capire, al lato pratico se noi usiamo un oscilloscopio e osserviamo cosa passa sui pin del processore vediamo segnali elettrici simili ad onde quadre che rappresentano i bit 1 e 0:




    Invece se con i programmi apposta ad esempio quelli di rimappatura, cerchiamo qualcosa nelle memorie usiamo gli indirizzi in HEX




    Se facciamo la diagnosi o programmiamo usiamo il codice ASCII, e ragionandoci si capisce il perchè di tanti linguaggi i bit sono inleggibili, gli HEX sono complessi ed usati nelle rimappature solo da "occhi" esperti, mentre il codice ASCII è per tutti gli addetti ai lavori diciamo cosi, è un pò come se dovessimo leggere il giapponese, prima lo traduciamo in inglese e poi in italiano.



    Gira che ti rigira la centralina attraverso appositi segnali elettrici (istruzioni) memorizzati nelle memorie, gestisce con altri segnali elettrici abilitando o meno le uscite, il tutto ad una velocità ininmaginabile e senza commettere errori, gli errori se ci sono, sono stati fatti da chi ha fatto i programmi.
    La centralina per funzionare deve avere le giuste alimentazioni, i giusti segnali di ingresso e deve comandare in modo corretto, sempre parlando di tensioni, correnti e tempi di reazione, mentre al suo interno le memorie devono contenere i programmi ed il processore deve controllare tutto.

    Chiaramente più la centralina è complessa e più operazioni deve gestire e più è difficile da analizzare da parte nostra, ma con le conoscienze basi descritte si possono affrontare qualsiasi tipo da un finestrino automatico ad una EDC17, chiaramente con le dovute proporzioni.

    La rimappatura da parte degli elaboratori consiste nel variare alcuni parametri "motoristici" inseriti nelle memorie e presi da riferimento dal processore, occupano una piccola parte di tutto il programma e le protezioni anti-elaborazioni.

    Spero di non aver fatto confusione, ho cercato di riassumere il tutto e renderlo il più semplice possibile al fine di aiutare a capire la logica di funzionamento di una centralina, in modo da avere meno dubbi,d'altra parte per fortuna o per sfortuna queste centraline ci sono e non ci si può fare niente, se non farcele amiche e migliorare il nostro lavoro.
    Un motociclista non crea code nemmeno in auto...
    un automoblista crea code anche in moto...

  6. #6
    UTENTE MEDIO L'avatar di tranky
    Data Registrazione
    Aug 2015
    Localit
    Alfa147Land
    Messaggi
    702
    Chiedi e ti sarà dato!
    Non sono proprio un programmatore certificato ma ho coddato parecchio in vari linguaggi di programmazione.
    Che devi realizzare?
    Vivi ****** & Muori da EROE !

  7. #7
    UTENTE MEDIO L'avatar di tranky
    Data Registrazione
    Aug 2015
    Localit
    Alfa147Land
    Messaggi
    702
    facendo un sunto: avere XYZ equivale ad avere un driver/damos interprete del file di codifica solo che il damos/driver interpreta gli ID, l'"XYZ" interpreterebbe tutta la composizione del file.ecu
    Vivi ****** & Muori da EROE !

  8. #8
    UTENTE ATTIVO L'avatar di munro
    Data Registrazione
    Oct 2012
    Localit
    TERRA
    Messaggi
    1,207
    Citazione Originariamente Scritto da tranky Visualizza Messaggio
    Chiedi e ti sarà dato!
    Non sono proprio un programmatore certificato ma ho coddato parecchio in vari linguaggi di programmazione.
    Che devi realizzare?
    l'idea e quella di implementare nel micro ed in eprom nuve funzioni non previste dal costruttore vedi ad esempio multimappa,launch control con als,sistema bang-bang,eccetera questo si potrebbe fare in teoria modificando le stringhe di codice in eprom in modo che il micro nella lettura del suo programma di routine implementi anche queste funzioni.
    Un motociclista non crea code nemmeno in auto...
    un automoblista crea code anche in moto...

  9. #9
    UTENTE ATTIVO L'avatar di munro
    Data Registrazione
    Oct 2012
    Localit
    TERRA
    Messaggi
    1,207
    ok ma se noi non abbiamo "xyz" come possiamo decifrare il contenuto di un micro o di una eprom?
    mi sembra di aver letto da qualche parte che si utilizzi il linguaggio ASCII...
    Un motociclista non crea code nemmeno in auto...
    un automoblista crea code anche in moto...

  10. #10
    UTENTE MEDIO L'avatar di tranky
    Data Registrazione
    Aug 2015
    Localit
    Alfa147Land
    Messaggi
    702
    Si l'ASCII lo vedi infatti dal codice sull'hexdump.
    Dovrei vedere qualche file di EPROM e vedere la composizione.
    Appena ho tempo ci do uno sguardo.

Pagina 1 di 8 123 ... UltimaUltima

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •