Samsung WB850F ürün yazılımı tersine mühendisliği
WB850F_FW_210086.zip - dış kapsayıcı
- WB850F, Samsung'un iLauncher uygulamasını sonlandırmasından sonra bile ürün yazılımı ve destek dosyalarını sunmaya devam ettiği az sayıdaki modellerden biridir.
WB850F_FW_210086.zip arşivi birden fazla dosya içerir:
GPS_FW/BASEBAND_FW_Flash.mbin: veri
GPS_FW/BASEBAND_FW_Ram.mbin: veri
GPS_FW/Config.BIN: veri
GPS_FW/flashBurner.mbin: veri
FWUP: ASCII metin, CRLF satır sonlandırıcıları içerir
partialImage.o.map: ASCII metin
WB850-FW-SR-210086.bin: veri
wb850f_adj.txt: ASCII metin, CRLF satır sonlandırıcıları içerir
FWUP dosyası, ürün yazılımı test/otomasyon modülü için bir betik olan "upgrade all" dizesini içerir.
wb850f_adj.txt dosyası, GPS ürün yazılımını yükselten ve ilgili dosyayı silen karmaşık bir betiktir.
partialImage.o.map - bağlayıcı dökümü
partialImage.o.map, 300 binden fazla satır içeren bir metin dosyasıdır ve partialImage.o için bağlayıcı çıktısını ve tam bellek haritasını içerir:
- Örnek:
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
- Bu dosya, ürün yazılımı analizi için çok yararlı bilgiler sağlar.
WB850-FW-SR-210086.bin - başlık analizi
WB850-FW-SR-210086.bin dosyası binwalk ile analiz edildiğinde, dosya başlıkları (HTML, PNG, JPEG vb.), VxWorks başlığı ve çeşitli Unix yolları bulundu; ancak bölüm ya da dosya sistemi bulunmadı.
- İlk 1 KB'nin hex dump çıktısı:
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.............
- Buradan, dosya adlarını ve bölüm adlarını içeren bölüm tablosu yeniden oluşturulabilir:
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 - kod ve veri bölümleri
- Bölüm çıkarma aracıyla bölümler çıkarıldığında:
ONBL1.bin: veri
ONBL2.bin: veri
Main_Image.bin: OpenPGP gizli anahtarı (yanlış pozitif)
Resource.bin: MIPSEB-LE MIPS-III ECOFF çalıştırılabilir dosyası
OIS.bin: veri
SKIN.bin: veri
ONBL1 ve ONBL2, önyükleyicinin 1. ve 2. aşamaları gibi görünüyor.
Main_Image, çok sayıda ARM fonksiyon prologu içeren gerçek ürün yazılımıdır.
Resource ve SKIN, SoC üreticisinin sağladığı UI skin'i olabilir.
OIS, optik görüntü sabitleme biriminin ürün yazılımı olabilir.
Kodu Ghidra'ya yükleme
ONBL1, ONBL2 ve Main_Image bölümleri gerçek ARM kodu içerir.
Main_Image dosyasını doğru bellek adresine eşlemek için analiz Ghidra'da başlatıldı.
partialImage.o.map içindeki fonksiyon adları yüklenip Ghidra'ya eşlendi.
DevHTTPResponseStart tersine mühendisliği
DevHTTPResponseStart fonksiyonu hotspot algılaması yapar.
- Özet:
- HTTP 200 OK yanıtında, sunucu
yahoo.something veya kr.yahoo.something alan adı üzerinde bir çerez ayarlamalıdır.
- HTTP 301/302/307 yönlendirmesinde, URL
yahoo. dizesini içermelidir.
- Hotspot algılamasını atlatmak için DNS kaydını başka bir sunucuya yönlendirmek veya çerezi ayarlamak için HTTP yönlendirmesi kullanmak gerekir.
Özet: Asıl hazine
- Bu analiz sayesinde Samsung WB850F WiFi kameranın hotspot algılaması anlaşılabildi ve aşılabildi.
- Sonuç olarak küçük bir yama ile kameranın gerçekten bağlanması ve fotoğraf yükleyebilmesi sağlandı.
Main_Image, 77.000'den fazla fonksiyon içeriyor; bu da dijital kameraların nasıl çalıştığını daha iyi anlamak için keşfetmeye değer olduğu anlamına geliyor.
GN⁺ görüşü
- Teknik zorluk ve öğrenme fırsatı: Bu yazı, ürün yazılımı tersine mühendisliğine dair gerçek bir örnek sunarak teknik zorluklar ve öğrenme fırsatları sağlıyor. Özellikle başlangıç seviyesindeki yazılım mühendisleri için çok faydalı.
- Güvenlik ve gizlilik değerlendirmeleri: Hotspot algılamasını atlatmak, güvenlik ve gizlilik açısından önemli değerlendirmeler içerir. Bu tür teknikler kullanılırken etik yönler her zaman dikkate alınmalıdır.
- Ghidra kullanımı: Ghidra gibi araçlarla karmaşık ürün yazılımlarının nasıl analiz edileceği öğrenilebilir. Bu, tersine mühendislik ve güvenlik analizi için oldukça faydalıdır.
- Ürün yazılımı güncellemelerinin önemi: Ürün yazılımı güncellemeleri, cihazların işlevselliğini ve güvenliğini korumak açısından önemlidir. Bu yazı, ürün yazılımı güncellemelerinin karmaşıklığını iyi gösteriyor.
- Diğer kamera modellerine uygulanabilirlik: Bu teknik başka Samsung kamera modellerine de uygulanabilir; bu da benzer sorunların çeşitli cihazlarda çözülmesine yardımcı olabilir.
1 yorum
Hacker News görüşü
Hacker News yorum derlemesi
Ben bu bağlantıyı daha çok beğendim. Kesinlikle şaşırtıcı bir firmware "crypto" fiyaskosu
İnanılmaz iş! Reverse engineering'in nasıl yapıldığına dair bir eğitim hazırlamayı düşündünüz mü?
Tek istediğim, kameradaki düğmesine basıp fotoğraf çektiğimde birkaç dakika sonra görüntünün Apple Photos'ta olması olan bir dSLR.
[dead]