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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
MK4001MTD-USB-Bridge — RP2040 फ़र्मवेयर जो एक Toshiba MK4001MTD 0.85" SDIO microdrive को USB mass storage डिवाइस के रूप में ब्रिज करता है, पूरे SDIO-ATA प्रोटोकॉल स्टैक को स्क्रैच से लागू करता है, जिसमें PIO-accelerated reads/writes और बैड सेक्टर रिकवरी शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/will127534/mk4001mtd-usb-bridge
एम्बेडेड सिस्टम सुरक्षारिवर्स इंजीनियरिंगडेटा रिकवरीहार्डवेयर हैकिंगहार्डवेयर सुरक्षाहार्डवेयर और IoT सुरक्षाफर्मवेयर विश्लेषण
GitHub

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
will127534/mk4001mtd-usb-bridge

MK4001MTD-USB-Bridge

RP2040 फ़र्मवेयर जो एक Toshiba MK4001MTD 0.85" SDIO microdrive को USB mass storage डिवाइस के रूप में ब्रिज करता है, पूरे SDIO-ATA प्रोटोकॉल स्टैक को स्क्रैच से लागू करता है, जिसमें PIO-accelerated reads/writes और बैड सेक्टर रिकवरी शामिल हैं।

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

MK4001MTD USB ब्रिज

RP2040 Pico फर्मवेयर जो Toshiba MK4001MTD 0.85" SDIO माइक्रोड्राइव को USB मास स्टोरेज डिवाइस के रूप में ब्रिज करता है। _DSC1170 _DSC1354

MK4001MTD एक 4 GB माइक्रोड्राइव है जो मूल रूप से Nokia N91 म्यूज़िक फ़ोन और कुछ अन्य डिवाइसों, जैसे MP3 प्लेयर या USB ड्राइव, में उपयोग किया जाता था, जब फ्लैश स्टोरेज अभी भी काफी महंगा था।

आपने परिचय देखे होंगे जो दावा करते हैं कि यह ड्राइव MMC प्रोटोकॉल का उपयोग करता है, लेकिन यह वास्तव में गलत है। मैं कुछ समय से इसकी जांच कर रहा हूं: मैंने 8-बिट MMCplus कार्ड रीडर बनाने की कोशिश की और अलग-अलग SD/MMC रीडर का परीक्षण किया, लेकिन सफलता नहीं मिली। अंतिम उपाय के रूप में, मैंने एक Nokia N91 खरीदा ताकि लॉजिक ट्रेस कैप्चर कर सकूं और पुष्टि कर सकूं कि यह वास्तव में किस प्रोटोकॉल का उपयोग करता है।

