
pwnage24mtk — Updated!
MTK उपकरणों के लिए प्रमाणपत्र शोषण.MTK प्रमाणपत्र सत्यापन प्रक्रिया में एक तर्क दोष है.CVE-2023-20696 के समान.
pwnage24mtk
MTK उपकरणों के लिए सर्ट एक्सप्लॉट। MTK सर्ट सत्यापन प्रक्रिया में एक तर्क दोष है। CVE-2023-20696 के समान। पैच किया गया। CVE-2023-20696 CVE-2025-20730
आर्किटेक्चर का पता लगाने में कुछ समस्याएं हैं। जब मैं खाली होऊंगा तब इसे ठीक किया जाएगा। या कोई भी पुल रिक्वेस्ट कर सकता है। यह एक वाइब-कोडेड संस्करण है, और मैं इसे बाद में फिर से लिखूंगा। लेकिन अभी यह उपयोग करने योग्य है।
अस्वीकरण
यह प्रोजेक्ट केवल अनुसंधान के लिए उपयोग किया जाता है। इसे उपयोग करने से पहले सुनिश्चित करें कि आपके पास अधिकार है। अवैध उपयोग की अनुमति नहीं है। इस एक्सप्लॉट का उपयोग भुगतान सेवाएं प्रदान करने के लिए अनुमति नहीं है।
MTK उपकरणों के लिए, प्रीलोडर bl2_ext/lk/atf को सत्यापित करता है और फिर उस पर कूदता है।
ये इमेज ASN.1 सर्ट से हस्ताक्षरित हैं।
लेकिन ASN.1 पार्सिंग प्रक्रिया में एक तर्क दोष है।
पुराने V5/V6 उपकरणों के लिए, सर्ट सामग्री की पहचान bypass_mode 1 द्वारा की जाती है।
इस मोड में, किसी भी ऑब्जेक्ट में प्रवेश किया जाएगा।
इसलिए हम 0x3 (बिट स्ट्रिंग) ऑब्जेक्ट के साथ एक नकली सर्ट बना सकते हैं।
नकली सर्ट अपरिवर्तित है। इसलिए यह सत्यापन पास कर सकता है।
असली सर्ट नकली सर्ट के नीचे है। और हम इमेज हैश और इमेज hdr हैश को असली सर्ट की शुरुआत में रख सकते हैं।
नए V6 उपकरणों के लिए, सर्ट सामग्री की पहचान bypass_mode 0 द्वारा की जाती है।
इस मोड में, 0x30 को छोड़कर किसी भी ऑब्जेक्ट को छोड़ दिया जाएगा।
इसलिए हम इमेज हैश और इमेज hdr हैश को सर्ट की शुरुआत में रख सकते हैं।
फिर अन्य चीजों को अपरिवर्तित रखें।
तब हम इमेज सामग्री को संशोधित कर सकते हैं।
इस प्रकार हम EL3 नियंत्रण प्राप्त करते हैं।
आप lk या atf या gz के सत्यापन को हटाने के लिए BL2_EXT को पैच कर सकते हैं।
और फिर lk_main_dtb के सत्यापन को हटाने के लिए LK को पैच करें (अन्यथा यह क्रैश हो जाएगा)
और आपको LK में set_lock_state सहित सभी बूटलोडर लॉक को हटाने के लिए पैच करना होगा ताकि वापस लॉक होने या क्रैश से बचा जा सके।
उपयोग:
python parse-part-img.py [मूल इमेज फ़ाइल] --split -o out
फिर आप अलग-अलग इमेज देख सकते हैं (जैसे lk, bl2_ext, lk_main_dtb, aee)
पैच करने के बाद नए v6 उपकरणों के लिए python sign_mtk_cert.py [एकल इमेज फ़ाइल] -w पुराने V6 उपकरणों / V5 उपकरणों के लिए python sign_mtk_cert.py [एकल इमेज फ़ाइल] -w --legacy
फिर नई हस्ताक्षरित इमेज को वापस डालें
python build-part-img.py replace [मूल इमेज फ़ाइल] --name [वह एकल इमेज नाम जिसे आप वापस डालना चाहते हैं] -- file [नई हस्ताक्षरित एकल इमेज]
उदाहरण:
