รีเวิร์สเอนจิเนียริงเฟิร์มแวร์ 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 - ลิงเกอร์ดัมป์
partialImage.o.map เป็นไฟล์ข้อความขนาดกว่า 300,000 บรรทัด ซึ่งมีเอาต์พุตจากลิงเกอร์ของ partialImage.o และ 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 หลายรายการ แต่ไม่พบพาร์ทิชันหรือไฟล์ซิสเต็ม
- ผลเฮกซ์ดัมป์ของ 1KB แรก:
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.............
- จากข้อมูลนี้สามารถสร้างตารางพาร์ทิชันขึ้นใหม่ได้ โดยมีทั้งชื่อไฟล์และชื่อพาร์ทิชัน:
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 - พาร์ทิชันโค้ดและข้อมูล
- เมื่อใช้เครื่องมือแยกพาร์ทิชันเพื่อดึงพาร์ทิชันออกมา ได้ผลดังนี้:
ONBL1.bin: ข้อมูล
ONBL2.bin: ข้อมูล
Main_Image.bin: กุญแจลับ OpenPGP (ผลบวกลวง)
Resource.bin: ไฟล์ปฏิบัติการ MIPSEB-LE MIPS-III ECOFF
OIS.bin: ข้อมูล
SKIN.bin: ข้อมูล
- คาดว่า
ONBL1 และ ONBL2 จะเป็นบูตโหลดเดอร์ขั้นที่ 1 และ 2
Main_Image คือเฟิร์มแวร์จริง และมี ARM function prologue จำนวนมาก
Resource และ SKIN อาจเป็น UI skin ที่ผู้ผลิต SoC จัดเตรียมไว้
OIS อาจเป็นเฟิร์มแวร์ของระบบป้องกันภาพสั่นไหวแบบออปติคัล
โหลดโค้ดเข้า Ghidra
- พาร์ทิชัน
ONBL1, ONBL2, Main_Image มีโค้ด ARM จริงอยู่ภายใน
- เริ่มการวิเคราะห์ใน Ghidra เพื่อแมป
Main_Image ไปยังที่อยู่หน่วยความจำที่ถูกต้อง
- โหลดชื่อฟังก์ชันจาก
partialImage.o.map แล้วแมปเข้า Ghidra
รีเวิร์สเอนจิเนียริง DevHTTPResponseStart
- ฟังก์ชัน
DevHTTPResponseStart ทำหน้าที่ตรวจจับฮอตสปอต
- สรุป:
- เมื่อได้รับ HTTP 200 OK เซิร์ฟเวอร์ต้องตั้งค่า cookie ให้กับโดเมน "yahoo.something" หรือ "kr.yahoo.something"
- เมื่อได้รับ HTTP 301/302/307 redirect URL ต้องมีสตริง "yahoo."
- เพื่อหลบเลี่ยงการตรวจจับฮอตสปอต จำเป็นต้องชี้ DNS record ไปยังเซิร์ฟเวอร์อื่น หรือใช้ HTTP redirect เพื่อตั้งค่า cookie
สรุป: ขุมทรัพย์ที่แท้จริง
- การวิเคราะห์นี้ทำให้สามารถเข้าใจและหลบเลี่ยงการตรวจจับฮอตสปอตของกล้อง WiFi Samsung WB850F ได้
- ผลลัพธ์คือการแก้ไขเล็กน้อยที่ทำให้กล้องเชื่อมต่อได้จริงและอัปโหลดรูปภาพได้
Main_Image มีฟังก์ชันมากกว่า 77,000 รายการ จึงคุ้มค่าแก่การสำรวจเพื่อทำความเข้าใจการทำงานของกล้องดิจิทัลให้ดียิ่งขึ้น
ความเห็นของ GN⁺
- ความท้าทายทางเทคนิคและโอกาสในการเรียนรู้: บทความนี้นำเสนอตัวอย่างจริงของการรีเวิร์สเอนจิเนียริงเฟิร์มแวร์ ซึ่งเป็นทั้งความท้าทายทางเทคนิคและโอกาสในการเรียนรู้ มีประโยชน์มากสำหรับวิศวกรซอฟต์แวร์ระดับเริ่มต้น
- ข้อพิจารณาด้านความปลอดภัยและความเป็นส่วนตัว: การหลบเลี่ยงการตรวจจับฮอตสปอตเป็นประเด็นสำคัญในด้านความปลอดภัยและความเป็นส่วนตัว ควรคำนึงถึงจริยธรรมเสมอเมื่อนำเทคนิคเหล่านี้ไปใช้
- การใช้งาน Ghidra: สามารถเรียนรู้วิธีใช้เครื่องมืออย่าง Ghidra เพื่อวิเคราะห์เฟิร์มแวร์ที่ซับซ้อนได้ ซึ่งมีประโยชน์มากสำหรับงานรีเวิร์สเอนจิเนียริงและการวิเคราะห์ความปลอดภัย
- ความสำคัญของการอัปเดตเฟิร์มแวร์: การอัปเดตเฟิร์มแวร์มีความสำคัญต่อการคงไว้ซึ่งความสามารถและความปลอดภัยของอุปกรณ์ และบทความนี้แสดงให้เห็นความซับซ้อนของกระบวนการดังกล่าวได้เป็นอย่างดี
- การประยุกต์ใช้กับกล้องรุ่นอื่น: เทคนิคนี้อาจนำไปใช้กับกล้อง Samsung รุ่นอื่นได้เช่นกัน ซึ่งช่วยแก้ปัญหาลักษณะคล้ายกันในอุปกรณ์หลากหลายประเภท
1 ความคิดเห็น
ความเห็นจาก Hacker News
รวมคอมเมนต์จาก Hacker News
ฉันชอบลิงก์นี้มากกว่า ความล้มเหลวของ "crypto" ในเฟิร์มแวร์ที่น่าทึ่งสุด ๆ
งานยอดเยี่ยม! คุณเคยคิดจะทำบทสอนเกี่ยวกับการทำ reverse engineering ไหม?
ทั้งหมดที่ฉันต้องการคือกล้อง dSLR ที่เมื่อฉันกดปุ่มบนกล้องเพื่อถ่ายภาพ อีกไม่กี่อึดใจต่อมา ภาพนั้นจะไปอยู่ใน Apple Photos
[dead]