Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ODIS-project-explorer — Dumper/esploratore Python per progetti MCD Runtime usati da ODIS | Kitploit
Strumenti/GitHubGitHub/kartoffelpflanze/odis-project-explorer
Sicurezza Sistemi EmbeddedAnalisi delle VulnerabilitàReverse EngineeringDebuggerRaccolta InformazioniAnalisi di BinariAnalisi del Firmware
GitHub

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
kartoffelpflanze/odis-project-explorer

ODIS-project-explorer

Dumper/esploratore Python per progetti MCD Runtime usati da ODIS

Vedi Repository
3310241 anno faRevisionato da Kitploit

Esploratore di progetti ODIS

Thread del forum Nefarious Motorsports: http://nefariousmotorsports.com/forum/index.php?topic=23836.0


Questo progetto Python serve a estrarre (e utilizzare) i dati memorizzati nei progetti MCD Runtime (noti colloquialmente come "file .db e .key").

Normalmente, questi file vengono usati dal kernel MCD, che a sua volta viene usato da ODIS o iDEX o qualsiasi altra cosa. Ogni installazione di ODIS include un'app MCD-Kernel/VWMCDClient.exe che può essere usata per armeggiare con i progetti a un livello molto più basso.

Per usare questi dati, normalmente si userebbero le librerie da Include_Libs e MCD-Kernel per scrivere una propria applicazione C++/Java che analizzi gli oggetti. Ci sono però alcuni problemi con questo approccio:

  1. Devi capire come calcolare il "MAC segreto" per sbloccare il kernel e poterlo usare, oppure craccare la .dll.
  2. Quasi ogni chiamata di funzione deve essere protetta, poiché vengono lanciate eccezioni quando l'elemento richiesto non è definito.
  3. Alcuni elementi del database non sono direttamente accessibili tramite l'API fornita, o comunque difficili da raggiungere.

Con questo strumento puoi accedere ai database dal livello più basso possibile. Spero che sia utile per lo studio di ODX, J2534, UDS e qualsiasi altra cosa.

Un po' di informazioni

[!NOTE] Non verranno mai forniti progetti/database! Portatevi i vostri :)

Il funzionamento di questi progetti è che le coppie di file .db e .key rappresentano dei "Pool" (e "PoolID" si riferisce al nome del file senza estensione). Ogni pool contiene oggetti.

Ogni oggetto è memorizzato come flusso di dati, i cui byte vengono letti come flag/stringhe/numeri ecc. Ognuno è memorizzato in modo diverso, quindi... è stato dedicato molto tempo a Ghidra e x64dbg. Probabilmente puoi apprezzare il lavoro che è costato dando un'occhiata alla cartella object_loaders.

In nessun caso garantisco di caricare correttamente ogni tipo di oggetto. Al contrario, molti campi sono stati nominati in base a ciò che pensavo rappresentassero. Praticamente ogni classe nella libreria C++ eredita da altre classi e devo ammettere che quando l'ho decompilata non sono riuscito a venirne a capo.

Per iniziare

Per la traduzione dei testi è necessario HSQLDB, che può essere utilizzato solo tramite Java. Pertanto, sarà necessario installare JPype:

pip install jpype1

