Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ODIS-project-explorer — ODIS द्वारा उपयोग किए जाने वाले MCD Runtime Projects के लिए Python डंपर/एक्सप्लोरर | Kitploit
उपकरण/GitHubGitHub/kartoffelpflanze/odis-project-explorer
एम्बेडेड सिस्टम सुरक्षाभेद्यता विश्लेषणरिवर्स इंजीनियरिंगडीबगर्सजानकारी एकत्र करनाबाइनरी विश्लेषणफर्मवेयर विश्लेषण
GitHubkartoffelpflanze/odis-project-explorer

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

ODIS-project-explorer

ODIS द्वारा उपयोग किए जाने वाले MCD Runtime Projects के लिए Python डंपर/एक्सप्लोरर

रिपॉजिटरी देखें
3310241 साल पहलेKitploit द्वारा समीक्षित

ODIS प्रोजेक्ट एक्सप्लोरर

Nefarious Motorsports फ़ोरम थ्रेड: http://nefariousmotorsports.com/forum/index.php?topic=23836.0


इस Python प्रोजेक्ट का उद्देश्य MCD Runtime Projects (बोलचाल की भाषा में "*.db और .key फ़ाइलें") में संग्रहीत डेटा को अनपैक करना (और उपयोग करना) है।

सामान्यतः, इन फ़ाइलों का उपयोग MCD Kernel द्वारा किया जाता है, जिसका उपयोग ODIS या iDEX या कुछ और द्वारा किया जाता है। प्रत्येक ODIS इंस्टॉलेशन के साथ एक ऐप MCD-Kernel/VWMCDClient.exe प्रदान किया जाता है जिसका उपयोग प्रोजेक्ट्स के साथ बहुत निचले स्तर पर छेड़छाड़ करने के लिए किया जा सकता है।

इस डेटा का उपयोग करने के लिए, सामान्यतः कोई व्यक्ति Include_Libs और MCD-Kernel से लाइब्रेरीज़ का उपयोग करके अपना स्वयं का C++/Java ऐप लिखेगा जो ऑब्जेक्ट्स को पार्स करता है। हालाँकि, इस दृष्टिकोण के साथ कुछ समस्याएँ हैं:

  1. आपको या तो "गुप्त MAC" की गणना करने का तरीका सीखना होगा ताकि kernel अनलॉक हो सके, या .dll को क्रैक करना होगा।
  2. लगभग हर फंक्शन कॉल को गार्ड करना होगा, क्योंकि जब अनुरोधित तत्व परिभाषित नहीं होता है तो अपवाद फेंके जाते हैं।
  3. कुछ डेटाबेस तत्व प्रदान किए गए API का उपयोग करके सीधे सुलभ नहीं होते हैं, या कम से कम पहुँचना कठिन होता है।

इस टूल के साथ, आप डेटाबेस को सबसे निचले संभव स्तर से देख सकते हैं। मुझे उम्मीद है कि यह ODX, J2534, UDS और बाकी सब चीज़ों के अध्ययन के लिए उपयोगी होगा।

थोड़ी जानकारी

[!NOTE] कोई प्रोजेक्ट/डेटाबेस कभी प्रदान नहीं किया जाएगा! कृपया अपना स्वयं का लाएँ :)

इन प्रोजेक्ट्स के काम करने का तरीका यह है कि .db और .key फ़ाइलों के जोड़े "Pools" (और "PoolID" का अर्थ है बिना एक्सटेंशन के फ़ाइल का नाम) का प्रतिनिधित्व करते हैं। प्रत्येक पूल में Objects होते हैं।

किसी भी ऑब्जेक्ट को डेटा स्ट्रीम के रूप में संग्रहीत किया जाता है, जिसके बाइट्स को फ़्लैग/स्ट्रिंग्स/नंबर आदि के रूप में पढ़ा जाएगा। हर एक को अलग तरीके से संग्रहीत किया जाता है, इसलिए... Ghidra और x64dbg में बहुत समय लगाया गया। आप शायद object_loaders फ़ोल्डर के अंदर देखकर इस काम की सराहना कर सकते हैं।

मैं किसी भी स्थिति में गारंटी नहीं देता कि मैं प्रत्येक ऑब्जेक्ट प्रकार को सही ढंग से लोड कर रहा हूँ। इसके विपरीत, कई फ़ील्ड को मैंने उसी नाम से नाम दिया जो मुझे लगा कि वे दर्शाते हैं। मूल रूप से C++ लाइब्रेरी में प्रत्येक वर्ग अन्य वर्गों से विरासत में मिलता है और मुझे यह स्वीकार करना होगा कि जब डीकंपाइल किया गया तो मैं वास्तव में इसे पूरी तरह से समझ नहीं पाया।

शुरू करना

