Реверсинг прошивки фотоаппарата. С чего начать?

Тема в разделе "WASM.ELECTRONICS", создана пользователем nibb13, 6 июн 2010.

  1. nibb13

    nibb13 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2010
    Сообщения:
    2
    Хочу поправить пару констант в прошивке фотоаппарата Kodak P850, но не представляю с какой стороны подступиться к процессу.

    Ткните, пожалуйста, в какие-нибудь толковые статьи ("Retsaot is Toaster, Reversed: Quick 'n Dirty Firmware Reversing" уже читал).
    Существуют ли какие-нибудь "чудо-тулзы", которые могут облегчить процесс?
    С чего начать вообще?

    P.S.:
    С реверсингом PE знаком не по наслышке.
     
  2. Rustem

    Rustem New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    429
    Адрес:
    Russia
    nibb13
    думаю, стоит начать со спецификации железа фотика, хотя бы проц какой, чтобы в иду засунуть....
     
  3. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    А пошивка на руках? Или ее еще нужно вытащить из фотика? Если на руках возможно ида тебе в помощь и мозг. Думать много и сильно. А если нет то пока не о той проблеме думаешь)
     
  4. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    1. Скачиваем прошивку.
    2. Распаковываем оттуда P850101.FW
    3. Открываем в хекс вьюере:

    0000000000: 4C 45 4E 47 54 48 3D 34 │ 30 34 35 35 38 34 20 20 LENGTH=4045584
    0000000010: 20 20 53 58 38 32 33 20 │ 20 20 56 45 52 3D 76 38 SX823 VER=v8
    0000000020: 32 33 2D 39 33 20 20 44 │ 56 52 3D 31 2E 30 31 30 23-93 DVR=1.010
    0000000030: 30 20 20 53 55 4D 3D 33 │ 39 31 39 32 36 33 38 38 0 SUM=391926388
    0000000040: 0D 0A 20 20 20 20 20 20 │ 20 20 20 20 20 20 20 20 ♪◙
    0000000050: 20 20 20 20 20 20 20 20 │ 20 20 20 20 20 20 20 20
    0000000060: D2 00 A0 E3 00 F0 21 E1 │ BE D4 E0 E3 0F D0 2D E2 Т  г р!бѕФаг☼Р-в
    0000000070: DF 00 A0 E3 00 F0 21 E1 │ 08 D0 9F E5 04 F0 1F E5 Я  г р!б◘Рџе♦р▼е
    0000000080: 8C 14 01 00 40 FB A0 E3 │ F0 EF FF 41 30 43 2D E9 Њ¶☺ @ы грпяA0C-й
    0000000090: 00 50 A0 E1 76 01 00 EB │ 00 10 A0 E1 01 40 A0 E1 P бv☺ л ► б☺@ б
    00000000A0: 56 01 00 EB 05 00 A0 E1 │ CD 01 00 EB 00 00 54 E3 V☺ л♣  бН☺ л Tг
    00000000B0: 01 00 00 0A 65 01 00 EB │ 00 00 00 EA 4F 01 00 EB ☺ ◙e☺ л кO☺ л

    Выделенные байты - явный признак ARM кода. Загружаем файл с оффсета 060 в иду. После некоторого тыканья по коду можно вывести, что правильная база загрузки - 0x010000.
     
  5. nibb13

    nibb13 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2010
    Сообщения:
    2
    Ребята, спасибо! Пошёл курить мануалы по ARM'ам и терзать IDA.

    С огромной вероятностью вернусь сюда с пачкой глупых вопросов. ;)