eXeL@B —› Вопросы новичков —› простая чексумма с телефона motorola, не могу посчитать |
Посл.ответ | Сообщение |
|
Создано: 05 июля 2018 08:32 · Поправил: carver · Личное сообщение · #1 здравствуйте. не могу разобрать пару простых чексумм, даже не crc наверное, понимаю что вопрос гула, или первокласника, но что-то у самого не выходит. решил попросить подсказку. что есть. старенький телефон моторола, модель L7c. та часть прошивки, что меня интересует(CG2.smg), состоит из нескольких блоков: в каждом из которых заголовок в 0x310 байт, данные, и дополнение до %16 байт. в заголовке, обычная sum32^0xFFFFFFFF от данных, по адрессу 0x300, еще обычный sum8^0xFF от заголовка, по адрессу 0х304, и непонятная мне чексумма3, по адрессу 0x308. байт 0xC0. а после данных, если они не %16, идет еще одна чексумма4, в моем файле - это байт 0xB1 по адрессу 0x203C. собствено я пытаюсь найти эти две чексуммы, по 0x308 и 0x203C. сам пример файла moto_L7c_PCL_cut_CG2.bin - прилагаю в аттаче. примерный скриншот в спойлере. Code:
но понимаю, что информации может быть недостаточно, перегуглил много мотороловских прошивок, самое симпатичное что я нашел, это W385_CKT.smg. выложил его сюда: https://www.sendspace.com/file/0un523 тут огромное количество блоков, и видно что даже при нулевых данных, нужная мне чексумма3, в заголовке каждого блока, меняется в зависимости, х.з. от чего. от адресса в файле, толи порядкового номера блока, а может и вместе. вот обобщенная мною табличка содержимого W385_CKT.smg: Code:
но единственный паттерн, который я нашел по этой табличке, что в блоках нулевой длины, номера 0xC...0x18, сумма заголовка, очень корелирует с нужной мне чексуммой3 в заголовке, но неизвестная мне переменная, всегда чуть другая, и меняется с шагом 0xB. хотя там где есть данные - это правило уже не работает. Code:
я решил что эта переменная - как-то считается с адресса блоков, или номера блока |
|
Создано: 05 июля 2018 08:34 · Поправил: carver · Личное сообщение · #2 ...не дает дописать в одном посте, наверное много букв в сообщении. я решил что эта переменная - как-то считается с адресса блоков, или номера, типа: 0c+0104c0f0=EA, 0d+0104c400=DF, 0e+0104c710=D4, 0f+0104ca20=C9 10+0104cd30=BE, 11+0104d040=B3, 12+0104d350=A8, 13+0104d660=9D 14+0104d970=92, 15+0104dc80=87, 16+0104df90=7C, 17+0104e2a0=71 но как - я не вижу. а чексумма4, в конце данных, пока ваще без наработок (( надеялся что после первой - будет понятнее, ну и на то, что у некоторых моторолы были )) так-что вопрос, как в moto_L7c_PCL_cut_CG2.bin с аттача, найти чексуммы по 0x308 и 0x203C ? b1cd_05.07.2018_EXELAB.rU.tgz - moto_L7c_PCL_cut_CG2.rar |
|
Создано: 05 июля 2018 09:42 · Поправил: f13nd · Личное сообщение · #3 Всё это конечно очень интересно, но по-моему ты занят не тем. Твой процессор ARM в иде, флешка по 00000000. Алгоритмы контролек ищут в коде прошивки, а не гадают и ищут корелляции. Откуда вообще уверенность, что эти два поля - контрольки? ЗЫ: я бы поставил на хрень типа 5A A5, которую вставляют в прошивку, чтоб проверять ее целостность еще до счета кс в прерывании ресета (чтоб не дразнить вотчдог). Так что закономерности может и не быть, лишь бы эти два байта перед и два байта после данных были равны друг другу. ----- 2 оттенка серого |
eXeL@B —› Вопросы новичков —› простая чексумма с телефона motorola, не могу посчитать |