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 1 Visitatore stanno visualizzando questa discussione.

unofear

Ho anche apportato questa modifica e ho copiato la/le mappa/e della coppia dell'acceleratore D in modalità N, poiché con la modalità gara la centralina utilizza solo la modalità N. Con il turbo più grande che ho, le impostazioni N sono pigre e non mi piacciono affatto.

ambroteklab

Citazione di: unofear il 03 Ago 2023 - 19:58
Citazione di: luqc il 02 Ago 2023 - 23:54
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.
In passato sono stato coinvolto nell'hacking del bootloader, quindi posso darti alcune idee, la parte più complicata è definire l'algoritmo della chiave seed e quindi definire i comandi che devono richiedere e inviare parte dei file. In modalità di avvio lo strumento è solo lampeggiando è la partizione del flash che ha modificato i byte. Quindi è il checksum della partizione e se ha un risultato diverso inviato il comando di cancellazione e lampeggia. Sei in grado di decodificare i file con ida? MPC mcu non è un compito facile.

Ciao, sto cercando di fare la stessa cosa, hai trovato poi qualcosa a riguardo?

ambroteklab

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))
avevo sbagliato il tag.

Ciao, sto cercando di fare la stessa cosa, se riuscito a trovare qualcosa poi?

Errecinque

@ambroteklab premesso che non ho conoscenze di programmazione ma sarei curioso di conoscere lo scopo di questo. Grazie

unofear

Concordo sul fatto che esistano già soluzioni economiche in grado di rimappare molte centraline Marelli.

absinth84

A che interfacce ti riferisci che lavorano in obd/bench su marelli 10ja?

Foxflash a parte che è lento e richiede apertura conosco solo di nome tinyflash di turbolapaka con lavora con openport o scanmatik ma non ho idea che costo abbia. Sul sito c'e' un form di contatto per la quotazione

Errecinque

Citazione di: absinth84 il 20 Mar 2026 - 16:30A che interfacce ti riferisci che lavorano in obd/bench su marelli 10ja?

Foxflash a parte che è lento e richiede apertura conosco solo di nome tinyflash di turbolapaka con lavora con openport o scanmatik ma non ho idea che costo abbia. Sul sito c'e' un form di contatto per la quotazione

In bench funziona il flex che permette anche clonazione. Non economico però sicuramente

unofear

Citazione di: Errecinque il 20 Mar 2026 - 20:19
Citazione di: absinth84 il 20 Mar 2026 - 16:30A che interfacce ti riferisci che lavorano in obd/bench su marelli 10ja?

Foxflash a parte che è lento e richiede apertura conosco solo di nome tinyflash di turbolapaka con lavora con openport o scanmatik ma non ho idea che costo abbia. Sul sito c'e' un form di contatto per la quotazione

In bench funziona il flex che permette anche clonazione. Non economico però sicuramente
La soluzione migliore è TinyFlash di TurboLapaka. Economico e affidabile.

Errecinque

Citazione di: unofear il 20 Mar 2026 - 21:07La soluzione migliore è TinyFlash di TurboLapaka. Economico e affidabile.

Puoi spiegare come funziona? che tool bisogna avere? non è molto chiaro sul sito web

unofear

Citazione di: Errecinque il 20 Mar 2026 - 22:42
Citazione di: unofear il 20 Mar 2026 - 21:07La soluzione migliore è TinyFlash di TurboLapaka. Economico e affidabile.

Puoi spiegare come funziona? che tool bisogna avere? non è molto chiaro sul sito web
Per l'hardware hai bisogno di Openport o Scanmatik, il primo è più economico. Io programmo la centralina al banco senza aprirla e non ho bisogno di imparare il sensore dell'albero a camme dopo la programmazione. Programmo solo il blocco che ha subito modifiche, il che rende il processo estremamente veloce.

Errecinque

Sai
Citazione di: unofear il 21 Mar 2026 - 07:25
Citazione di: Errecinque il 20 Mar 2026 - 22:42
Citazione di: unofear il 20 Mar 2026 - 21:07La soluzione migliore è TinyFlash di TurboLapaka. Economico e affidabile.

Puoi spiegare come funziona? che tool bisogna avere? non è molto chiaro sul sito web
Per l'hardware hai bisogno di Openport o Scanmatik, il primo è più economico. Io programmo la centralina al banco senza aprirla e non ho bisogno di imparare il sensore dell'albero a camme dopo la programmazione. Programmo solo il blocco che ha subito modifiche, il che rende il processo estremamente veloce.

Bella notizia, mi informo sui costi, grazie

Errecinque

@unofear puoi postare il link di dove hai acquistato il tuo?

unofear

Citazione di: Errecinque il 21 Mar 2026 - 07:52@unofear puoi postare il link di dove hai acquistato il tuo?
Gli ho inviato un messaggio diretto su WhatsApp, ma puoi contattarlo anche tramite il suo sito web.

Errecinque

Citazione di: unofear il 21 Mar 2026 - 08:17
Citazione di: Errecinque il 21 Mar 2026 - 07:52@unofear puoi postare il link di dove hai acquistato il tuo?
Gli ho inviato un messaggio diretto su WhatsApp, ma puoi contattarlo anche tramite il suo sito web.
Ma tu usi openport o scanmatik?

luqc

Citazione di: ambroteklab il 19 Mar 2026 - 09:33avevo sbagliato il tag.
Ciao, sto cercando di fare la stessa cosa, se riuscito a trovare qualcosa poi?
Sono riuscito a ottenere l'accesso di sicurezza utilizzando il codice qui sotto; le key constants sono le stesse in entrambe le ECU che possiedo. Tuttavia, ottenere l'accesso di sicurezza non consente di leggere alcun indirizzo di memoria dalla ECU utilizzando il servizio "ReadMemoryByAddress" (0x23) del protocollo UDS. Non ho provato a scrivere nulla nella ECU perché temevo di bloccarla (brick) e in qualche modo ho perso interesse per l'argomento. Si prega di notare che questo testo è tradotto utilizzando ChatGPT; per chiarezza, vedere la versione inglese qui sotto.

I was able to gain security access using the code below, the keyconstants are the same in both ECU's that I own. However gaining the security access does not allow you to read any memory adress from the ECU using 'ReadMemoryByAddress' (0x23) service of the UDS protocol. I havent tried writing anything into the ECU because I was worried of bricking it and I somhow lost interest in the topic.
def alfa_unlock(seed):
    key_const =[]
    key_const.append(0x9B127D51)
    key_const.append(0x5BA41903)
    key_const.append(0x4FE87269)
    key_const.append(0x6BC361D8)
    AND_CONSTANT = 0x8f750a1d
    itCounter = 0x40
    uVar1 = seed
    uVar2 = (uVar1&0xFF)<<0x18
    #print ('uVar2 -1:',hex(uVar2))
    #uVar2 = uVar2&0xFFFFFFFF
    uVar2 = uVar2 +(uVar1&0xff00)*0x100 + (uVar1>>8&0xff00)+ (uVar1 >> 0x18)
    uVar3 = 0
    uVar1 = 0
    #print ('uVar2 0:',hex(uVar2))
    while itCounter > 0:
        itCounter = itCounter - 1
        uVar2 = uVar2 + (key_const[uVar1 & 3] + uVar1 ^ (uVar3 >> 5 ^ uVar3 << 4) + uVar3)
        uVar2 &=0xFFFFFFFF
        #print('uVar2:',itCounter, hex(uVar2))
        uVar1 = uVar1 + AND_CONSTANT
        uVar1 &=0xFFFFFFFF
        #print('uVar1:',itCounter, hex(uVar1))
        uVar3 = uVar3 + (((key_const[(uVar1 >> 9 & 0xc)>>2] + uVar1)&0xFFFFFFFF) ^
                    (uVar2 >> 5 ^ ((uVar2 * 0x10)&0xFFFFFFFF)) + uVar2)
        uVar3 &=0xFFFFFFFF
        #print((uVar1 >> 9 & 0xc)>>2)
        #print('uVar3:',itCounter, hex(uVar3))
    return (uVar3 * 0x1000000&0xFFFFFFFF) + (uVar3 * 0x100 & 0xff0000) + (uVar3 >> 8 & 0xff00) + (uVar3 >> 0x18)