News:

Sostienici con una piccola Donazione per le spese di mantenimento del vostro sito!

Menu principale

Info Marelli MM10JA GIULIA 200 CV

Aperto da GPoint, 27 Apr 2021 - 18:47

Discussione precedente - Discussione successiva

0 Utenti e 3 Visitatori stanno visualizzando questa discussione.

Marmotta

Ho fatto solo pochi km, ma con un gran caldo! Sembra risolto, il comportamento è cambiato! Tra i 1000 e 2000 giri si vede molto facilmente il turbo salire (tramite la pagina performance) a 0,1/0,5 con poco gas, mentre prima rimaneva sempre a 0. Non mi è ben chiaro in che modo quella mappa abbia influito sulla pressione misurata ma ora è diverso... me che gli è venuto in mente al tuner di incrementarla? Son proprio dei pasticcioni! :-D

luqc

Ragazzi, un po' fuori tema - vedo che state rimappando spesso le vostre Giulia. È possibile registrare il bus CAN C durante la rimappatura? Sono particolarmente interessato al seed di accesso alla sicurezza e al set di chiavi (messaggio di seed dall'ECU: 18DAF110#06670500XXXXXX e risposta del programmatore: 18DA10F1#062706XXXXXXXX). Ho un'idea sull'algoritmo utilizzato per il calcolo del codice di accesso alla sicurezza (necessario per l'accesso alla programmazione), ma utilizza due costanti di 4 byte ciascuna e la loro determinazione tramite forza bruta non è possibile. Ho un'ECU di ricambio su cui testarlo e avere alcuni seed e set di chiavi mi aiuterebbe a trovare le costanti, permettendomi alla fine di leggere e programmare l'ECU senza strumenti commerciali, utilizzando solo un'interfaccia CAN semplice. Di seguito sto pubblicando l'algoritmo (codificato in Python) con le costanti che ho trovato in questo documento: https://illmatics.com/Remote%20Car%20Hacking.pdf (tra l'altro, è una lettura molto interessante).
Attenzione: questa è una traduzione di Chat-GPT. Versione in inglese di seguito.

CitazioneGuys, a little off-topic – I  see that you are remapping your Giulias quite often. Can you possibly log CAN C bus during remap? – I'm particularly interested in security access seed and key set (seed message from ECU: 18DAF110#06670500XXXXXX and programmer response: 18DA10F1#062706XXXXXXXX) I have a clue for the algorithm used for calculation of security access code (required for programming access) but it uses two constants which are 4-byte length each and their determination by brute force is not possible. I have a spare ECU to test it against and having some seed and key sets would help me to find the constants, in the end enabling me to read and program ECU without commercial tools, using only simple CAN interface. Below I'm posting the algorithm (coded with python) with constants that I've found in this paper: https://illmatics.com/Remote%20Car%20Hacking.pdf (btw. It's a very nice read).
key_const1 = 0x70e90220
key_const2 = 0x29e3e35b
def alfa_unlock(seed, key_const1, key_const2):
    AND_CONSTANT = 4294967295 #0xFFFFFFFF
    tempSeed = ((seed >> 16) & 0xFF) << 24
    tempSeed += (((seed >> 24) & 0xFF) << 16)
    tempSeed += ((seed >> 8) & 0xFF)
    tempSeed += ((seed & 0xFF) << 8)
    shiftseed = ((tempSeed << 11) + (tempSeed >> 22)) & AND_CONSTANT;
    key = (shiftseed ^(key_const1 ^ (key_const2 & seed))) & AND_CONSTANT
    key_list = [0x06, 0x27, 0x06]
    key_list.append(key >> 24)
    key_list.append(key%(2**24) >> 16)
    key_list.append(key%(2**16) >>8)
    key_list.append(key%(2**8))
    print(hex(key))
    return key_list
while(1):
    seed = int(input("input data:"),16)
    key_list = alfa_unlock(seed,key_const1,key_const2)
    for x in key_list:
        print(hex(x))

