2 ポイント 投稿者 GN⁺ 2024-05-26 | 1件のコメント | WhatsAppで共有

Samsung WB850Fファームウェアのリバースエンジニアリング

WB850F_FW_210086.zip - 外部コンテナ

  • WB850Fは、SamsungがiLauncherアプリケーションを終了した後も、ファームウェアとサポートファイルを継続して提供している数少ないモデルの1つである。
  • 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 は30万行を超えるテキストファイルで、partialImage.o のリンカ出力と完全なメモリマップを含んでいる:
    • 例:
      • 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: データ
  • ONBL1ONBL2 は、ブートローダーの第1段階および第2段階であると推定される。
  • Main_Image は実際のファームウェアで、多数のARM関数プロローグを含んでいる。
  • ResourceSKIN は、SoCメーカーが提供したUIスキンである可能性がある。
  • OIS は、光学式手ぶれ補正装置のファームウェアである可能性がある。

Ghidraにコードをロードする

  • ONBL1ONBL2Main_Image パーティションには実際のARMコードが含まれている。
  • Main_Image を正しいメモリアドレスにマッピングするため、Ghidraで解析を開始した。
  • partialImage.o.map から関数名を読み込み、Ghidra上にマッピングした。

DevHTTPResponseStartのリバースエンジニアリング

  • DevHTTPResponseStart 関数はホットスポット検出を実行する。
  • 要約:
    • HTTP 200 OK応答では、サーバーは "yahoo.something" または "kr.yahoo.something" ドメインにCookieを設定する必要がある。
    • HTTP 301/302/307リダイレクトでは、URLに "yahoo." という文字列が含まれている必要がある。
  • ホットスポット検出を回避するには、DNSレコードを別のサーバーに向けるか、HTTPリダイレクトを使ってCookieを設定する必要がある。

要約: 本当の宝物

  • この解析により、Samsung WB850F WiFiカメラのホットスポット検出を理解し、回避できるようになった。
  • その結果、小さなパッチによってカメラが実際に接続し、写真をアップロードできるようになった。
  • Main_Image には77,000個を超える関数が含まれており、デジタルカメラの動作をより深く理解するために探究する価値がある。

GN⁺の意見

  1. 技術的な挑戦と学習機会: この記事はファームウェアのリバースエンジニアリングの実例を提供しており、技術的な挑戦と学習機会を与えてくれる。初級ソフトウェアエンジニアにとって非常に有益である。
  2. セキュリティとプライバシーへの配慮: ホットスポット検出の回避は、セキュリティとプライバシーの観点で重要な検討事項である。こうした技術を使う際には、常に倫理面を考慮する必要がある。
  3. Ghidraの使い方: Ghidraのようなツールを使って複雑なファームウェアを解析する方法を学べる。これはリバースエンジニアリングやセキュリティ解析で非常に有用である。
  4. ファームウェア更新の重要性: ファームウェア更新は、デバイスの機能とセキュリティを維持するうえで重要である。この記事はファームウェア更新の複雑さをよく示している。
  5. 他のカメラモデルへの適用可能性: この手法は他のSamsung製カメラモデルにも適用できる可能性があり、さまざまなデバイスで類似の問題を解決する助けになる。

1件のコメント

 
GN⁺ 2024-05-26
Hacker Newsの意見

Hacker News コメント集

  • I liked this link more. Absolute astonishing firmware "crypto" fail

    • Samsung NXカメラのファームウェア暗号化の失敗事例を扱ったリンクのほうが気に入った。
  • Amazing work! Have you thought about doing a tutorial on how to do reverse engineering?

    • 素晴らしい仕事だ。リバースエンジニアリングのやり方に関するチュートリアルを作ることを考えたことはあるだろうか。
  • All I want is a dSLR that, when I take a picture on the camera with its button, moments later, the image is in Apple Photos.

    • カメラのボタンで写真を撮ると、少し後にはApple Photosに画像が入っているようなDSLRが欲しい。
  • [dead]

    • コメントは削除された。