
Allwinner V3 आधारित IoT कैमरों के लिए रिवर्स इंजीनियरिंग अनुसंधान और कस्टम फर्मवेयर, जिसमें फर्मवेयर पार्सर, एक AVIOCTRL क्लाइंट, और अनधिकृत OTA फर्मवेयर प्रतिस्थापन के लिए CVE-2026-52656 प्रूफ ऑफ कॉन्सेप्ट शामिल हैं।

पुर्तगाली (ब्राज़ील) में पढ़ें
Allwinner V3 संस्करण वाले SJCAM SJ4000 Air के लिए रिवर्स इंजीनियरिंग नोट्स, फर्मवेयर टूलिंग, प्रूफ-ऑफ-कॉन्सेप्ट कोड और एक कस्टम फर्मवेयर इंटरफ़ेस।
शोध आलेख
इस रिपॉजिटरी में शोध के दौरान निर्मित कोड और कलाकृतियाँ शामिल हैं। पूरा आलेख पहले फर्मवेयर डंप से लेकर Lelouch कस्टम फर्मवेयर तक की जाँच की व्याख्या करता है।
यह कार्य एक साधारण प्रश्न से शुरू हुआ: बिना दस्तावेज़ीकरण, स्रोत कोड या विक्रेता समर्थन के एक सस्ते एक्शन कैमरे पर मैं कितना नियंत्रण प्राप्त कर सकता हूँ?
कैमरा वास्तव में Allwinner V3 SoC और भारी रूप से संशोधित Android 4.4 सिस्टम का उपयोग करता निकला। इसका मुख्य एप्लिकेशन, sdv, Binder के माध्यम से स्वामित्व वाली कैमरा और डिस्प्ले सेवाओं से संवाद करता है, MiniGUI से इंटरफ़ेस प्रस्तुत करता है, फर्मवेयर अपडेट के लिए एक HTTP सर्वर उजागर करता है, और एक स्वामित्व प्रोटोकॉल के माध्यम से SJCAM Zone एप्लिकेशन के साथ संचार करता है।
रिपॉजिटरी फर्मवेयर निष्कर्षण से sdv के कार्यशील प्रतिस्थापन तक के पथ का दस्तावेजीकरण करती है। इसमें शोध के दौरान सामने आए फर्मवेयर प्रारूपों के लिए उपकरण, रिवर्स किए गए बाइनरी के लिए IDA डेटाबेस, एक AVIOCTRL क्लाइंट, Lelouch कस्टम फर्मवेयर स्रोत और CVE-2026-52656 से जुड़ा प्रूफ ऑफ कॉन्सेप्ट शामिल है।
कोड ST7789V डिस्प्ले कंट्रोलर और GC4653 इमेज सेंसर वाले शोध किए गए Allwinner V3 बोर्ड को लक्षित करता है। Novatek NT9665X पर आधारित पुरानी SJ4000 इकाइयाँ केवल पहले के शोध के भाग के रूप में शामिल हैं और एक अलग फर्मवेयर प्रारूप का उपयोग करती हैं। केवल उत्पाद नाम संगतता स्थापित करने के लिए पर्याप्त नहीं हैं।
Lelouch कैमरे के मूल sdv निष्पादन योग्य के लिए एक प्रतिस्थापन इंटरफ़ेस है। इसे फर्मवेयर से प्राप्त स्वामित्व लाइब्रेरियों के विरुद्ध बनाया गया है और यह मूल एप्लिकेशन के समान आंतरिक इंटरफ़ेस का उपयोग करता है।
वर्तमान कार्यान्वयन में शामिल हैं:
HerbCamera और CedarDisplay इंटरफ़ेस के माध्यम से कैमरा प्रीव्यूwpa_supplicant के कस्टम ARMv7 बिल्ड का उपयोग करके Wi-Fi स्टेशन मोडLelouch एक पूर्ण वितरण या SJ4000 के रूप में बेचे जाने वाले हर उत्पाद के लिए सामान्य फर्मवेयर नहीं है। यह शोध की गई Allwinner V3 इकाई द्वारा उपयोग की जाने वाली लाइब्रेरियों, कर्नेल, सेवाओं, पार्टीशन लेआउट, डिस्प्ले कंट्रोलर, इमेज सेंसर और बोर्ड कॉन्फ़िगरेशन पर निर्भर करता है।
कुछ निर्देशिकाओं में डिवाइस से प्राप्त तृतीय-पक्ष या स्वामित्व सामग्री है। उनकी उपस्थिति अंतर-संचालन क्षमता और सुरक्षा अनुसंधान के लिए है और यह उन घटकों को ओपन सोर्स नहीं बनाती है।
बिल्ड का परीक्षण x86-64 Linux पर किया गया। आपको Python 3, GNU Make, Git, एक C/C++ बिल्ड वातावरण और प्रारंभिक टूलचेन डाउनलोड के लिए नेटवर्क एक्सेस की आवश्यकता है।
git clone https://github.com/keowu/sjcam.git
cd sjcam/Lelouch
python3 prepare_build.py
prepare_build.py एक पिन किया हुआ Android API स्तर 14 sysroot और ARM arm-linux-androideabi-4.6 क्रॉस-कंपाइलर Lelouch/android_compilers/ में डाउनलोड करता है। फिर यह संशोधित स्टैटिक wpa_supplicant का निर्माण करता है और make चलाता है। डाउनलोड की गई कंपाइलर फ़ाइलें और उत्पन्न बाइनरी Git द्वारा अनदेखी की जाती हैं।
परिणामी फ़ाइलें हैं:
Lelouch/Lelouch
Lelouch/wpa_supplicant
C++ स्रोतों को बदलने के बाद पुनर्निर्माण के लिए:
cd Lelouch
make clean
make
उत्पन्न Lelouch बाइनरी निकाले गए रूट फाइलसिस्टम में /bin/sdv को प्रतिस्थापित करने के लिए है। Wi-Fi स्टेशन मोड कैमरे के SD कार्ड पर /mnt/extsd/sta/wpa_supplicant पर निर्मित wpa_supplicant की भी अपेक्षा करता है।
प्रयोगात्मक फेस डिटेक्शन कोड उत्पन्न कैस्केड फ़ाइल को यहाँ खोजता है:
/mnt/extsd/frontalface.casc
रिपॉजिटरी में पूर्व-निर्मित कैस्केड और इसे बनाने के लिए उपयोग किया जाने वाला कन्वर्टर शामिल है:
cd Lelouch/gen_cascade
python3 gen_cascade.py haarcascade_frontalface_alt2.xml frontalface.casc
संपूर्ण निष्कर्षण, रूट फाइलसिस्टम प्रतिस्थापन, रीपैकिंग और LiveSuit फ्लैशिंग प्रक्रिया इस पृष्ठ के शीर्ष पर लिंक किए गए शोध आलेख में प्रलेखित है।
सभी पार्सर प्रवेश बिंदु Python 3 स्क्रिप्ट हैं जिनमें अंतर्निहित --help आउटपुट है और कोई तृतीय-पक्ष Python निर्भरता नहीं है।
बाहरी LiveSuit फर्मवेयर इमेज को पढ़ता है, उसकी फ़ाइलें निकालता है, और निकाली गई निर्देशिका से एक इमेज का पुनर्निर्माण करता है।
python3 "Reversing Scripts/AllWinner IMAGEWTY - ROM Parser/main.py" info firmware.img
python3 "Reversing Scripts/AllWinner IMAGEWTY - ROM Parser/main.py" extract firmware.img -o image_dump
python3 "Reversing Scripts/AllWinner IMAGEWTY - ROM Parser/main.py" repack image_dump rebuilt.img
IMAGEWTY इमेज के अंदर पाए जाने वाले full_img.fex कंटेनर का निरीक्षण, निष्कर्षण और रीपैक करता है।
python3 "Reversing Scripts/AllWinner EGON - Firmware Parser/main.py" info full_img.fex
python3 "Reversing Scripts/AllWinner EGON - Firmware Parser/main.py" extract full_img.fex -o egon_dump
python3 "Reversing Scripts/AllWinner EGON - Firmware Parser/main.py" pack egon_dump \
--original full_img.fex \
-o rebuilt_full_img.fex
पैकर मूल फ़ाइल को टेम्पलेट के रूप में उपयोग करता है ताकि मूल लेआउट और मेटाडेटा को संरक्षित किया जा सके जबकि पार्टीशन बदले जाते हैं।
पुराने Novatek-आधारित SJ4000 फर्मवेयर द्वारा उपयोग किए जाने वाले BCL1 कंटेनर को डीकंप्रेस करता है और एम्बेडेड एसेट्स और फर्मवेयर अनुभागों के लिए परिणाम को स्कैन कर सकता है।
python3 "Reversing Scripts/Novatek もな BCL1 - Firmware Parser/main.py" \
"Firmwares Files/OLD_SJCAM_Novatek_NT9665X/SJCAM001.bin" \
-o firmCode.bin \
--extract
ウタ.py पोर्ट 6666 पर कैमरे को नियंत्रित करने के लिए मोबाइल एप्लिकेशन द्वारा उपयोग किए जाने वाले स्वामित्व TCP प्रोटोकॉल को लागू करता है। यह केवल Python मानक लाइब्रेरी का उपयोग करके कैमरे के लॉगिन अनुक्रम, कीपअलाइव संदेश, IOCTRL फ्रेम, फ़ाइल स्थानांतरण और वीडियो स्ट्रीम अनुरोधों को संभालता है।
अपने कंप्यूटर को कैमरे के Wi-Fi नेटवर्क से कनेक्ट करें और चलाएँ:
python3 "AVIOCTRL Script/ウタ.py"
डिफ़ॉल्ट लक्ष्य 192.168.100.1:6666 है। आवश्यकता पड़ने पर एक अलग पता प्रदान किया जा सकता है:
python3 "AVIOCTRL Script/ウタ.py" --host 192.168.100.1 --port 6666 --debug
इंटरैक्टिव क्लाइंट बैटरी और कॉन्फ़िगरेशन पढ़ सकता है, SD कार्ड का निरीक्षण कर सकता है, फ़ोटो ले सकता है, रिकॉर्डिंग शुरू या बंद कर सकता है, फ़ाइलों को सूचीबद्ध, अपलोड, डाउनलोड या हटा सकता है, थंबनेल का अनुरोध कर सकता है, Wi-Fi कॉन्फ़िगर कर सकता है, वीडियो स्ट्रीम का अनुरोध कर सकता है और मैन्युअल IOCTRL कमांड भेज सकता है।
SD कार्ड को फ़ॉर्मेट करना, फ़ाइलें हटाना, Wi-Fi सेटिंग्स बदलना और फ़ैक्टरी रीसेट करना कैमरे को संशोधित करते हैं। उन कमांड्स का उपयोग केवल अपने स्वामित्व वाले हार्डवेयर और डेटा पर करें।
शोधित फर्मवेयर कैमरा हॉटस्पॉट सक्रिय रहने पर एक बिना प्रमाणीकरण वाला HTTP एंडपॉइंट उजागर करता है। यह मनमाने फ़ाइल अपलोड स्वीकार करता है और क्लाइंट या अपलोड की गई सामग्री को सत्यापित किए बिना उन्हें सीधे SD कार्ड पर लिखता है। यह पूर्ण फर्मवेयर प्रतिस्थापन सक्षम करता है क्योंकि एक हमलावर full_img.fex नाम की कस्टम eGON इमेज अपलोड कर सकता है; कैमरा उस फ़ाइलनाम को OTA पैकेज के रूप में पहचानता है और हमलावर-नियंत्रित फर्मवेयर को अपने सामान्य अपडेट प्रवाह के माध्यम से स्थापित करता है, जैसे कि यह एक आधिकारिक अपडेट हो।
सफल शोषण अपलोड किए गए फर्मवेयर को डिवाइस पर चल रहे सॉफ़्टवेयर पर पूर्ण नियंत्रण देता है। शामिल प्रूफ ऑफ कॉन्सेप्ट मूल एप्लिकेशन को एक कस्टम MiniGUI/AudioTrack पेलोड से प्रतिस्थापित करके इसे प्रदर्शित करता है, जो दुर्भावनापूर्ण OTA इमेज स्थापित होने के बाद Bad Apple!! वीडियो को रॉ RGB565 फ्रेम और PCM ऑडियो का उपयोग करके चलाता है।
POC/ निर्देशिका में शामिल है:
run_exploit.sh, जो हमलावर-नियंत्रित full_img.fex को कैमरे पर अपलोड करता हैfull_img.fex, कैमरे के OTA अपडेट तंत्र द्वारा स्वीकार की जाने वाली निर्मित eGON फर्मवेयर इमेजバイバイ/, अपडेट के बाद मनमाना कोड निष्पादन प्रदर्शित करने के लिए उपयोग किया जाने वाला MiniGUI और AudioTrack Bad Apple!! पेलोडextract_rgb_pcm_from_mp4/, प्रदर्शन वीडियो को रॉ RGB565 और PCM डेटा में परिवर्तित करने के लिए एक सहायकमीडिया रूपांतरण सहायक के लिए ffmpeg आवश्यक है। प्रदर्शन पेलोड द्वारा उत्पन्न video.rgb और audio.pcm फ़ाइलें कैमरे के SD कार्ड के रूट पर अपेक्षित हैं।
प्रूफ ऑफ कॉन्सेप्ट स्वभाव से विनाशकारी है। एक विकृत या असंगत इमेज कैमरे को स्थायी रूप से ब्रिक कर सकती है। इसे उन डिवाइसों पर न चलाएँ जो आपके स्वामित्व में नहीं हैं या पूर्ण पुनर्प्राप्ति मार्ग के बिना न चलाएँ।
यह परियोजना लेखक द्वारा कानूनी रूप से अर्जित हार्डवेयर पर रिवर्स इंजीनियरिंग, अंतर-संचालन क्षमता, शिक्षा और सुरक्षा अनुसंधान के लिए बनाई गई थी। SJCAM, Allwinner, Novatek, Android और उनके घटकों के नाम उनके संबंधित स्वामियों के हैं।
रिपॉजिटरी में मूल स्रोत कोड के साथ-साथ तृतीय-पक्ष उत्पादों से उत्पन्न फर्मवेयर नमूने, रिवर्स इंजीनियरिंग डेटाबेस, हेडर और साझा लाइब्रेरियाँ शामिल हैं। तृतीय-पक्ष सामग्री के लिए कोई लाइसेंस प्रदान नहीं किया गया है। शोध वातावरण के बाहर उन फ़ाइलों को पुनर्वितरित या उपयोग करने से पहले उत्पत्ति और लागू कानून की समीक्षा करें।
वर्तमान में कोई रिपॉजिटरी-व्यापक ओपन-सोर्स लाइसेंस नहीं है। wpa_supplicant स्रोत Lelouch/modified_lelouch_wpa_supplicant_source/COPYING में अपना स्वयं का अपस्ट्रीम लाइसेंस बनाए रखता है।
| पथ | सामग्री |
|---|
Lelouch/ | कस्टम फर्मवेयर इंटरफ़ेस, बिल्ड वातावरण, प्राप्त हेडर, स्वामित्व साझा लाइब्रेरियाँ और संशोधित wpa_supplicant स्रोत |
Reversing Scripts/ | Allwinner IMAGEWTY, Allwinner eGON और Novatek BCL1 फर्मवेयर के लिए पार्सर और रिपैकर |
AVIOCTRL Script/ウタ.py | SJCAM Zone द्वारा उपयोग किए जाने वाले स्वामित्व TCP प्रोटोकॉल के लिए इंटरैक्टिव क्लाइंट |
Bin Files/ | शोध के दौरान विश्लेषित मुख्य निष्पादन योग्य और साझा लाइब्रेरियों के लिए IDA डेटाबेस |
Firmwares Files/ | विकास के दौरान उपयोग किए गए Allwinner और Novatek फर्मवेयर नमूने |
POC/ | CVE-2026-52656 प्रूफ ऑफ कॉन्सेप्ट, निर्मित eGON इमेज और फ्रेमबफर/ऑडियो डेमो पेलोड |