Samsung WB850F फ़र्मवेयर रिवर्स इंजीनियरिंग
WB850F_FW_210086.zip - बाहरी कंटेनर
- WB850F उन कुछ मॉडलों में से एक है जिनके लिए Samsung ने
iLauncher एप्लिकेशन बंद करने के बाद भी फ़र्मवेयर और सपोर्ट फ़ाइलें उपलब्ध कराना जारी रखा।
WB850F_FW_210086.zip आर्काइव में कई फ़ाइलें शामिल हैं:
GPS_FW/BASEBAND_FW_Flash.mbin: डेटा
GPS_FW/BASEBAND_FW_Ram.mbin: डेटा
GPS_FW/Config.BIN: डेटा
GPS_FW/flashBurner.mbin: डेटा
FWUP: ASCII टेक्स्ट, CRLF लाइन टर्मिनेटर सहित
partialImage.o.map: ASCII टेक्स्ट
WB850-FW-SR-210086.bin: डेटा
wb850f_adj.txt: ASCII टेक्स्ट, CRLF लाइन टर्मिनेटर सहित
FWUP फ़ाइल में "upgrade all" स्ट्रिंग शामिल है, जो फ़र्मवेयर टेस्ट/ऑटोमेशन मॉड्यूल के लिए एक स्क्रिप्ट है।
wb850f_adj.txt फ़ाइल GPS फ़र्मवेयर को अपग्रेड करने और संबंधित फ़ाइलों को हटाने वाली एक जटिल स्क्रिप्ट है।
partialImage.o.map - linker dump
partialImage.o.map 3 लाख से अधिक लाइनों वाली एक टेक्स्ट फ़ाइल है, जिसमें partialImage.o का linker output और पूरा memory map शामिल है:
- उदाहरण:
output input virtual section section address size file
.text 00000000 01301444 .text 00000000 000001a4 sysALib.o
DevHTTPResponseStart 00321a84 000002a4
DevHTTPResponseData 00321d28 00000100
DevHTTPResponseEnd 00321e28 00000170
- यह फ़ाइल फ़र्मवेयर विश्लेषण के लिए बहुत उपयोगी जानकारी प्रदान करती है।
WB850-FW-SR-210086.bin - हेडर विश्लेषण
WB850-FW-SR-210086.bin फ़ाइल का binwalk से विश्लेषण करने पर फ़ाइल हेडर (HTML, PNG, JPEG आदि), VxWorks हेडर, और कई Unix paths मिले, लेकिन कोई partition या file system नहीं मिला।
- पहले 1KB का hex dump:
00000000: 3231 3030 3836 0006 4657 5f55 502f 4f4e 210086..FW_UP/ON
00000010: 424c 312e 6269 6e00 0000 0000 0000 0000 BL1.bin.........
00000020: 0000 0000 0000 0000 c400 0000 0008 0000 ................
00000030: 4f4e 424c 3100 0000 0000 0000 0000 0000 ONBL1...........
00000040: 0000 0000 4657 5f55 502f 4f4e 424c 322e ....FW_UP/ONBL2.
00000050: 6269 6e00 0000 0000 0000 0000 0000 0000 bin.............
- इससे फ़ाइल नाम और partition names सहित partition table को पुनर्निर्मित किया जा सकता है:
File name size offset partition name
FW_UP/ONBL1.bin 196 (0xc4) 0x0000800 ONBL1
FW_UP/ONBL2.bin 46 KB (0xb630) 0x00008c4 ONBL2
[WB850]DSC_5KEY_WB850 30 MB (0x1d1f438) 0x000bef4 Main_Image
RomFS/SPID.Rom 48 MB (0x2f4ac00) 0x1d2b32c Resource
FW_UP/WB850.HEX 19 KB (0x4d86) 0x4c75f2c OIS
FW_UP/skin.bin 36 MB (0x22fd048) 0x4c7acb2 SKIN
WB850-FW-SR-210086.bin - कोड और डेटा partitions
- partition extraction tool का उपयोग करके partitions निकालने पर परिणाम:
ONBL1.bin: डेटा
ONBL2.bin: डेटा
Main_Image.bin: OpenPGP secret key (false positive)
Resource.bin: MIPSEB-LE MIPS-III ECOFF executable
OIS.bin: डेटा
SKIN.bin: डेटा
ONBL1 और ONBL2 को bootloader के stage 1 और stage 2 होने का अनुमान है।
Main_Image वास्तविक फ़र्मवेयर है, जिसमें बड़ी संख्या में ARM function prologues शामिल हैं।
Resource और SKIN संभवतः SoC निर्माता द्वारा उपलब्ध कराया गया UI skin हैं।
OIS संभवतः optical image stabilization device का फ़र्मवेयर है।
Ghidra में कोड लोड करना
ONBL1, ONBL2, Main_Image partitions में वास्तविक ARM code शामिल है।
Main_Image को सही memory address पर map करने के लिए Ghidra में विश्लेषण शुरू किया गया।
partialImage.o.map से function names लोड करके उन्हें Ghidra में map किया गया।
DevHTTPResponseStart रिवर्स इंजीनियरिंग
DevHTTPResponseStart function hotspot detection करता है।
- सारांश:
- HTTP 200 OK response पर, server को
yahoo.something या kr.yahoo.something domain पर cookie सेट करनी चाहिए।
- HTTP 301/302/307 redirect पर, URL में
yahoo. स्ट्रिंग शामिल होनी चाहिए।
- hotspot detection को bypass करने के लिए DNS record को किसी अन्य server की ओर point करना होगा, या cookie सेट करने के लिए HTTP redirect का उपयोग करना होगा।
सारांश: असली ख़ज़ाना
- इस विश्लेषण से Samsung WB850F WiFi कैमरे की hotspot detection को समझना और bypass करना संभव हुआ।
- परिणामस्वरूप, एक छोटे patch की मदद से कैमरा वास्तव में connect होकर फ़ोटो upload कर सका।
Main_Image में 77,000 से अधिक functions शामिल हैं, इसलिए digital camera के काम करने के तरीके को बेहतर समझने के लिए इसे और खंगालना सार्थक है।
GN⁺ की राय
- तकनीकी चुनौती और सीखने का अवसर: यह लेख फ़र्मवेयर रिवर्स इंजीनियरिंग का एक वास्तविक उदाहरण देता है, जो तकनीकी चुनौती और सीखने का अवसर प्रदान करता है। शुरुआती software engineer के लिए यह बहुत उपयोगी है।
- सुरक्षा और प्राइवेसी पर विचार: hotspot detection bypass सुरक्षा और प्राइवेसी के दृष्टिकोण से एक महत्वपूर्ण विचार है। ऐसी तकनीकों का उपयोग करते समय नैतिक पहलुओं पर हमेशा ध्यान देना चाहिए।
- Ghidra का उपयोग: Ghidra जैसे tools का उपयोग करके जटिल फ़र्मवेयर का विश्लेषण करना सीखा जा सकता है। यह रिवर्स इंजीनियरिंग और सुरक्षा विश्लेषण में बहुत उपयोगी है।
- फ़र्मवेयर अपडेट का महत्व: फ़र्मवेयर अपडेट डिवाइस की कार्यक्षमता और सुरक्षा बनाए रखने के लिए महत्वपूर्ण हैं। यह लेख फ़र्मवेयर अपडेट की जटिलता को अच्छी तरह दिखाता है।
- अन्य कैमरा मॉडलों पर लागू होने की संभावना: यह तकनीक अन्य Samsung कैमरा मॉडलों पर भी लागू हो सकती है, जिससे विभिन्न डिवाइसों में समान समस्याओं को हल करने में मदद मिल सकती है।
1 टिप्पणियां
Hacker News की राय
Hacker News टिप्पणियों का संकलन
मुझे यह लिंक ज़्यादा पसंद आया। Firmware "crypto" की पूरी तरह हैरान कर देने वाली विफलता
शानदार काम! क्या आपने reverse engineering कैसे करें, इस पर कोई tutorial बनाने के बारे में सोचा है?
मुझे बस एक dSLR चाहिए जिसमें मैं कैमरे के बटन से तस्वीर लूँ और कुछ ही क्षण बाद वह image Apple Photos में हो।
[dead]