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

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


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

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

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

 eXeL@B —› Вопросы новичков —› простая чексумма с телефона motorola, не могу посчитать
Посл.ответ Сообщение

Ранг: 46.1 (посетитель)
Статус: Участник

Создано: 5 июля 2018 08:32 · Поправил: carver New!
Цитата · Личное сообщение · #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:
  1. header end:
  2. 00000002C0: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00
  3. 00000002D0: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00
  4. 00000002E0: 00 00 00 00  2C 1D 00 00  10 00 00 00  00 00 00 00
  5. 00000002F0: 02 10 00 00  00 00 00 00  00 00 00 00  00 00 00 00
  6. 0000000300: D4 F3 F4 FF  6D 00 00 00  C0 C0 00 00  00 00 00 00
  7. payload start:                                     
  8. 0000000310: 06 00 00 EA  80 00 00 EA  7F 00 00 EA  7E 00 00 EA
  9. 0000000320: 7D 00 00 EA  7C 00 00 EA  7B 00 00 EA  7A 00 00 EA
  10. ........                                           
  11. payload end:                                       
  12. 0000002000: 30 62 00 73  61 6D 73 75  6E 67 5F 6B  39 66 31 32
  13. 0000002010: 30 38 00 73  61 6D 73 75  6E 67 5F 6B  39 31 67 30
  14. 0000002020: 38 00 73 61  6D 73 75 6E  67 5F 6B 39  6B 31 32 31
  15. 0000002030: 36 00 00 00  F5 15 FF FF  A1 14 FF FF  B1 B1 32 31


но понимаю, что информации может быть недостаточно,
перегуглил много мотороловских прошивок, самое симпатичное что я нашел, это W385_CKT.smg.
выложил его сюда: https://www.sendspace.com/file/0un523
тут огромное количество блоков, и видно что даже при нулевых данных,
нужная мне чексумма3, в заголовке каждого блока, меняется в зависимости,
х.з. от чего. от адресса в файле, толи порядкового номера блока, а может и вместе.

вот обобщенная мною табличка содержимого W385_CKT.smg:

Code:
  1.     data_len !sum32_d !sum8hdr sum_3???  offset   hd_sum
  2. 00) 0100b5c8 a50fa3bb 00000099 00003c3c  00000000 00000754 (payload of: /JFJKN0_X_02_22_10P.s)         3d 3d b6 01 d8 70 b6 01 
  3. 01) 00011342 ffefd842 0000000e 00004848  0100b8e0 000004e9 (payload of: /flex_file.s)         03 03 ff ff ff ff ff ff ff ff ff ff ff ff 
  4. 02) 00009f16 ffb77029 00000087 00002626  0101cf40 00000c29 (payload of: /mobile/skins/Alkali/Alkali.dat)       3e 3e e2 82 1a b8 b0 06 2e 80 
  5. 03) 0000a5c2 ffbded75 00000004 00001919  01027170 00000cdd (payload of: mobile/skins/Alkali/Alkali1.dat)       91 91 fa f7 80 fa 87 73 05 d8 81 71 17 10 
  6. 04) 00001cfe fff765dd 00000036 00005959  01031a50 00000c91 (payload of: mobile/skins/Alkali/Alkali2.dat)       15 15 
  7. 05) 00005ed9 ffe9404d 000000db 00005151  01033a60 00000caf (payload of: mobile/skins/Alkali/Alkali3.dat)       1c 1c 57 0a e1 5d 5c 
  8. 06) 0000620b ffda650f 000000cc 00004646  01039c50 00000be6 (payload of: mobile/skins/Alkali/Alkali4.dat)       04 04 b7 ae dd 
  9. 07) 0000a60b ffe23479 0000003e 00001a1a  01040170 00000c33 (payload of: /mobile/skins/Alkali/Alkali.ski)       84 84 32 35 32 
  10. 08) 0000016d ffffaf72 000000f6 00001414  0104aa90 00000bea (payload of: motorola/shared/audio/Beep.mid)         8a 8a 7f 
  11. 09) 000001a6 ffffa87e 0000006f 00001d1d  0104af10 00000f6c (payload of: motorola/shared/audio/Bits_n_Bytes.mid)           8a 8a 00 1e 4e 7f 00 4b 00 1e 
  12. 0a) 0000045e ffff30b3 000000a5 00007777  0104b3d0 00000e79 (payload of: motorola/shared/audio/Provincial.mid)               38 38 
  13. 0b) 00000299 ffff74df 000000e2 00005d5d  0104bb40 00000dcc (payload of: motorola/shared/audio/Standard.mid)          03 03 7f 0f 5e 7f 00 
  14. 0c) 00000000 ffffffff 00000002 0000ebeb  0104c0f0 00000c01 (payload of: motorola/shared/audio/Claps.mid)       
  15. 0d) 00000000 ffffffff 00000073 00006f6f  0104c400 00000b90 (payload of: motorola/shared/audio/Ding.mid)         
  16. 0e) 00000000 ffffffff 0000005d 00007a7a  0104c710 00000ba6 (payload of: motorola/shared/audio/Drum.mid)         
  17. 0f) 00000000 ffffffff 00000042 00008a8a  0104ca20 00000cc1 (payload of: motorola/shared/audio/Fanfare.mid)   
  18. 10) 00000000 ffffffff 000000b5 00000c0c  0104cd30 00000c4e (payload of: motorola/shared/audio/Lounge.mp3)     
  19. 11) 00000000 ffffffff 000000a9 00000d0d  0104d040 00000c5a (payload of: motorola/shared/audio/Motion.mp3)     
  20. 12) 00000000 ffffffff 000000fd 0000aeae  0104d350 00000406 (payload of: /Motion.mp3)           
  21. 13) 00000000 ffffffff 000000fd 0000a3a3  0104d660 00000406 (payload of: /Motion.mp3)           
  22. 14) 00000000 ffffffff 000000db 0000baba  0104d970 00000428 (payload of: /MyToneDB.db)         
  23. 15) 00000000 ffffffff 000000df 0000abab  0104dc80 00000424 (payload of: /TmpTneDB.db)         
  24. 16) 00000000 ffffffff 000000df 0000a0a0  0104df90 00000424 (payload of: /TmpTneDB.db)         
  25. 17) 00000000 ffffffff 000000df 00009595  0104e2a0 00000424 (payload of: /TmpTneDB.db)         
  26. 18) 00000000 ffffffff 000000df 00008a8a  0104e5b0 00000424 (payload of: /TmpTneDB.db)         
  27. 19) 00004da5 ffe0c16b 000000c0 00008f8f  0104e8c0 00001134 (payload of: motorola/shared/picture/cricket_cykle.gif)     e7 e7 cb 9c b6 cf 7b 3a e0 1f 86 
  28. 1a) 00000e39 fff8fca7 00000008 0000b9b9  01053980 00000e5d (payload of: motorola/shared/picture/cricketK.gif)               e8 e8 1f c6 77 79 12 
  29. 1b) 00006662 ffd3b74c 000000b1 00008383  01054ad0 00000f79 (payload of: motorola/shared/picture/cricketss.gif)             00 00 dc c8 b1 a3 c7 8f 20 43 8a 54 18 10 
  30. 1c) 00000000 ffffffff 00000003 00003737  0105b450 00001100 (payload of: motorola/shared/picture/ss_cricket_240X320.gif)             
  31. 1d) 00000000 ffffffff 000000af 00007f7f  0105b760 00001054 (payload of: motorola/shared/picture/wp_cykle_240x320.gif)                 
  32. 1e) 00000000 ffffffff 0000007c 0000a7a7  0105ba70 00000e87 (payload of: motorola/shared/picture/wp_K_240x320.gif)       
  33. 1f) 00000000 ffffffff 000000ba 00005e5e  0105bd80 00000549 (payload of: /wp_K_240x320.gif)                 
  34. 20) 00000000 ffffffff 000000b3 00005a5a  0105c090 00000d50 (payload of: motorola/shared/picture/Garden.jpg)          
  35. 21) 00000000 ffffffff 00000099 00006969  0105c3a0 00000d6a (payload of: motorola/shared/picture/Splash.jpg)          
  36. 22) 00000000 ffffffff 00000095 00006262  0105c6b0 00000c6e (payload of: motorola/shared/picture/Game.gif)     
  37. 23) 00000000 ffffffff 000000d3 00001919  0105c9c0 00000330 (payload of: /Game.gif)               
  38. 24) 00000000 ffffffff 000000d3 00000e0e  0105ccd0 00000330 (payload of: /Game.gif)               
  39. 25) 00000000 ffffffff 000000d3 00000303  0105cfe0 00000330 (payload of: /Game.gif)               
  40. 26) 00000065 ffffe68d 00000061 0000f5f5  0105d2f0 00000d2d (payload of: motorola/shared/audio/Fanfare.imy)   e2 e2 31 0d 0a 45 4e 44 3a 49 4d 
  41. 27) 00001069 fffd76a9 0000002e 00000e0e  0105d670 000009b6 (payload of: motorola/system/dnp.prf)     f1 f1 74 00 73 00 00 
  42. 28) 00001bb8 fffac271 000000aa 0000fcfc  0105e9f0 00000a29 (payload of: motorola/system/mma_dcp)     c8 c8 73 00 74 00 2e 00 
  43. 29) 00000000 ffffffff 0000008e 00006969  010608c0 00000975 (payload of: motorola/system/mma_ucp)     
  44. 2a) 00000000 ffffffff 000000cf 00001d1d  01060bd0 00000334 (payload of: /mma_ucp)                 
  45. 2b) 000016bc fff81659 0000009b 0000dcdc  01060ee0 000010fe (payload of: motorola/system/web_browser_mm_anime.gif)       a3 a3 b9 90 
  46. 2c) 0000039d fffeb63e 00000012 0000fcfc  010628b0 00000ffc (payload of: motorola/system/web_browser_mm_icn.gif)           27 27 e8 
  47. 2d) 000003ff ffff0588 00000094 00003434  01062f60 000010e0 (payload of: motorola/system/web_browser_mm_list.gif)         f6 
  48. 2e) 000004c5 fffe2a78 0000009a 00000c0c  01063670 00000cc6 (payload of: motorola/system/ckt_mm_icn.gif)         f3 f3 67 24 00 60 86 29 26 98 5e 
  49. 2f) 0000257f fff2585a 000000eb 0000e2e2  01063e50 00000d71 (payload of: motorola/system/ckt_mm_anime.gif)     ba 
  50. 30) 0000024b ffff1dda 0000003e 00008e8e  010666e0 00000ccc (payload of: motorola/system/ckt_mm_list.gif)       fc fc 0c 24 02 
  51. 31) 00002907 ffed3cd5 000000f8 00007373  01066c40 0000110a (payload of: motorola/shared/picture/customer_reset.gif)   97 97 7a 66 64 7b 9e e7 10 
  52. 32) 00000aac fffcf67b 00000088 00003939  01069860 0000090b (payload of: brew_preloads/262686.mif)   3c 3c 00 00 
  53. 33) 00000536 fffe1e1f 00000083 0000afaf  0106a620 00000842 (payload of: brew/mod/262686/help.txt)   c8 c8 38 35 7e 7e 5b 44 4f 4e 
  54. 34) 000000dc ffffadec 00000095 0000f9f9  0106ae70 000009d3 (payload of: brew/mod/262686/memory.txt)                 2a 2a 61 69 
  55. 35) 00009ba4 ffbe334d 0000003b 0000c6c6  0106b260 00000987 (payload of: brew/mod/262686/mill07.bar)                 82 82 97 29 19 a4 2b c8 82 c0 c4 8c 
  56. 36) 0000c5ec ffb102bf 000000e5 00009c9c  01075120 00000ba9 (payload of: brew/mod/262686/mill07demo.mod)         74 74 79 20 
  57. 37) 00000ee8 fffb24f0 00000000 00002626  01081a20 00000af1 (payload of: brew/mod/262686/mill07demo.sig)         23 23 ec 93 9d 7e b7 24 
  58. 38) 0000a155 ffb52766 000000a6 00004b4b  01082c20 00000b18 (payload of: brew/mod/262686/questions.dat)           08 08 63 61 72 6f 6e 69 7c 41 70 
  59. 39) 0000027b ffff1bab 000000dd 00009090  0108d090 0000095e (payload of: brew/mod/262686/update.txt)                 a2 a2 5b 55 50 
  60. 3a) 00002fba ffefa0c0 00000050 00000a0a  0108d620 00000461 (payload of: /msgv.css)               f1 f1 6d 65 6e 74 
  61. 3b) 00000c78 fffc654c 0000005f 0000a7a7  010908f0 000003f4 (payload of: /smil.css)               78 78 73 69 7a 65 3a 73 
  62. 3c) 0001febb fee32724 00000066 00009191  01091880 00000d6d (payload of: brew/mod/brewappmgr/appmgr.bar)         69 69 20 4d 61 
  63. 3d) 000200a4 fedda8ce 0000001e 0000eded  010b1a50 00000d90 (payload of: brew/mod/brewappmgr/es_appmgr.bar)   f2 f2 20 4d 61 6e 61 67 65 72 03 32 


