eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› CRC файла прошивки
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Статус: Участник

Создано: 28 марта 2017 12:18 · Поправил: rentast New!
Цитата · Личное сообщение · #1

Имеется камера с прошивкой Beward CD120 , необходимо перешить в неё прошивку от Beward N120 железо 100% идентичное. При прошивке в лоб через web жалуются на совместимость версий, открыл WinHEX изменил название на родное, теперь при прошивке жалуется на "Header CRC error". Прописал с помощью PEiD CRC оригинального файла, но ошибка не ушла. Очевидно проверяется не весь файл а какой-то блок, как понять какой?

Ранг: 568.5 (!)
Статус: Модератор

Создано: 28 марта 2017 12:29 New!
Цитата · Личное сообщение · #2

Написано ж Header. Возьми несколько прошивок от одной камеры и посмотри есть ли фиксированная часть в начале. Возможно, найдешь размер заголовка. Затем натрави на заголовок различные алгоритмы контрольной суммы и посмотри не найдется ли такой что дает КРК из этих заголовков.
Если повезет, то пересчитаешь КРК на нужной прошивке и запорешь свой фотоаппарат.

Ранг: 407.9 (мудрец)
Статус: Участник

Создано: 28 марта 2017 12:45 New!
Цитата · Личное сообщение · #3

..И это уже не в первый раз, когда типы начинают утверждать, что железо стопудово идентичное - а потом внезапно оказывается, что на более новой железке какой-нибудь регистр другого размера, или памяти вдвое больше, а так всё-всё идентично. Вплоть до кнопок..


Ранг: 149.2 (ветеран)
Статус: Участник

Создано: 1 апреля 2017 01:46 New!
Цитата · Личное сообщение · #4

rentast пишет:
Header CRC error

Кто выдаёт это сообщение? Какая-то специальная программа-прошивальщик или само устройство?
Ответ поможет определиться с целью для дальнейшего исследования.

Ранг: 0.6 (гость)
Статус: Участник

Создано: 2 апреля 2017 20:38 · Поправил: rentast New!
Цитата · Личное сообщение · #5

r_e сравнил 3 прошивки: 2 от устройства 1 от желаемой прошивки, все они имеют немного отличий друг от друга в одних и тех же местах в начале, потом тело прошивки отличаются полностью. Т.е. предположение что заголовки в прошивках одной версии модели должны быть одинаковы не верно.



Добавлено спустя 6 минут
-=AkaBOSS=--=AkaBOSS=- пишет:
Кто выдаёт это сообщение? Какая-то специальная программа-прошивальщик или само устройство?

Сообщение выдает web морда камеры, есть так же программа поиска камер Beward, в функциях которой есть возможность прошить, ответ там идентичный.

Ещё попробовал скопировать блок который с минимальными отличиями от оригинала, донору. Вышла ошибка "content crc check error", возможно кроме заголовка проверяется ещё и тело прошивки?

Ранг: 300.0 (мудрец)
Статус: Участник

Создано: 2 апреля 2017 21:39 New!
Цитата · Личное сообщение · #6

+34h DWORD скорее всего размер
+200h - код для ARM

Так что остается 6 байт по смещению +1F8.
Полагаю 4 из них CRC от остальной прошивки и 2 - сумма байт от заголовка


Ранг: 149.2 (ветеран)
Статус: Участник

Создано: 3 апреля 2017 01:53 New!
Цитата · Личное сообщение · #7

0x350D - начало gzip потока. Там внутри какие-то потроха и еще (как минимум) один gzip.
И вот там внутри болтаются строки "#Info: CRC check", "#Error: Header CRC check error", "#Error: Content CRC check error" и им подобные.
И там же рядом вшита стандартная таблица CRC32 (от полинома 0xEDB88320).
Подробнее отреверсить не могу, так как не удалось определиться с базовым адресом - два архива, фиг пойми куда что распаковывается.
Результат CRC тоже свести не получилось.. По идее, байтовый порядок меняться не должен, но вычисления не сходятся. Предполагаю, что начальный хэш может отличаться от 0.

Ранг: 300.0 (мудрец)
Статус: Участник

Создано: 3 апреля 2017 11:52 · Поправил: Veliant New!
Цитата · Личное сообщение · #8

-=AkaBOSS=- пишет:
И вот там внутри болтаются строки "#Info: CRC check", "#Error: Header CRC check error", "#Error: Content CRC check error" и им подобные.

Внутри второго gzip'а лежит ELF /usr/sbin/fupgarde. Вот в нем эти строки и есть.