Per informazioni sull'uso di ogni script, chiamali con l'argomento '-h' (oppure dai un'occhiata al codice sorgente).

Gli script che hanno l'opzione di traduzione dei testi (dumpDTC e parseMWB) necessitano di un database.

  • Dai un'occhiata alla cartella dei dati di ODIS (da qualche parte in C:/ProgramData), dovrebbe esserci una cartella DIDB/db.
  • Deve contenere un file .data con nome didb_Base-..., dove '...' è una lingua come 'en_US'.
  • Quindi, fornisci agli script il percorso di quella cartella e il suffisso della lingua.

Se non fornisci un database del genere, per dumpDTC non avrai la "descrizione più dettagliata", e per parseMWB tutto userà il suo LONG-NAME predefinito da ODX.

Informazioni sugli script

dumpProject / dumpAllProjects

Questi moduli esportano ogni oggetto da ogni pool (da ogni progetto). Tieni presente che esportare tutti i progetti richiederà alcune decine di gigabyte e un paio d'ore. Personalmente ho lavorato con una partizione separata che potevo formattare per eliminare rapidamente tutti i file.

Nello stato attuale, tutti i miei progetti vengono esportati senza errori. Ho provato progetti del 2020 e del 2022. È possibile che progetti più vecchi o più nuovi non vengano esportati per vari motivi, molto probabilmente tipi di oggetto non gestiti, o campi non gestiti in tipi di oggetto gestiti (che ho hardcodato dato che erano gli stessi in tutti i progetti).

[!TIP]

python dumpProject.py "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "O:/Projects"
python dumpAllProjects.py "C:/ProgramData/OE/MCD-Projects-E/VWMCD" "O:/Projects"

dumpECUVariantPatterns

Questo script esporta i "modelli di corrispondenza ECU-VARIANT", necessari per la procedura di "identificazione della variante" (selezione del file appropriato per una centralina).

[!TIP]

python dumpECUVariantPatterns.py basevariant "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "0.0.0@BV_DashBoardUDS.bv" "O:/Patterns"
python dumpECUVariantPatterns.py project "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "O:/Patterns"
python dumpECUVariantPatterns.py projects "C:/ProgramData/OE/MCD-Projects-E/VWMCD" "O:/Patterns"

dumpDTC

Questo script esporta le "definizioni DTC". Esporta solo gli oggetti necessari per i DTC (= codici di guasto diagnostici) - servizio 0x19.

[!TIP]

python dumpDTC.py basevariant "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "0.0.0@BV_DashBoardUDS.bv" "O:/DTCs" "C:/ProgramData/OE/DIDB/db" en_US
python dumpDTC.py project "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "O:/DTCs" "C:/ProgramData/OE/DIDB/db" en_US
python dumpDTC.py projects "C:/ProgramData/OE/MCD-Projects-E/VWMCD" "O:/DTCs" "C:/ProgramData/OE/DIDB/db" en_US

dumpFreezeFrames

Questo script esporta le "definizioni dei Freeze Frame". Esporta solo gli oggetti necessari per i record di dati estesi dei DTC - servizio 0x19, modalità 0x06.

[!TIP]

python dumpFreezeFrames.py basevariant "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "0.0.0@BV_DashBoardUDS.bv" "O:/FFs" "C:/ProgramData/OE/DIDB/db" en_US
python dumpFreezeFrames.py project "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "O:/FFs" "C:/ProgramData/OE/DIDB/db" en_US
python dumpFreezeFrames.py projects "C:/ProgramData/OE/MCD-Projects-E/VWMCD" "O:/FFs" "C:/ProgramData/OE/DIDB/db" en_US

dumpAdaptations

Questo script esporta le "definizioni di adattamento". Esporta solo gli oggetti necessari per la scrittura dei dati di calibrazione (= valori che puoi modificare nella centralina) - servizio 0x2E.

[!TIP]

python dumpAdaptations.py basevariant "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "0.0.0@BV_DashBoardUDS.bv" "O:/ADPs"
python dumpAdaptations.py project "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "O:/ADPs"
python dumpAdaptations.py projects "C:/ProgramData/OE/MCD-Projects-E/VWMCD" "O:/ADPs"

dumpCoding

Questo script esporta le "definizioni di codifica". Esporta solo gli oggetti necessari per la codifica delle varianti (Variant Coding) - servizio 0x2E, DID 0x0600.

[!TIP]

python dumpCoding.py basevariant "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "0.0.0@BV_DashBoardUDS.bv" "O:/VRCs"
python dumpCoding.py project "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "O:/VRCs"
python dumpCoding.py projects "C:/ProgramData/OE/MCD-Projects-E/VWMCD" "O:/VRCs"

dumpMWB

Questo script esporta le "definizioni MWB". Esporta solo gli oggetti necessari per gli MWB (= Messwertblöcke - blocchi di misura) - servizio 0x22.

Questa è di gran lunga la parte più importante e non standardizzata della diagnostica UDS, uno degli scopi principali di questo progetto.

[!TIP]

python dumpMWB.py basevariant "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "0.0.0@BV_DashBoardUDS.bv" "O:/MWBs"
python dumpMWB.py project "C:/ProgramData/OE/MCD-Projects-E/VWMCD/AU21X" "O:/MWBs"
python dumpMWB.py projects "C:/ProgramData/OE/MCD-Projects-E/VWMCD" "O:/MWBs"

parseMWB

Scarica lo strumento