Errecinque

@luqc
C'ho capito ben poco per ora, quindi vorresti creare un alternativa al classico tool per scrivere il file in centralina?

Il messaggio da ecu e la risposta del programmatore come si possono estrapolare durante la scrittura? (sono questi dati che ti servono giusto?)

luqc

CitazioneC'ho capito ben poco per ora, quindi vorresti creare un alternativa al classico tool per scrivere il file in centralina?

Più o meno sì - mi piacerebbe essere in grado di riprogrammare (e eventualmente clonare) la nostra ECU senza utilizzare strumenti commerciali come Autotuner, Fox Flash, MagicMotorsport Flex, ecc.

CitazioneIl messaggio da ecu e la risposta del programmatore come si possono estrapolare durante la scrittura? (sono questi dati che ti servono giusto?)

Sì, questi sono i dati di cui ho bisogno. Il modo più semplice per ottenerli sarebbe intercettare il bus - collegando un'interfaccia CAN separata al bus CAN C e registrando la comunicazione tra l'ECU e il programmatore durante la programmazione.
So che può essere un po' complicato, ma hey, non fa male chiedere!  ;)

CitazioneI haven't understood much so far, so you would like to create an alternative to the traditional tool for writing files to the ECU?

More or less yes – I'd like to be able to reprogram (and possibly clone) our ECU without using commercial tools like Autotuner, Fox Flash, MagicMotorsport Flex, etc.

How can the message from the ECU and the programmer's response be extracted during the writing process? (Are these the data you need?)

Yes, this is the data I need, the easiest way to obtain it would be sniffing the bus - connecting a separate CAN interface to the CAN C bus and recording the communication between ECU and programmer during programming.
I know that this is quite a hassle but hey – it doesn't harm to ask  ;)

unofear

Citazione di: luqc il 28 Lug 2023 - 01:20Ragazzi, un po' fuori tema - vedo che state rimappando spesso le vostre Giulia. È possibile registrare il bus CAN C durante la rimappatura? Sono particolarmente interessato al seed di accesso alla sicurezza e al set di chiavi (messaggio di seed dall'ECU: 18DAF110#06670500XXXXXX e risposta del programmatore: 18DA10F1#062706XXXXXXXX). Ho un'idea sull'algoritmo utilizzato per il calcolo del codice di accesso alla sicurezza (necessario per l'accesso alla programmazione), ma utilizza due costanti di 4 byte ciascuna e la loro determinazione tramite forza bruta non è possibile. Ho un'ECU di ricambio su cui testarlo e avere alcuni seed e set di chiavi mi aiuterebbe a trovare le costanti, permettendomi alla fine di leggere e programmare l'ECU senza strumenti commerciali, utilizzando solo un'interfaccia CAN semplice. Di seguito sto pubblicando l'algoritmo (codificato in Python) con le costanti che ho trovato in questo documento: https://illmatics.com/Remote%20Car%20Hacking.pdf (tra l'altro, è una lettura molto interessante).
Attenzione: questa è una traduzione di Chat-GPT. Versione in inglese di seguito.

CitazioneGuys, a little off-topic – I  see that you are remapping your Giulias quite often. Can you possibly log CAN C bus during remap? – I'm particularly interested in security access seed and key set (seed message from ECU: 18DAF110#06670500XXXXXX and programmer response: 18DA10F1#062706XXXXXXXX) I have a clue for the algorithm used for calculation of security access code (required for programming access) but it uses two constants which are 4-byte length each and their determination by brute force is not possible. I have a spare ECU to test it against and having some seed and key sets would help me to find the constants, in the end enabling me to read and program ECU without commercial tools, using only simple CAN interface. Below I'm posting the algorithm (coded with python) with constants that I've found in this paper: https://illmatics.com/Remote%20Car%20Hacking.pdf (btw. It's a very nice read).
key_const1 = 0x70e90220
key_const2 = 0x29e3e35b
def alfa_unlock(seed, key_const1, key_const2):
    AND_CONSTANT = 4294967295 #0xFFFFFFFF
    tempSeed = ((seed >> 16) & 0xFF) << 24
    tempSeed += (((seed >> 24) & 0xFF) << 16)
    tempSeed += ((seed >> 8) & 0xFF)
    tempSeed += ((seed & 0xFF) << 8)
    shiftseed = ((tempSeed << 11) + (tempSeed >> 22)) & AND_CONSTANT;
    key = (shiftseed ^(key_const1 ^ (key_const2 & seed))) & AND_CONSTANT
    key_list = [0x06, 0x27, 0x06]
    key_list.append(key >> 24)
    key_list.append(key%(2**24) >> 16)
    key_list.append(key%(2**16) >>8)
    key_list.append(key%(2**8))
    print(hex(key))
    return key_list
while(1):
    seed = int(input("input data:"),16)
    key_list = alfa_unlock(seed,key_const1,key_const2)
    for x in key_list:
        print(hex(x))
Stai provando il flash in modalità di avvio o solo il bootloader flash del bus?

unofear

Oggi mi rendo conto che il "flag di abilitazione start & stop" non è sufficiente per disabilitare start e stop, poiché la mia batteria ora è completamente carica il sistema s&s ricomincia a funzionare quindi è necessario cercare di più su questo. Infine la mia soluzione per egr è verificata che sta funzionando.

Presto ne avrò di più per l'hacking della TCU poiché sto decodificando un flash GTA e confrontandolo con il QV in modo che aiuti a capire cosa ha fatto l'ingegnere Alfa per farlo cambiare più velocemente.

GPoint

@unofear per lo S&S oltre al flag c'è un bit relativo alla tensione batteria e uno relativo alla temp acqua. Per esperienza con il veleggio, dove ho modificato solo il controllo relativo alla temp acqua con esito positivo, ti direi di modificare solo il bit che abilità lo S&S con temp acqua superiore a X e provare.

unofear

Credo che questa mappa sia tutto ciò di cui ha bisogno, la imposterò a 14 volt, questo farà il lavoroNon puoi visualizzare questo allegato.

Errecinque

Citazione di: unofear il 01 Ago 2023 - 19:22Credo che questa mappa sia tutto ciò di cui ha bisogno, la imposterò a 14 volt, questo farà il lavoroNon puoi visualizzare questo allegato.

Che unità di misura hanno gli assi x e y?

unofear

Citazione di: Errecinque il 01 Ago 2023 - 20:29
Citazione di: unofear il 01 Ago 2023 - 19:22Credo che questa mappa sia tutto ciò di cui ha bisogno, la imposterò a 14 volt, questo farà il lavoroNon puoi visualizzare questo allegato.

Che unità di misura hanno gli assi x e y?
L'asse x è la condizione di carica della batteria e l'asse y è la temperatura della batteria

luqc

#400
Citazione di: unofear il 31 Lug 2023 - 20:03Stai provando il flash in modalità di avvio o solo il bootloader flash del bus?

Prima di tutto, vorrei ottenere l'accesso alla sicurezza. Come ho detto, non sono un tuner, solo un smanettone, quindi non sono sicuro di come funzioni dopo aver ottenuto l'accesso alla sicurezza - credo che non si possa semplicemente digitare il comando "dump all memory"  ;D  per ottenere mappe, flash o eeprom dall'ECU, sarebbe troppo semplice. Ho letto che è possibile caricare un bootloader che consentirebbe di fare queste cose (per favore, correggimi se sbaglio), ma non sono ancora a questo punto - al momento sto cercando di ottenere l'accesso per poter comunicare pienamente con l'ECU. Cercando di rispondere alla tua domanda - vorrei evitare di aprire l'ECU, quindi probabilmente voglio solo "solo il bootloader flash del bus" - tuttavia non sono sicuro se il vero significato della tua domanda non si sia perso nella traduzione.