यहाँ वह फोटो है जब मैं इसे अपने 8bit-MMCPlus रीडर बोर्ड के साथ उपयोग करने की कोशिश कर रहा था, और पता चला कि यह MMC नहीं है :( _DSC0484

इसलिए मैंने N91 लेकर ट्रेस इकट्ठा किए: _DSC1093 _DSC1131

मानक ATA/CF माइक्रोड्राइव के विपरीत, यह CMD52/CMD53 के माध्यम से टनल किए गए ATA कमांड के साथ SDIO इंटरफ़ेस का उपयोग करता है। इस प्रोटोकॉल का समर्थन करने वाला कोई मौजूदा ड्राइवर नहीं है, इसलिए यह फर्मवेयर स्क्रैच से पूरा स्टैक लागू करता है।

यह मेरे लिए आश्चर्यजनक था, क्योंकि CE-ATA नामक एक SDIO-से-ATA मानक मौजूद है। लेकिन अगर आप रिलीज़ टाइमलाइन को ध्यान से देखें, तो CE-ATA इस ड्राइव के बाद आया। नतीजतन, यह ड्राइव पूरी तरह से SDIO कमांड पर निर्भर करता है, और CE-ATA उपलब्ध नहीं है। CE-ATA में दो नए कमांड CMD60/CMD61 हैं और यह CMD12/39 का उपयोग करता है, लेकिन आप ट्रेस से देख सकते हैं कि यह उनमें से किसी का भी उपयोग नहीं कर रहा है।

दूसरा हार्डवेयर बिंदु जिसका उल्लेख करना है, वह यह है कि एक और गलत जानकारी—जो यह दावा करती है कि यह 8-बिट MMCPlus कार्ड है—न केवल झूठी है, बल्कि पिनआउट MMC मानक का पालन नहीं करता है। आप Nokia N91 सर्विस मैनुअल पा सकते हैं जिसमें पिनआउट के बारे में कुछ दस्तावेज़ है: जबकि पिन नंबरिंग MMCPlus मानक का पालन करती है, पिन मैपिंग ऐसा नहीं करती। यह एक महत्वपूर्ण विवरण है यदि आप इसे स्वयं वायर कर रहे हैं: यह उसी MMC कनेक्टर का उपयोग करता है, लेकिन पिन मैपिंग अलग है, हार्डवेयर अनुभाग में और अधिक जानकारी।

अंत में, ध्यान दें कि इसे Claude/OpenClaw के साथ सह-विकसित किया गया है। मैंने मैन्युअल रूप से लॉजिक ट्रेस एकत्र किए और OpenClaw के लिए विकास पर पुनरावृत्ति करने के लिए एक क्लोज्ड-लूप टेस्ट स्टेशन स्थापित किया—ट्रेस का विश्लेषण करना और सुविधाओं को लागू करना। दस्तावेज़ीकरण मुख्य रूप से Claude द्वारा लिखा जाएगा; मैं इनलाइन अपने नोट्स भी जोड़ूंगा। मैंने दस्तावेज़ीकरण को स्वयं पढ़ा और दोबारा जांचा है, और यह विश्वसनीय और समझने में आसान होना चाहिए।

N91 ट्रेस पर विश्लेषण के बारे में अंतर्दृष्टि के लिए, यह /docs/N91_TRACE_ANALYSIS.md के अंतर्गत है, मैंने वहां N91 सर्विस मैनुअल के साथ रॉ लॉजिक ट्रेस भी डाल दिए हैं।

ब्लॉग पोस्ट में और देखें: https://www.willwhang.dev/Reading-MK4001MTD/
इसे क्रियाशील देखें: https://youtu.be/GC4xil3_Bbc

स्थिति

PIO-त्वरित रीड/राइट और आइडल पावर मैनेजमेंट के साथ पूरी तरह से कार्यात्मक USB मास स्टोरेज।

मीट्रिकमान
पढ़ने की गति~985 kB/s (USB फुल-स्पीड द्वारा सीमित)
लिखने की गति~920 kB/s (USB फुल-स्पीड द्वारा सीमित, विज्ञापित राइट कैश)
कच्ची SDIO-साइड गति~2.35 MB/s पढ़ना / ~2.15 MB/s लिखना (ड्राइव-सीमित)
क्षमता3.75 GB (7,862,400 सेक्टर)
फाइलसिस्टमFAT32 सत्यापित (mount/unmount/fsck साफ)
डेटा अखंडतालिखें+पढ़ें सत्यापित; सभी 4 DAT लाइनों पर प्रति-ब्लॉक CRC16
आइडल स्टैंडबाय5 s आइडल या USB सस्पेंड → STANDBY IMMEDIATE + पावर गेट

यह कैसे काम करता है

आर्किटेक्चर

USB Host ←→ USB MSC (TinyUSB) ←→ ATA Layer ←→ SDIO Layer (PIO) ←→ MK4001MTD

फर्मवेयर में चार परतें हैं:

  1. USB MSC (msc_device.c) — TinyUSB मास स्टोरेज क्लास। SCSI READ(10)/WRITE(10) को ATA सेक्टर ऑपरेशन में अनुवादित करता है। 32 KB EP बफर, प्रति USB ट्रांसफर 64 सेक्टर तक बैचिंग। ड्राइव I/O दोनों दिशाओं में USB के साथ ओवरलैप किया जाता है, एक वास्तविक ATA-USB ब्रिज की तरह कैशिंग डिस्क के साथ: एक अनुक्रमिक-रीड प्रीफेचर अगले हिस्से को लाता है जबकि पिछला हिस्सा होस्ट को स्ट्रीम होता है, और राइट्स को स्टेज किया जाता है और फ्लश किया जाता है जबकि USB अगला टुकड़ा प्राप्त करता है। डिवाइस अपने राइट कैश का विज्ञापन करता है (कैशिंग मोड पेज, WCE=1 — होस्ट "राइट कैश: सक्षम" रिपोर्ट करते हैं और fsync/unmount/suspend पर SYNCHRONIZE CACHE जारी करते हैं, जिसे फर्मवेयर मानता है)। एक असफल बैकग्राउंड फ्लश अगले WRITE या SYNCHRONIZE CACHE पर MEDIUM ERROR के रूप में सामने आता है; ज्ञात-खराब सेक्टरों पर लिखना एक सख्त सिंक्रोनस पथ लेता है।

  2. ATA-over-SDIO (ata_sdio.c) — SDIO फ़ंक्शन 1 एड्रेस स्पेस में CMD52 के माध्यम से मैप किए गए ATA रजिस्टरों में लिखकर और CMD53 के माध्यम से सेक्टर डेटा स्थानांतरित करके ATA कमांड (IDENTIFY, READ SECTORS, WRITE SECTORS) लागू करता है। CMD, डेटा और ATA स्तरों पर 3-स्तरीय रीट्री लॉजिक।

  3. PIO SDIO (sdio_pio.c, sdio.pio) — RP2040 के PIO पेरीफेरल का उपयोग करके हार्डवेयर-त्वरित SDIO (4-बिट बस 10 MHz पर, इनपुट सिंक्रोनाइज़र को बायपास करके प्रति बिट 4 PIO चक्र)। तीन PIO प्रोग्राम डायनामिक प्रोग्राम स्वैपिंग के माध्यम से एकल स्टेट मशीन साझा करते हैं:

    • CMD tx/rx (24 निर्देश) — SDIO कमांड भेजता है और प्रतिक्रियाएँ प्राप्त करता है
    • DAT पढ़ें (12 निर्देश) — बाइट-स्वैपिंग DMA (कोई CPU रीपैक नहीं) के माध्यम से 4-बिट DAT बस से डेटा ब्लॉक पढ़ता है; ब्लॉक N का CRC सत्यापित होता है जबकि ब्लॉक N+1 स्ट्रीम होता है
    • DAT लिखें (14 निर्देश) — DMA के माध्यम से 4-बिट DAT बस पर डेटा ब्लॉक लिखता है, अंतर्निहित CRC स्थिति रिसेप्शन और बिजी-वेट के साथ; ब्लॉक N+1 की निबल स्ट्रीम बनती है जबकि ब्लॉक N स्थानांतरित होता है
  4. पिन/पावर (sdio_hw.c) — GPIO आरंभीकरण और HDD पावर नियंत्रण। सभी SDIO संचार PIO का उपयोग करता है।

मानव नोट्स: दिलचस्प बात यह है कि Claude PIO में SDIO लागू करने के लिए वास्तव में अनिच्छुक था, और PIO और बिट-बैंगिंग के बीच आगे-पीछे जाने में बहुत सारे विकास चक्र बर्बाद हुए।

SDIO-ATA प्रोटोकॉल

MK4001MTD एक I/O फ़ंक्शन वाले SDIO कार्ड के रूप में प्रस्तुत होता है। मानक SDIO कार्ड आरंभीकरण (CMD5/CMD3/CMD7) बस सेट करता है, फिर ATA रजिस्टरों तक SDIO कमांड के माध्यम से पहुंचा जाता है:

रजिस्टर एक्सेस (CMD52): प्रत्येक ATA रजिस्टर फ़ंक्शन 1 एड्रेस पर मैप किया गया है:

पतारजिस्टरउपयोग
0x00DATAसेक्टर डेटा के लिए CMD53 लक्ष्य
0x01ERR/FEATत्रुटि (पढ़ें) / फीचर (लिखें)
0x02SECCOUNTसेक्टर गणना
0x03LBA_LOLBA बिट्स 0-7
0x04LBA_MIDLBA बिट्स 8-15
0x05LBA_HILBA बिट्स 16-23
0x06DEV/HEADडिवाइस/हेड + LBA बिट्स 24-27
0x07CMD/STATUSकमांड (लिखें) / स्थिति (पढ़ें)

डेटा स्थानांतरण (CMD53): सेक्टर डेटा को DATA रजिस्टर (पता 0x00) को लक्षित करते हुए ब्लॉक मोड में CMD53 जारी करके स्थानांतरित किया जाता है। मल्टी-सेक्टर रीड के लिए, block_count=N के साथ एक एकल CMD53 N × 512 बाइट्स को एक SDIO मल्टी-ब्लॉक लेनदेन में स्थानांतरित करता है।

इंटरप्ट सिग्नलिंग: ड्राइव SDIO इंटरप्ट (CCCR रजिस्टर 0x05 में INT_PENDING बिट 1) को सक्रिय करके सेक्टर तत्परता का संकेत देता है। ATA STATUS रजिस्टर पढ़ने से इंटरप्ट साफ हो जाता है।

पढ़ने का पथ (मल्टी-ब्लॉक PIO)

16-सेक्टर रीड के लिए:

1. PIO CMD52 के माध्यम से ATA रजिस्टर लिखें:
     SECCOUNT=16, LBA_LO/MID/HI, DEV/HEAD=0xE0, CMD=0x20

2. CMD52 के माध्यम से STATUS को पोल करें जब तक DRQ (बिट 3) सेट न हो
टूल डाउनलोड करें