но единственный паттерн, который я нашел по этой табличке,
что в блоках нулевой длины, номера 0xC...0x18, сумма заголовка,
очень корелирует с нужной мне чексуммой3 в заголовке,
но неизвестная мне переменная, всегда чуть другая, и меняется с шагом 0xB.
хотя там где есть данные - это правило уже не работает.
Code:
  1. 0c) 00000c01+EA?=CEB // EB
  2. 0d) 00000b90+DF?=C6F // 6F
  3. 0e) 00000ba6+D4?=C7A // 7A
  4. 0f) 00000cc1+C9?=D8A // 8A
  5. 10) 00000c4e+BE?=D0C // 0C
  6. 11) 00000c5a+B3?=D0D // 0D
  7. 12) 00000406+A8?=4AE // AE
  8. 13) 00000406+9D?=4A3 // A3
  9. 14) 00000428+92?=4BA // BA
  10. 15) 00000424+87?=4AB // AB
  11. 16) 00000424+7C?=4A0 // A0
  12. 17) 00000424+71?=495 // 95
  13. 18) 00000424+66?=48A // 8A


я решил что эта переменная - как-то считается с адресса блоков,
или номера блока

Ранг: 46.1 (посетитель)
Статус: Участник

Создано: 5 июля 2018 08:34 · Поправил: carver New!
Цитата · Личное сообщение · #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 ?

{ Атач доступен только для участников форума } - moto_L7c_PCL_cut_CG2.rar


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

Создано: 5 июля 2018 09:42 · Поправил: f13nd New!
Цитата · Личное сообщение · #3

Всё это конечно очень интересно, но по-моему ты занят не тем. Твой процессор ARM в иде, флешка по 00000000. Алгоритмы контролек ищут в коде прошивки, а не гадают и ищут корелляции. Откуда вообще уверенность, что эти два поля - контрольки?

ЗЫ: я бы поставил на хрень типа 5A A5, которую вставляют в прошивку, чтоб проверять ее целостность еще до счета кс в прерывании ресета (чтоб не дразнить вотчдог). Так что закономерности может и не быть, лишь бы эти два байта перед и два байта после данных были равны друг другу.
 eXeL@B —› Вопросы новичков —› простая чексумма с телефона motorola, не могу посчитать

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

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