टेक्स्ट अनुवाद के लिए, HSQLDB की आवश्यकता है, जिसे केवल Java के माध्यम से उपयोग किया जा सकता है। इसलिए, JPype को स्थापित करने की आवश्यकता होगी:

pip install jpype1

प्रत्येक स्क्रिप्ट के उपयोग की जानकारी के लिए, उन्हें आर्गुमेंट '-h' के साथ कॉल करें (या बस स्रोत कोड देखें)।

जिन स्क्रिप्ट्स में टेक्स्ट अनुवाद का विकल्प है (dumpDTC और parseMWB) उन्हें डेटाबेस की आवश्यकता होगी।

  • अपने ODIS डेटा फ़ोल्डर में देखें (लगभग C:/ProgramData में), वहाँ एक DIDB/db फ़ोल्डर होना चाहिए।
  • इसमें नाम didb_Base-... के साथ एक .data फ़ाइल होनी चाहिए, जहाँ '...' एक भाषा है जैसे 'en_US'।
  • इसलिए, स्क्रिप्ट को उस फ़ोल्डर का पथ और भाषा सफ़िक्स प्रदान करें।

यदि आप ऐसा कोई डेटाबेस प्रदान नहीं करते हैं, तो dumpDTC के लिए आपके पास "अधिक विस्तृत विवरण" नहीं होगा, और parseMWB के लिए सब कुछ ODX से अपने डिफ़ॉल्ट LONG-NAME का उपयोग करेगा।

स्क्रिप्ट जानकारी

dumpProject / dumpAllProjects

ये मॉड्यूल प्रत्येक Pool (प्रत्येक Project से) से प्रत्येक Object को डंप करेंगे। कृपया ध्यान दें कि सभी प्रोजेक्ट्स को डंप करने के लिए कुछ दसियों गीगाबाइट की आवश्यकता होगी और इसमें कुछ घंटे लगेंगे। मैंने व्यक्तिगत रूप से एक अलग पार्टीशन के साथ काम किया जिसे मैं सभी फ़ाइलों को जल्दी से हटाने के लिए फ़ॉर्मेट कर सकता था।

वर्तमान स्थिति में, मेरे सभी प्रोजेक्ट बिना किसी त्रुटि के डंप हो जाते हैं। मैंने 2020 और 2022 के प्रोजेक्ट आज़माए। यह संभव है कि पुराने/नए प्रोजेक्ट विभिन्न कारणों से डंप होने में विफल होंगे, सबसे अधिक संभावना है कि अनहैंडल किए गए ऑब्जेक्ट प्रकार, या हैंडल किए गए ऑब्जेक्ट प्रकारों में अनहैंडल किए गए फ़ील्ड (जिन्हें मैंने हार्डकोड किया क्योंकि वे सभी प्रोजेक्ट्स में समान थे)।

[!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

यह स्क्रिप्ट "ECU-VARIANT मैचिंग पैटर्न" डंप करेगी, जो "वैरिएंट पहचान" प्रक्रिया के लिए आवश्यक है (ECU के लिए उपयुक्त फ़ाइल का चयन करना)।

[!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

यह स्क्रिप्ट "DTC परिभाषाएँ" डंप करेगी। यह केवल DTCs (= डायग्नोस्टिक ट्रबल कोड) के लिए आवश्यक ऑब्जेक्ट डंप करेगी - सेवा 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

यह स्क्रिप्ट "Freeze Frame परिभाषाएँ" डंप करेगी। यह केवल DTC विस्तारित डेटा रिकॉर्ड के लिए आवश्यक ऑब्जेक्ट डंप करेगी - सेवा 0x19, मोड 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

यह स्क्रिप्ट "Adaptation परिभाषाएँ" डंप करेगी। यह केवल कैलिब्रेशन डेटा लिखने के लिए आवश्यक ऑब्जेक्ट डंप करेगी (= वे मान जिन्हें आप ECU में बदल सकते हैं) - सेवा 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

यह स्क्रिप्ट "Coding परिभाषाएँ" डंप करेगी। यह केवल वैरिएंट कोडिंग के लिए आवश्यक ऑब्जेक्ट डंप करेगी - सेवा 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

यह स्क्रिप्ट "MWB परिभाषाएँ" डंप करेगी। यह केवल MWBs (= Messwertblöcke - मापने वाले ब्लॉक) के लिए आवश्यक ऑब्जेक्ट डंप करेगी - सेवा 0x22।

यह UDS डायग्नोस्टिक्स का अब तक का सबसे महत्वपूर्ण और गैर-मानकीकृत हिस्सा है, जो इस प्रोजेक्ट के मुख्य उद्देश्यों में से एक है।

[!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

यह स्क्रिप्ट एक UDS सेवा 0x22 प्रतिक्रिया लेगी और इसे MCD Kernel के समान पार्स करेगी। इसने शायद सबसे अधिक काम लिया, ऑब्जेक्ट लोडर के अलावा।

टूल डाउनलोड करें