2P by neo 21일전 | favorite | 댓글 1개

삼성 WB850F 펌웨어 리버스 엔지니어링

WB850F_FW_210086.zip - 외부 컨테이너

  • WB850F는 삼성에서 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은 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에 코드 로드하기

  • ONBL1, ONBL2, Main_Image 파티션은 실제 ARM 코드가 포함되어 있음.
  • Main_Image를 올바른 메모리 주소에 매핑하기 위해 Ghidra에서 분석을 시작함.
  • partialImage.o.map에서 함수 이름을 로드하여 Ghidra에 매핑함.

DevHTTPResponseStart 리버스 엔지니어링

  • DevHTTPResponseStart 함수는 핫스팟 감지를 수행함.
  • 요약:
    • HTTP 200 OK 응답 시, 서버는 "yahoo.something" 또는 "kr.yahoo.something" 도메인에 쿠키를 설정해야 함.
    • HTTP 301/302/307 리다이렉트 시, URL에 "yahoo." 문자열이 포함되어야 함.
  • 핫스팟 감지를 우회하기 위해, DNS 레코드를 다른 서버로 포인팅하거나 HTTP 리다이렉트를 사용하여 쿠키를 설정해야 함.

요약: 진정한 보물

  • 이 분석을 통해 삼성 WB850F WiFi 카메라의 핫스팟 감지를 이해하고 우회할 수 있었음.
  • 결과적으로 작은 패치를 통해 카메라가 실제로 연결되고 사진을 업로드할 수 있게 되었음.
  • Main_Image에는 77,000개 이상의 함수가 포함되어 있어, 디지털 카메라의 작동 방식을 더 잘 이해하기 위해 탐험할 가치가 있음.

GN⁺의 의견

  1. 기술적 도전과 학습 기회: 이 기사는 펌웨어 리버스 엔지니어링의 실제 사례를 제공하여 기술적 도전과 학습 기회를 제공함. 초급 소프트웨어 엔지니어에게 매우 유익함.
  2. 보안 및 프라이버시 고려: 핫스팟 감지 우회는 보안 및 프라이버시 측면에서 중요한 고려 사항임. 이러한 기술을 사용할 때는 윤리적 측면을 항상 고려해야 함.
  3. Ghidra 사용법: Ghidra와 같은 도구를 사용하여 복잡한 펌웨어를 분석하는 방법을 배울 수 있음. 이는 리버스 엔지니어링 및 보안 분석에 매우 유용함.
  4. 펌웨어 업데이트의 중요성: 펌웨어 업데이트는 장치의 기능과 보안을 유지하는 데 중요함. 이 기사는 펌웨어 업데이트의 복잡성을 잘 보여줌.
  5. 다른 카메라 모델 적용 가능성: 이 기법은 다른 삼성 카메라 모델에도 적용 가능하며, 이는 다양한 장치에서 유사한 문제를 해결하는 데 도움이 될 수 있음.
Hacker News 의견

해커뉴스 댓글 모음

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

    • 삼성 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]

    • 댓글이 삭제되었음.