CitazioneFirst of all I would like to gain security access. As I said, I'm not tuner, only a tinkerer, therefore I'm not sure how this works after gaining security access - I believe that you cannot just type 'dump all memory' command  ;D  to get maps, flash or eeprom from ECU - it would be too simple. I've red about uploading a bootloader which would allow you to do such things (please, correct me if I'm wrong), but I'm not on this stage yet - now I'm trying to get the access to be able to fully communicate with the ECU. Trying to answer your question - I'd like to avoid opening the ECU, so I probably want to do 'just flash the bootloader via bus' – however I'm not sure if real meaning of your question hasn't been lost in translation.

Errecinque

@luqc

Posso garantirti che la ecu si apre come il burro, mai trovato un mastice così morbido che tiene il coperchio.

Marmotta

Citazione di: Marmotta il 17 Lug 2023 - 18:27
Citazione di: unofear il 17 Lug 2023 - 17:41Sono sicuro che l'interruttore funzioni poiché li ho controllati con ida pro. Poiché non ricevo quel codice di errore, dobbiamo indagare sul motivo per cui lo stai ricevendo. Non ho toccato questa mappa ma il massimo sì che ho aumentarlo.

Oggi si è ripresentato l'errore, sono riuscito a leggere tutti i dati con Mes ed effettivamente la causa è quella mappa! Capita solo con gran caldo e a bassi giri... nei dati del Mes ho visto che la temperatura dell'aria era ben 43 gradi la pressione del turbo di 0,8 a circa 1.700 giri, risultato? Aspirava solo 197kg/h! L'aria è talmente calda e afosa che non riesce a fare meglio! Ora ho nuovamente modificato la mappa rimettendo il valore originale di 200kg/h. Secondo me risolvo 😉

Alla fine dopo circa 500km, giornata caldissima e dna in "N" si è ripresentato l'errore p2262! Ora per andare in ferie tranquillo ho rimesso tutto ori, in attesa di capire dove sta il problema.

Errecinque

Citazione di: Marmotta il 03 Ago 2023 - 17:15
Citazione di: Marmotta il 17 Lug 2023 - 18:27
Citazione di: unofear il 17 Lug 2023 - 17:41Sono sicuro che l'interruttore funzioni poiché li ho controllati con ida pro. Poiché non ricevo quel codice di errore, dobbiamo indagare sul motivo per cui lo stai ricevendo. Non ho toccato questa mappa ma il massimo sì che ho aumentarlo.

Oggi si è ripresentato l'errore, sono riuscito a leggere tutti i dati con Mes ed effettivamente la causa è quella mappa! Capita solo con gran caldo e a bassi giri... nei dati del Mes ho visto che la temperatura dell'aria era ben 43 gradi la pressione del turbo di 0,8 a circa 1.700 giri, risultato? Aspirava solo 197kg/h! L'aria è talmente calda e afosa che non riesce a fare meglio! Ora ho nuovamente modificato la mappa rimettendo il valore originale di 200kg/h. Secondo me risolvo 😉

Alla fine dopo circa 500km, giornata caldissima e dna in "N" si è ripresentato l'errore p2262! Ora per andare in ferie tranquillo ho rimesso tutto ori, in attesa di capire dove sta il problema.

Se la macchina va bene puoi provare con l'esclusione del dtc a questo punto

Marmotta

Citazione di: Errecinque il 03 Ago 2023 - 17:32Se la macchina va bene puoi provare con l'esclusione del dtc a questo punto

Si, va benissimo! La cosa che complica tutto è che non si presenta subito, ma magari dopo 500 o 1000km! Comunque ora la uso un po' ori cosi da essere sicuro al 100% che è un problema di mappa. La mia idea è che per qualche strano meccanismo non digerisca il selettore in "N" e mappe pedale come in "D". Alla fine è una configurazione che non ho mai visto fare da nessuno, ma utile se vuoi la modalità Race senza rinunciare al comportamento in Dynamic.