Rekayasa Balik Firmware Samsung WB850F
WB850F_FW_210086.zip - Kontainer eksternal
- WB850F adalah salah satu dari sedikit model yang tetap menyediakan firmware dan file dukungan bahkan setelah Samsung menghentikan aplikasi iLauncher.
- Arsip
WB850F_FW_210086.zip berisi beberapa file:
GPS_FW/BASEBAND_FW_Flash.mbin: data
GPS_FW/BASEBAND_FW_Ram.mbin: data
GPS_FW/Config.BIN: data
GPS_FW/flashBurner.mbin: data
FWUP: teks ASCII, dengan terminator baris CRLF
partialImage.o.map: teks ASCII
WB850-FW-SR-210086.bin: data
wb850f_adj.txt: teks ASCII, dengan terminator baris CRLF
- File
FWUP berisi string "upgrade all", sebuah skrip untuk modul pengujian/otomasi firmware.
- File
wb850f_adj.txt adalah skrip kompleks untuk meningkatkan firmware GPS dan menghapus file tersebut.
partialImage.o.map - Dump linker
partialImage.o.map adalah file teks dengan lebih dari 300 ribu baris, yang berisi output linker dari partialImage.o dan peta memori lengkap:
- Contoh:
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
- File ini memberikan informasi yang sangat berguna untuk analisis firmware.
WB850-FW-SR-210086.bin - Analisis header
- Hasil analisis file
WB850-FW-SR-210086.bin dengan binwalk menemukan header file (HTML, PNG, JPEG, dll.), header VxWorks, dan beberapa path Unix, tetapi tidak menemukan partisi atau file system.
- Hasil hex dump untuk 1KB pertama:
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.............
- Dari sini, tabel partisi yang mencakup nama file dan nama partisi bisa direkonstruksi:
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 - Partisi kode dan data
- Hasil ekstraksi partisi menggunakan alat ekstraksi partisi:
ONBL1.bin: data
ONBL2.bin: data
Main_Image.bin: kunci rahasia OpenPGP (false positive)
Resource.bin: executable MIPSEB-LE MIPS-III ECOFF
OIS.bin: data
SKIN.bin: data
ONBL1 dan ONBL2 diduga merupakan tahap 1 dan tahap 2 bootloader.
Main_Image adalah firmware sebenarnya, dan berisi banyak prolog fungsi ARM.
Resource dan SKIN kemungkinan adalah skin UI yang disediakan produsen SoC.
OIS kemungkinan adalah firmware untuk perangkat optical image stabilization.
Memuat kode ke Ghidra
- Partisi
ONBL1, ONBL2, dan Main_Image berisi kode ARM yang sebenarnya.
- Analisis dimulai di Ghidra untuk memetakan
Main_Image ke alamat memori yang benar.
- Nama fungsi dari
partialImage.o.map dimuat dan dipetakan ke Ghidra.
Rekayasa balik DevHTTPResponseStart
- Fungsi
DevHTTPResponseStart melakukan deteksi hotspot.
- Ringkasan:
- Untuk respons HTTP 200 OK, server harus menetapkan cookie pada domain "yahoo.something" atau "kr.yahoo.something".
- Untuk redirect HTTP 301/302/307, URL harus mengandung string "yahoo.".
- Untuk melewati deteksi hotspot, record DNS harus diarahkan ke server lain, atau cookie harus ditetapkan menggunakan redirect HTTP.
Ringkasan: harta karun yang sesungguhnya
- Analisis ini memungkinkan pemahaman dan bypass terhadap deteksi hotspot pada kamera WiFi Samsung WB850F.
- Hasilnya, dengan patch kecil, kamera benar-benar bisa terhubung dan mengunggah foto.
Main_Image berisi lebih dari 77.000 fungsi, sehingga layak dijelajahi untuk memahami lebih dalam cara kerja kamera digital.
Pendapat GN⁺
- Tantangan teknis dan peluang belajar: Artikel ini memberikan contoh nyata rekayasa balik firmware, sehingga menawarkan tantangan teknis sekaligus peluang belajar. Sangat bermanfaat bagi insinyur perangkat lunak pemula.
- Pertimbangan keamanan dan privasi: Bypass deteksi hotspot adalah hal penting dari sisi keamanan dan privasi. Saat menggunakan teknik seperti ini, aspek etika harus selalu dipertimbangkan.
- Cara menggunakan Ghidra: Kita bisa mempelajari cara menganalisis firmware yang kompleks menggunakan alat seperti Ghidra. Ini sangat berguna untuk rekayasa balik dan analisis keamanan.
- Pentingnya pembaruan firmware: Pembaruan firmware penting untuk menjaga fungsi dan keamanan perangkat. Artikel ini menunjukkan kompleksitas pembaruan firmware dengan baik.
- Kemungkinan diterapkan ke model kamera lain: Teknik ini juga dapat diterapkan ke model kamera Samsung lainnya, yang dapat membantu menyelesaikan masalah serupa pada berbagai perangkat.
1 komentar
Komentar Hacker News
Kumpulan komentar Hacker News
Saya lebih menyukai tautan ini. Kegagalan "kripto" firmware yang benar-benar mencengangkan
Keren sekali! Apakah Anda pernah terpikir untuk membuat tutorial tentang cara melakukan reverse engineering?
Yang saya inginkan hanyalah sebuah dSLR yang, ketika saya mengambil foto di kamera dengan tombolnya, beberapa saat kemudian, gambar itu ada di Apple Photos.
[deleted]