Читает первые 0x1F4 байт и считает от них модифицированным CRC. Начальная константа - 0. Сравнивает полученное с DWORD'ом по смещению 0x1F8

Code:
  1.       hdrPtr = hdr;
  2.       hdrCrc = 0;
  3.       do
  4.       {
  5.         v9 = *hdrPtr++;
  6.         hdrCrc = crc_table[(unsigned __int8)(hdrCrc ^ v9)] ^ (hdrCrc >> 8);
  7.       }
  8.       while ( hdrPtr != &hdr[0x1F8] );
  9.       if ( hdrCrc != *(_DWORD *)&hdr[0x1F8] )


Далее по такому же алгоритму считается CRC от смещения +200h. Количество байт указано в заголовке по смещению +34h.
Сравнивается с DWORD'ом по смещению 0x1FC

Т.е. в заголовке два CRC - самого заголовка и данных

r_e пишет:
А в чем модифицированность ЦРЦ? На первый взгляд стандартный црц-32. Разве что IV не -1

туплю =)

| Сообщение посчитали полезным: -=AkaBOSS=-


Ранг: 568.5 (!)
Статус: Модератор

Создано: 3 апреля 2017 12:16 New!
Цитата · Личное сообщение · #9

Veliant
А в чем модифицированность ЦРЦ? На первый взгляд стандартный црц-32. Разве что IV не -1


Ранг: 149.2 (ветеран)
Статус: Участник

Создано: 4 апреля 2017 00:14 · Поправил: -=AkaBOSS=- New!
Цитата · Личное сообщение · #10

Veliant пишет:
Внутри второго gzip'а лежит ELF /usr/sbin/fupgarde. Вот в нем эти строки и есть.

да, я уже тоже разобрался с форматом той свалки)

r_e пишет:
А в чем модифицированность ЦРЦ?

1. нет инверсии бит хэша перед/после прохода по байтам
2. при ксоре со значением из таблицы, используется хэш _арифметически_ сдвинутый вправо, в то время как обычно применяется логический сдвиг

Code:
  1. LDR     R12, =CRC_TABLE
  2. ADD     R0, R7, #0x1F8
  3. MOV     R3, R7
  4. MOV     R2, #0
  5.  
  6. loc_A774:
  7. LDRB    R1, [R3],#1
  8. EOR     R1, R2, R1
  9. AND     R1, R1, #0xFF
  10. LDR     R1, [R12,R1,LSL#2]
  11. CMP     R3, R0
  12. EOR     R2, R1, R2,ASR#8    // R2 = R1 ^ (R2 sar 8)
  13. BNE     loc_A774
  14.  
  15. LDR     R1, [SP,#0x700+readbuf+0x1F8]
  16. CMP     R2, R1


rentast
проверяйте, пропатчил заголовок + CRC

forest911 пишет:
Файл был удален

перезалил

| Сообщение посчитали полезным: rentast


Ранг: 0.6 (гость)
Статус: Участник

Создано: 4 апреля 2017 10:55 New!
Цитата · Личное сообщение · #11

Всем спасибо за участие, особенно -=AkaBOSS=-, прошился, камера работает!

Ранг: 0.2 (гость)
Статус: Участник

Создано: 8 сентября 2017 15:16 New!
Цитата · Личное сообщение · #12

Добрый день! Прошу помощи нужна прошивка. Есть Beward CD120 , необходимо перешить в неё прошивку от Beward N120

Добавлено спустя 0 минут
Файл был удален так как давно это было

Добавлено спустя 3 минуты
rentast-=AkaBOSS=-Добрый день! Прошу помощи нужна прошивка. Есть Beward CD120 , необходимо перешить в неё прошивку от Beward N120

Ранг: 95.7 (постоянный)
Статус: Участник

Создано: 9 сентября 2017 10:59 · Поправил: unknownproject New!
Цитата · Личное сообщение · #13

Добрый день! Прошу помощи нужна прошивка. Есть Beward CD120 , необходимо перешить в неё прошивку от Beward N120
Если их размеры и функциональная нагрузка совпадают, то возможность перепрошивки может быть успешна. В другом случае - получаете кирпич и тогда только выпаивать и перепрограммировать. Или искать сервисные утилиты от производителя, предназначенные для инженеров, что будет сделать весьма трудно.
И уж точно никогда не шить через вебморду, так как очень высока вероятность порчи данных при таком методе прошивки (микроразрывы с низкой пропускной способностью мелких чипов весьма чреваты).

PS.Функционал может по мере выпуска новой прошивки расширяться, так что это тоже надо учитывать.
 eXeL@B —› Вопросы новичков —› CRC файла прошивки

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS