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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/xun404/spd_dump-macos
एंड्रॉइड सुरक्षाएम्बेडेड सिस्टम सुरक्षाशोषणहार्डवेयर हैकिंगमोबाइल सुरक्षाफर्मवेयर विश्लेषण
GitHubxun404/spd_dump-macos

spd_dump-macos

macOS के लिए UNISOC BootROM/FDL फ्लैशर: CVE-2022-38694 exec_addr2 के साथ पैच किया गया spd_dump, प्रोटोकॉल संदर्भ, पार्टीशन नियम, बैकअप सत्यापन (UMS9621)

रिपॉजिटरी देखें
471 महीना पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

spd_dump for macOS

English | सरलीकृत चीनी

UNISOC (स्प्रेडट्रम) BootROM/FDL फ्लैशिंग टूल का macOS पोर्ट। ilyakurdyukov/spreadtrum_flash (MIT) पर आधारित, बंद-स्रोत spd_dump के exec_addr2 (CVE-2022-38694 सिग्नेचर सत्यापन बायपास) की कमी को पूरा करता है, और macOS (arm64 + libusb) पर पूरी श्रृंखला को पूर्ण करता है:

BootROM → CVE 越界写 → FDL1 → FDL2 → GPT 解析 → 分区读写 → reset

सत्यापन प्लेटफ़ॉर्म: UMS9621 (T158), Android 13, kernel 5.15, GKI (init_boot) आर्किटेक्चर। UMS9620 परिवार पता-संगत है; अन्य SoC के लिए अनुकूलन देखें।

निर्माण

निर्भरताएँ: Xcode CLT, brew install libusb।

./scripts/build-macos.sh   # 产出 ./spd_dump

उपयोग

डाउनलोड मोड में प्रवेश करना

बंद/पावर-ऑफ अवस्था में Reset (या डिवाइस मॉडल के अनुरूप की-संयोजन) दबाए रखते हुए USB जोड़ें; डिवाइस 1782:4d00 के रूप में enumerate होता है। BootROM केवल enumerate होने के लगभग 20 सेकंड के भीतर प्रतिक्रिया देता है, उसके बाद मौन रहता है (USB अभी भी सक्रिय है); स्वचालन के लिए डिवाइस के "अनुपस्थित → उपस्थित" edge trigger का उपयोग करें (scripts/runner.sh देखें)।

FDL2 लोड करना और पार्टीशन टेबल पढ़ना

./spd_dump --wait 3 exec_addr2 0x65017f08 verbose 1 \
    fdl fdl1-dl.bin 0x65000800 \
    fdl fdl2-dl.bin 0xbefffe00 \
    disable_transcode partition_list gpt.xml
पैरामीटरविवरण
exec_addr2 <addr>CVE बायपास, custom_exec_no_verify_<addr>.bin स्वतः लोड करता है; कार्यान्वयन
fdl <file> <addr>FDL इमेज और SoC-संबंधित SRAM लोड पता
disable_transcodeहर नई प्रक्रिया की शुरुआत में एक बार भेजा जाना चाहिए (स्थिति प्रक्रियाओं के बीच बनी रहती है)

बैकअप

python3 scripts/backup_gen.py gpt.xml backup/ --img-dir data/
./spd_dump --wait 3 verbose 0 disable_transcode $(cat backup_args.txt)

backup_gen.py GPT के अनुसार read_part अनुक्रम उत्पन्न करता है (ब्रेकपॉइंट से जारी रखना; GPT size की इकाई MB है), और vbmeta* के लिए AVB flags=3 ऑफ़लाइन सेट करता है (verity 0 के समतुल्य)।

फ्लैशिंग

python3 scripts/flash_gen.py gpt.xml data/ flash_ops.txt
N=$(grep -c 'write_part\|erase_part' flash_ops.txt)
{ yes yes | head -n $N; sleep 3600; } | ./spd_dump --wait 3 verbose 0 \
    disable_transcode $(cat flash_ops.txt | tr '\n' ' ')

flash_gen.py में अंतर्निहित पार्टीशन नियम हैं (runtimenv को erase में बदलना, fixnv/calinv को छोड़ना, स्लॉट एलियस न होने पर mtime द्वारा डीडुप्लिकेशन), और अंत में erase_part userdata + reset जोड़ता है।

प्रोटोकॉल की मुख्य बातें

विस्तृत जानकारी docs/protocol-notes.md में:

  • कस्टम कमांड को विकल्प-पार्सिंग लूप में उपभोग किया जाना चाहिए; verbose 1 उस लूप को समय से पहले समाप्त कर देता है
  • FDL2 सत्र प्रक्रियाओं में जीवित रहता है: प्रक्रिया से बाहर निकलने पर FDL2 समाप्त नहीं होता, पार्टीशन कमांड बैचों में चलाए जा सकते हैं
  • 0x8A (DOWN_SIZE_ERROR) एक साथ इनके लिए उपयोग होता है: संरक्षित पते पर स्वतंत्र डाउनलोड, runtimenv लेखन, अत्यधिक बड़े रीड ब्लॉक
  • रीड ब्लॉक आकार की ऊपरी सीमा 0xffff से कम है, डिफ़ॉल्ट 4096
  • NV पार्टीशन परिवार (nr_fixnv1) को नाम-आधारित एड्रेसिंग द्वारा पढ़ने से सत्र हैंग हो जाता है; नियम देखें docs/partition-rules.md

बैकअप सत्यापन

सत्यापन आइटममान
आकारGPT के साथ एक-एक करके तुलना (बाइट-सटीक)
boot / init_bootANDROID! @0
vendor_bootVNDRBOOT @0
vbmeta परिवारAVB0 @0, flags @0x78
splloader/trustos/uboot/fdlDHTB @0
supergDla @4096 और @8192 (ज्यामितीय दोहरी प्रति), पहला 4K शून्य रखा गया
NVNV (0x4E56) @0 या @0x200

स्टैटिक पार्टीशन (dtb आदि) की ज्ञात समान-मॉडल इमेज के साथ md5 क्रॉस-तुलना करके रीड श्रृंखला की शुद्धता सत्यापित की जा सकती है।

अन्य SoC के लिए अनुकूलन

आइटमस्रोत
fdl1/fdl2 लोड पताडिवाइस मॉडल का pac फर्मवेयर XML (SPD Research Tool से अनपैक किया गया)
CVE blob और स्टैक पताTomKing062/CVE-2022-38694 soc/<chip>/
fdl इमेजडिवाइस मॉडल के आधिकारिक फर्मवेयर से निकाली गई (DHTB सिग्नेचर हेडर)

संदर्भ

  • ilyakurdyukov/spreadtrum_flash — अपस्ट्रीम (MIT), src/ में पैच स्रोत कोड है
  • TomKing062/CVE-2022-38694_unlock_bootloader — CVE सिद्धांत और विभिन्न SoC सामग्री
  • YC-nw/SPRDClientCore — प्रोटोकॉल स्थिरांक और पार्टीशन नियमों का संदर्भ
  • NCC Group — UNISOC ROM Vulnerabilities

बिना स्क्रीन वाले डिवाइस के लिए Magisk su पूर्व-प्राधिकरण: docs/headless-magisk-su.md।

BootROM-स्तरीय ऑपरेशन में ब्रिक होने का जोखिम है; पहले बैकअप लें, जोखिम स्वयं वहन करें (AS IS)।

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