![]() Раскрываем подпись прошивки, поиск простых сомножителей ключа. |
![]() |
![]() |
![]() |
![]() |
![]() |
Здравствуйте, гость ( Вход | Регистрация ) |
![]() Раскрываем подпись прошивки, поиск простых сомножителей ключа. |
FEDR |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 5 Регистрация: 17.6.2005 Пользователь №: 44 365 Модель телефона: E398 Рейтинг: 0 ![]() |
|
rookie7799 |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 3 Регистрация: 1.7.2005 Пользователь №: 45 229 Модель телефона: razr v3 Рейтинг: 0 ![]() |
Цитата(dion @ Пятница, 1 Июля 2005, 16:56) Мужики, а чево http://moto.inhex.net/stat.txt не работает? ![]() |
Voxa |
![]() |
![]() (M)otoVoxa ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 694 Регистрация: 13.11.2004 Из: г.Ставрополь Пользователь №: 20 908 Модель телефона: Apple iPhone 6s 32Gb Рейтинг: 466 ![]() |
Цитата(rookie7799 @ Вторник, 5 Июля 2005, 19:32) Нет, теперь сдесь http://moto.inhex.net/index.rsa?show=stats...y=packets&ok=Ok |
Liquid |
![]() |
![]() Новичок ![]() Группа: Пользователи Сообщений: 24 Регистрация: 4.10.2004 Пользователь №: 15 230 Модель телефона: C380 Прошивка: MotoKDE_R365_D3.08R Рейтинг: 0 ![]() |
блин, я чего-то не понимаю эту затею? почти всё тут облазил, а ясности полной не нашел... Мы хотим хорошие прошивы? Да! но неужто надо в лобовую brute force ломать какую-то подпись? Может, лучше разобраться, как это всё (заливка прошивы в тело) происходит на физическом уровне, найти слабое место и, грубо говоря, обвесить проц тела проводами да и получить всё что нам надо без всяких взломов стойких ключей?
Короче, на каком этапе заливки прошивы возникает этот ключ? он физически зашит в каждый тел или проверяется программно? Мне кажется, что взлом прошивы - это больше схемотехнический вопрос, чем программный. ЗЫ. Умный в гору не пойдет, умный гору обойдет... |
alo33 |
![]() |
![]() Мастер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 233 Регистрация: 10.12.2004 Из: Ульяновск Пользователь №: 26 053 Модель телефона: Defy+ Прошивка: 4.5.1-134_DFP-231 Рейтинг: 51 ![]() |
|
dvMax |
![]() |
![]() VIP ![]() ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 1 053 Регистрация: 29.6.2004 Пользователь №: 7 003 Модель телефона: . Рейтинг: 409.5 ![]() |
Сегодня снимал юзер код с тел. Sony Er. T610, в логе с программой встретил интересные строки (пишу на русском)
Цитата "Проверка, RSA активна ?" Наводит на мысль, у сони 610-й так же подписана прошивка RSA подписью...."RSA активна", "Обходим RSA" "Загружаем загрузчик в телефон" ...... |
BeZnOg |
![]() |
![]() Мастер ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 230 Регистрация: 24.3.2005 Из: Москва Пользователь №: 39 439 Модель телефона: Nokia 6233 Прошивка: 05.43 Рейтинг: 55 ![]() |
dvMax,
Инетерсно там 1024 или 512 ключ? |
Archy |
![]() ![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 447 Регистрация: 10.4.2005 Из: Киев Пользователь №: 40 468 Модель телефона: E1-L6-L7e-U9, iPhone Прошивка: M-S1.5RC3 L7e_01.0AR Рейтинг: 516 ![]() |
Че-т я недопонял, надо апдейтить клиента? Не хочет слать просчитанный и не хочет брать новый, говорит, обновите...
Прикрепите плз сверху (чтобы на каждой страничке был) мессагу с последней версией и редактируя это письмо обновляйте, проще намного будет, да и людей поболее - читать 60 страниц мало у кого время есть... |
Паук |
![]() |
![]() Open Mind ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 452 Регистрация: 17.6.2005 Из: Полтава, Украина Пользователь №: 44 370 Модель телефона: (M) Прошивка: разные Рейтинг: 530 ![]() |
Цитата(Liquid @ Среда, 6 Июля 2005, 14:06) блин, я чего-то не понимаю эту затею? почти всё тут облазил, а ясности полной не нашел... Мы хотим хорошие прошивы? Да! но неужто надо в лобовую brute force ломать какую-то подпись? Может, лучше разобраться, как это всё (заливка прошивы в тело) происходит на физическом уровне, найти слабое место и, грубо говоря, обвесить проц тела проводами да и получить всё что нам надо без всяких взломов стойких ключей? Короче, на каком этапе заливки прошивы возникает этот ключ? он физически зашит в каждый тел или проверяется программно? Мне кажется, что взлом прошивы - это больше схемотехнический вопрос, чем программный. ЗЫ. Умный в гору не пойдет, умный гору обойдет... А вот это уже интересная идея. Ломали ведь и плейстейшн, и тот же гейтсовый X-Box мод-чипами, вытворяя потом с ними что угодно? А ведь у х-бокс биос тоже шифрованный и левые приложения запускать не давал (приставка продавалась по цене ниже себестоимости, а на играх это все возмещалось), пока ему мод-чип не прибили. Кто тут у нас с паяльниками дружет, обмозгуйте... |
wRAR |
![]() |
Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 367 Регистрация: 19.2.2005 Из: Екатеринбург Пользователь №: 37 277 Модель телефона: Galaxy S4 Рейтинг: 97 ![]() |
|
Archy |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 447 Регистрация: 10.4.2005 Из: Киев Пользователь №: 40 468 Модель телефона: E1-L6-L7e-U9, iPhone Прошивка: M-S1.5RC3 L7e_01.0AR Рейтинг: 516 ![]() |
Это как раз понятно, но вполне реально договорится в региональных центрах с сервис-центрами (не мотороловскими оригинальными, конечно).
Я, например, гарантированно дам вам наводку в Киеве на ребят, кот с удовольствием будут народу паять за вполне реальные деньги, если им толком объяснить, что и куда паять... Как идея? |
Liquid |
![]() |
![]() Новичок ![]() Группа: Пользователи Сообщений: 24 Регистрация: 4.10.2004 Пользователь №: 15 230 Модель телефона: C380 Прошивка: MotoKDE_R365_D3.08R Рейтинг: 0 ![]() |
В общем, я представляю себе так, что в ППЗУ тела есть бут-лоадер, ключ и еще хрен знает чё, неважно. Бут-лоадер обеспечивает старт системы и возможность перепрошивки Flash. При этом, при включении возможности прошивки он считывает ключ и проверяет им прошиву, кот. мы хотим залить. Не подходит - до свидания.
То есть, надо: 1) разобрать тело и найти дата-шиты на микрухи 2) найти считыватель для того типа ППЗУ, кот. в теле 3) считать ППЗУ (возможно, выпаяв его при этом) 4) искать ключ во всём том барахле, что получим. Может, что-то не так? поправьте меня. ЗЫ. Не стоит оказывать финансовую помощь гр-ну Чубайсу, загружая бесполезной работой тысячи (десятки тысяч) мощных компов. Он и так неплохо живёт. Подумаем лучше о себе! |
Exoundeeq |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 19 Регистрация: 26.11.2004 Пользователь №: 23 178 Модель телефона: c380 Прошивка: 2.31R Рейтинг: 0 ![]() |
|
KQ_44 |
![]() |
Опытный ![]() ![]() ![]() Группа: Пользователи Сообщений: 115 Регистрация: 2.3.2005 Из: Киев Пользователь №: 37 969 Модель телефона: C650=>E1 Рейтинг: 10.5 ![]() |
2Liquid&Co:
>>1) разобрать тело и найти дата-шиты на микрухи Тело разбирали в C650 DSP56621 - даташиты по Нептунам и не только Моторола фиг даст!!! Ребята уже вроде просили, а искал персонально и очень долго - кроме общего описания на фрискале.ком больше НИЧЕГО. >>2) найти считыватель для того типа ППЗУ, кот. в теле ППЗУ находится в микросхеме ЦПУ + там еще много чего. Vilko наваял прогу и телефон сам спокойненько читает содержимое ППЗУ. Проверено - сам таким способом вытягивал Boot-загрузчик. >>3) считать ППЗУ (возможно, выпаяв его при этом) Тяжело выпаять что-то из большого чипсета. Если интересует - на сайте Vilko можно взять дамп. >>4) искать ключ во всём том барахле, что получим. Без проблем - открытый ключ RSA там лежит, НО потому RSA и называется НЕСИММЕНРИЧНЫМ что там 2 ключа: открытый и приватный. Приватный есть у ограниченного кол-ва лиц, имеющих отношение к компании Моторола!!! Но для работы телефона он НЕ НУЖЕН. Прошивка ППЗУ не зашифрована - открытый код. Она просто проверяет RSA-подпись прошивки флеш-ПЗУ. Для понимания посмотрите любое описание RSA-алгоритма - там не сложно, можно посмотреть только ту часть, где описан принцип подписи некоего текста. Если паять - то ВЕСЬ Нептун(ЦПУ). А вот залит-ли в его ППЗУ код или это можно и нужно делать после пайки: звыняйте - не знаю. Если будете паять и сможете залить туда свое - можно показать, что надо подправить. Желаю успехов. |
puper |
![]() |
MotoSHXCoder ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 253 Регистрация: 16.3.2005 Из: Брест Пользователь №: 38 940 Модель телефона: nokia :) Рейтинг: 153.5 ![]() |
Мож от жары глупость пишу, но ...
Разговаривал с неким доселе незнакомым мотофановцем Arkasha18 и вот он утверждает, что у него есть RAMDLD от V3 (подписанный РСА), и есть тел В500, в которм этот загрузчик не подписан. Так вот, когда он заменил неподписанный загрузчик подписанным, тел перестал принимать неподписанные кодовые группы (тот же загрузчик обратно не ставился, на экране бесконечно надпись SW upgrade in progress...). И даже обратно неподписанный нельзя было поставить, кроме как поковырявшись внутрях. Я не доконца понимаю эту тему, но может ли тот подписанный RAMDLD проверять подпись, т.е. может есть кроме хардверного и софтверный вариант. Тогда его надо ломануть и глянуть, с чем он там сравнивает. |
HOLMS |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 588 Регистрация: 12.4.2005 Пользователь №: 40 589 Модель телефона: E398, LG GT540 Рейтинг: 142 ![]() |
"Проверка, RSA активна ?"
"RSA активна", "Обходим RSA" "Загружаем загрузчик в телефон" dvMax, Хм... Истина где-то рядом... |
HOLMS |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 588 Регистрация: 12.4.2005 Пользователь №: 40 589 Модель телефона: E398, LG GT540 Рейтинг: 142 ![]() |
В моём понимании:алгоритм RSA таков:
Что есть некий текст (незашифрованная подпись)-каждая буква имеет десятичное представление от 1 до 255,например 35,62,78,112,2,231 и т.д. Если каждое число умножить на 1024битное число (ключ)-получим абракадабру (зашифрованную подпись) Загрузчик телефона,при запросе на прошивание,проверяет зашифрованную подпись, расшифровывает её 1024битным ключём,который в ППЗУ и уже полученую подпись сравнивает с оригиналом! Если результат сравнения положительный,то новая прошивка преспокойно запишется в тел... Вопрос: где этот оригинал подписи находится?...(в ЦПУ что-ли) Если так,то ковырять надо загрузчик! P.S.Возможно я здесь написал полный бред! поправте меня,пока не поздно! |
hobbit19 |
![]() |
![]() квант истории ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 043 Регистрация: 1.4.2005 Из: Рязань Пользователь №: 39 980 Модель телефона: (M)oTorola Прошивка: testing/unstable ![]() Рейтинг: 739.5 ![]() |
помню как народ давно на форуме рылись в прошивки с350
пытаясь впихнуть в нее яву.вот бы не плохо и их привлеч они не плохо шарили |
wRAR |
![]() |
Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 367 Регистрация: 19.2.2005 Из: Екатеринбург Пользователь №: 37 277 Модель телефона: Galaxy S4 Рейтинг: 97 ![]() |
HOLMS, цифровые подписи по-другому работают.
При воздействии на сообщение (хэш прошивки) закрытым ключом (находится у людей, делающих прошивку) получается подпись. Загрузчик может посчитать хэш, затем расшифровать подпись открытым ключом (зашит) и сравнить оба хэша. Вроде так. Открытый ключ у нас есть, надо получить закрытый, чтобы можно было им подписать переделанную прошивку. |
hobbit19 |
![]() |
![]() квант истории ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 043 Регистрация: 1.4.2005 Из: Рязань Пользователь №: 39 980 Модель телефона: (M)oTorola Прошивка: testing/unstable ![]() Рейтинг: 739.5 ![]() |
о вообще взлом физически возможен??
|
HOLMS |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 588 Регистрация: 12.4.2005 Пользователь №: 40 589 Модель телефона: E398, LG GT540 Рейтинг: 142 ![]() |
|
warmwood |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 11 Регистрация: 10.2.2005 Пользователь №: 36 705 Модель телефона: C650 Прошивка: R365_G_0B.D3.06R Рейтинг: 0 ![]() |
А вообще грустно все. Судя по этому http://www.compulenta.ru/2003/1/28/37101/ добровольцев нам надо очень много :(
|
wRAR |
![]() |
Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 367 Регистрация: 19.2.2005 Из: Екатеринбург Пользователь №: 37 277 Модель телефона: Galaxy S4 Рейтинг: 97 ![]() |
|
HOLMS |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 588 Регистрация: 12.4.2005 Пользователь №: 40 589 Модель телефона: E398, LG GT540 Рейтинг: 142 ![]() |
Есть такая прога RainbowCrack
Она взламывает хэши, |
lwc |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 5 Регистрация: 10.7.2005 Пользователь №: 45 805 Модель телефона: my name is dimichxp Прошивка: and i have e398 Рейтинг: 0 ![]() |
HOLMS,
Алгоритм хеширования - SHA1. RainbowCrack инвертирует хеш [off]неважно как[/off], а нам нужно найти коллизию хеша. Пользователю запрещено создавать сообщения |
hobbit19 |
![]() |
![]() квант истории ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 043 Регистрация: 1.4.2005 Из: Рязань Пользователь №: 39 980 Модель телефона: (M)oTorola Прошивка: testing/unstable ![]() Рейтинг: 739.5 ![]() |
еще в поредке бреда подпись прошивки зависит от исходного размера
если внутри прошивки менять код а потом добивать ее левой инфой для соответствия размеру??? |
HOLMS |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 588 Регистрация: 12.4.2005 Пользователь №: 40 589 Модель телефона: E398, LG GT540 Рейтинг: 142 ![]() |
hobbit19,
Значит что получается: если в прошивке поменять хотя-бы один байт, то и подпись нужно будет менять! Но как загрузчик определяет соответствие подписи и кода? Опять-же все упирается в алгоритм этого bootloadera... |
lwc |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 5 Регистрация: 10.7.2005 Пользователь №: 45 805 Модель телефона: my name is dimichxp Прошивка: and i have e398 Рейтинг: 0 ![]() |
HOLMS,
Все просто. При каждом изменении прошивки (пусть даже на 1 бит) меняется ее хеш. Этот хеш подписывается RSA ключом и полученная подпись заливается в тело. Тело считает при каждой загрузке хеш прошивки. Затем проверяется, что подписаный хеш равен хешу прошивки. Пользователю запрещено создавать сообщения |
JuriCh |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 15 Регистрация: 3.7.2005 Пользователь №: 45 301 Модель телефона: Motorola V620 Рейтинг: 0 ![]() |
Извините за шутку. Фирма Motorola с вас прикалываеться. А тому кто всетаки сделает и решит эту проблему - памятник как Ленину поставят и Нобелевскую премию вручат
![]() |
HOLMS |
![]() |
![]() Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 588 Регистрация: 12.4.2005 Пользователь №: 40 589 Модель телефона: E398, LG GT540 Рейтинг: 142 ![]() |
А как обстоят дела по поводу подбора SHA хеша?
Вроде как последняя надежда если не ошибаюсь!? P.S. не принимайте в штыки мои идиотские посты,я пишу от имени всех, кто в танке! |
lwc |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 5 Регистрация: 10.7.2005 Пользователь №: 45 805 Модель телефона: my name is dimichxp Прошивка: and i have e398 Рейтинг: 0 ![]() |
HOLMS,
Найти коллизию SHA-1 хеша не такое уж и простое дело... [off]К примеру скажу, что уже получили коллизию MD5 хеша причем оба документа были осмысленнымы (текст в формате ps) и различными.[/off] Пользователю запрещено создавать сообщения |
hobbit19 |
![]() |
![]() квант истории ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 043 Регистрация: 1.4.2005 Из: Рязань Пользователь №: 39 980 Модель телефона: (M)oTorola Прошивка: testing/unstable ![]() Рейтинг: 739.5 ![]() |
а если в bootloaderе покапаться???
|
lwc |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 5 Регистрация: 10.7.2005 Пользователь №: 45 805 Модель телефона: my name is dimichxp Прошивка: and i have e398 Рейтинг: 0 ![]() |
hobbit19,
И что ты там будешь искать? Пользователю запрещено создавать сообщения |
wRAR |
![]() |
Ветеран ![]() ![]() ![]() ![]() ![]() Группа: Почётные мотофаны Сообщений: 367 Регистрация: 19.2.2005 Из: Екатеринбург Пользователь №: 37 277 Модель телефона: Galaxy S4 Рейтинг: 97 ![]() |
|
Arkasha18 |
![]() |
![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 242 Регистрация: 27.4.2004 Из: Санкт-Петербург Пользователь №: 2 Модель телефона: E2 Прошивка: 45R Рейтинг: 249.5 ![]() |
Карта памяти в С650
=== Loader - 0x10000000 - 0x1000E7FF Ldr_Sign - 0x1000E800 - 0x1000EFFF HWBlock - 0x1000F000 - 0x1000FFFF SecureZone - 0x10010000 - 0x1001FFFF PanicData - 0x10020000 - 0x1003FFFF DSP - 0x10040000 - 0x1007FFFF MemMap - 0x10080000 - 0x100800C3 MainFlash - 0x100800C4 - 0x1091FFFF Graph - 0x10920000 - 0x109DFFFF LangPack - 0x109E0000 - 0x10B1F7FF MainFlash_Sign - 0x10B1F800 - 0x10B1FFFF ################ Есть 2 подписи: 1. для загрузчика с адреса 0х10000000 по 0х1000E7FF начинается с 0х1000E800, оформлена как часть блока загрузчика проверяет только код загрузчика, 2. для части прошивки с с адреса 0х10040000 по 0х1091FFFF начинается с 0х10B1F810, оформлена в отдельный блок по адресу 0х10B1F800 проверяет блок кода DSP, карту памяти, код прошивки. ################ Все смещения относительно начала подписи! Некие поля в сертификате обусловлены стандартом ASN.1. Они все в основном проверяются. По всем вопросам - туда. === Подпись загрузчика: = Это блок параметров, его размер >5 байт и <=512 байт FLASH:1000E800 LdrSignParam DCB 0xB1 ; type=название не существенно, всегда должно быть 0xB1 FLASH:1000E800 DCW 0xC6 ; OffsetCert =>1000E8C6/Cert_Ldr_SignParam - это смещение на 1-й сертификат FLASH:1000E800 DCB 2 ; HWVer - это тип железа, в данном случае Product Version Если этот массив имеет размер 0х14 байт, то сравнивается с записанным по адресу ROM_0х00005278/Std_SerNum Если этот массив имеет размер 0х0E байт, то сравнивается с CPU_SerNum FLASH:1000E800 DCB 0x14 ; Size_SerNum - размер массива SerNum FLASH:1000E800 DCB 0xDA, 0x95, 0x1B, 0x6D, 0xDC, 0x97, 0х07, 0xCE, 0x40; SerNum FLASH:1000E800 DCB 0xEA, 0x53, 0x0F, 0x90, 0x20, 0x91, 0xB5, 0x20, 0xDD; SerNum FLASH:1000E800 DCB 0x2F, 0xF3 ; SerNum FLASH:1000E800 DCW 0x30FF ; CmdBlock.Cmd_InitPubKey=команда "загрузить новый RSA-ключ" FLASH:1000E800 DCB 0xFF ; CmdBlock.SizeCertPubKey=размер сертификата без подписи FLASH:1000E800 DCD 0x247 ; CmdBlock.OffsetCert=ссылка на сертефикат=0х1000EA47/Cert_Ldr FLASH:1000E800 DCB 1 ; CmdBlock.PubKeyNum_TestCert=номер ключа, которым проверяется подпись сертификата FLASH:1000E800 DCB 1 ; CmdBlock.PubKeyNum_Set_in_arrPubKey=номер нового ключа в массиве проверенных ключей FLASH:1000E800 DCW 0xC30 ; CmdBlock.Cmd_VerifiedMem_without_HWParam=команда "проверить блок памяти" FLASH:1000E800 DCW 0x11 ; CmdBlock.Flags=Флаг="железный" SHA-1 FLASH:1000E800 DCB 1 ; CmdBlock.MemNum=кол-во блоков в массиве FLASH:1000E800 DCD StartFlash ; CmdBlock.MemAddr=начало проверяемого блока FLASH:1000E800 DCD 0xE800 ; CmdBlock.MemSize=размер проверяемого блока тут может продолжаться массив из элементов MemAddr-MemSize FLASH:1000E800 DCD 0x3D1 ; CmdBlock.Offset_RSASign=ссылка на подпись=0х1000EBD1/Ldr_RSASign FLASH:1000E800 DCB 1 ; CmdBlock._PubKeyNum=номер ключа, которым проверяется подпись эта команда аналогична предыдущей FLASH:1000E800 DCW 0xC30 ; CmdBlock.Cmd_VerifiedMem_without_HWParam FLASH:1000E800 DCW 0x11 ; CmdBlock.Flags FLASH:1000E800 DCB 1 ; CmdBlock.MemNum FLASH:1000E800 DCD HWBlock ; CmdBlock.MemAddr FLASH:1000E800 DCD 4 ; CmdBlock.MemSize FLASH:1000E800 DCD 0x451 ; CmdBlock.Offset_RSASign=0х1000EC51/HWBlock_RSASign FLASH:1000E800 DCB 1 ; CmdBlock._PubKeyNum <=предыдущий байт подпись для блока параметров от 0х1000E800 и до предыдущего байта FLASH:1000E800 RSASign_LdrSignParam DCB 0x10, 0x2F, 0xE9, 0x88, 0xD9, 4, 0xEC, 0x34, 0xD0; RSASign FLASH:1000E800 DCB 0x55, 0xF3, 0xCD, 0xD, 0xD1, 0x14, 0x65, 0x88, 0x9E; RSASign FLASH:1000E800 DCB 0x6B, 0xEA, 0x9F, 0x4A, 0x31, 0x21, 0x9F, 0x45, 0x61; RSASign FLASH:1000E800 DCB 0x3D, 0x5E, 0xB8, 0xA5, 0x9D, 0xEA, 0x88, 0x63, 0x27; RSASign FLASH:1000E800 DCB 0x71, 0x49, 0x66, 0xD2, 0xC8, 0x9F, 0xFA, 0xE9, 0x24; RSASign FLASH:1000E800 DCB 0x4A, 0x33, 0xFC, 0xF9, 0x83, 0xF6, 0x6B, 0x8E, 0xA5; RSASign FLASH:1000E800 DCB 0x61, 0x62, 0xF7, 0xF3, 0xA4, 0x2A, 0x40, 0x83, 0xDA; RSASign FLASH:1000E800 DCB 0x9A, 0xBD, 0xF5, 0xA0, 0x26, 0x9B, 0xBE, 0x73, 0xCA; RSASign FLASH:1000E800 DCB 0x82, 0xEC, 0xAE, 0x35, 0x10, 0x14, 0x5D, 0x64, 0x6C; RSASign FLASH:1000E800 DCB 0x25, 0xB8, 0x45, 0xBB, 0xDC, 0x10, 0xB6, 0x67, 9; RSASign FLASH:1000E800 DCB 0xE0, 0x18, 0x23, 0x5E, 0xD6, 0xBB, 0xAF, 0x8B, 0x20; RSASign FLASH:1000E800 DCB 0xB1, 0x98, 0xA1, 0xC4, 0x4B, 0x5A, 0x4C, 0x56, 0x2E; RSASign FLASH:1000E800 DCB 0x52, 0xEE, 0x93, 0xA4, 0x74, 0x94, 0xB1, 0x99, 0xCE; RSASign FLASH:1000E800 DCB 0x6B, 0x96, 0x7E, 0xFF, 0x59, 0xA2, 0x12, 0xAD, 0xC8; RSASign FLASH:1000E800 DCB 0x99, 0x10 ; RSASign === Сертификат предоставляет открытый RSA-ключ для проверки подписи RSASign_LdrSignParam. Проверяется RSA-ключом под номером 0 - железный ключ, зашитый в ПЗУ (ROM_0x0000529C). Ключ помещается в массив открытых ключей (RAM_0х03FC2E0C) под номером 1. = FLASH:1000E8C6 Cert_Ldr_SignParam DCB 1 ; field_0=ASN.1 FLASH:1000E8C6 DCB 2 ; field_1=ASN.1 FLASH:1000E8C6 DCB 1 ; issuer.StdHdr.Type=ASN.1 FLASH:1000E8C6 DCW 4 ; issuer.StdHdr.field_1=ASN.1 FLASH:1000E8C6 DCB 50 ; issuer.StdHdr.StrSize=размер следующей строки в байтах FLASH:1000E8C6 DCB 'CN=Motorola PCS CA9,OU=Motorola PKI,O=Motorola Inc'; issuer.Str FLASH:1000E8C6 DCD 0x3F9E13F0 ; validity.notBefore=это дата/время годности сертификата, не ранее FLASH:1000E8C6 DCD 0x58DB5B70 ; validity.notAfter=это дата/время годности сертификата, не позже FLASH:1000E8C6 DCB 1 ; subject.StdHdr.Type=ASN.1 FLASH:1000E8C6 DCW 4 ; subject.StdHdr.field_1=ASN.1 FLASH:1000E8C6 DCB 50 ; subject.StdHdr.StrSize=размер следующей строки в байтах FLASH:1000E8C6 DCB 'C', 'N', '=', 'C', 'S', 'F', ' ', 'C', 'A', ' ', '9'; subject.Str FLASH:1000E8C6 DCB '-', '5', ',', 'O', 'U', '=', 'M', 'o', 't', 'o', 'r'; subject.Str FLASH:1000E8C6 DCB 'o', 'l', 'a', ' ', 'P', 'K', 'I', ',', 'O', '=', 'M'; subject.Str FLASH:1000E8C6 DCB 'o', 't', 'o', 'r', 'o', 'l', 'a', ' ', 'I', 'n', 'c'; subject.Str FLASH:1000E8C6 DCB ';', 'S', 'N', '=', '1', '0'; subject.Str FLASH:1000E8C6 DCB 2 ; field_76=ASN.1 FLASH:1000E8C6 DCB 0 ; field_77=ASN.1 FLASH:1000E8C6 DCW 3 ; E.Size=размер в байтах числа Е для RSA <=4 FLASH:1000E8C6 DCB 1, 0, 1 ; E.E=число Е для RSA FLASH:1000E8C6 DCW 128 ; N.Size=размер в байтах числа N для RSA <= 128 FLASH:1000E8C6 DCB 0xD6, 0x1C, 0x89, 1, 0x4A, 0x7E, 0xC6, 0x49, 0xDB; N.N=число N для RSA FLASH:1000E8C6 DCB 0xFD, 0x36, 0x91, 0x79, 0x75, 0x53, 0xDE, 0xB3, 0xEC; N.N FLASH:1000E8C6 DCB 0x2E, 0x6D, 0x6C, 0x1D, 0xC4, 0x4B, 0x63, 0x1D, 0x7C; N.N FLASH:1000E8C6 DCB 0xFA, 0xAB, 0xBD, 0x4A, 0xB2, 0x4A, 0x91, 0x12, 0x7D; N.N FLASH:1000E8C6 DCB 3, 0x86, 0xBA, 0x87, 0x50, 0xFD, 0xDF, 0xF7, 0x48; N.N FLASH:1000E8C6 DCB 0xCA, 0x7D, 0x5C, 0, 0x95, 0xC3, 0xD4, 0x11, 0xBF; N.N FLASH:1000E8C6 DCB 0xBE, 0x9D, 0xC9, 0x68, 0xBC, 0x92, 0xBB, 0x3C, 0x3F; N.N FLASH:1000E8C6 DCB 0x2C, 0xF6, 0xF6, 0xD, 8, 0x99, 0x55, 0xBB, 0x87, 0x9C; N.N FLASH:1000E8C6 DCB 0x3E, 0xFD, 0xE4, 0x2F, 0x89, 0x7E, 0x3E, 0x80, 0xB9; N.N FLASH:1000E8C6 DCB 0x1D, 0x40, 0xC0, 0x6D, 0x99, 0x1F, 0x93, 0x14, 0x92; N.N FLASH:1000E8C6 DCB 0x5C, 0x31, 0x91, 8, 0x10, 0x4E, 0xD9, 0xB8, 0x39; N.N FLASH:1000E8C6 DCB 0xA1, 0xC6, 0x6E, 0x91, 0x6E, 0xEF, 0x46, 0xEF, 0xE0; N.N FLASH:1000E8C6 DCB 0xAE, 0x1D, 0x9A, 0x8A, 8, 0x3D, 0x16, 0xA8, 0x68; N.N FLASH:1000E8C6 DCB 0xA4, 0x4B, 0x1F, 0x74, 2, 0xDD, 0x42, 0x32, 0xE0; N.N FLASH:1000E8C6 DCB 0xA1 ; N.N <=0х1000E8D5 Эта подпись относится к области от 0х1000E8C6/Cert_Ldr_SignParam до 0х1000E8D5 - это адрес байта всерху FLASH:1000E8C6 DCW 128 ; RSASign.Size=размер в байтах RSA подписи FLASH:1000E8C6 DCB 0x8F, 0x15, 0xBB, 0x9D, 0x96, 0x27, 0x6C, 0x2D, 0x1F; RSASign.Sign=RSA подпись FLASH:1000E8C6 DCB 0xAC, 0x2C, 0xA8, 0x54, 0xA4, 0xFF, 0xF0, 0x1A, 0x96; RSASign.Sign FLASH:1000E8C6 DCB 0x1C, 0xF2, 0x2C, 0x52, 0x64, 0x73, 0x69, 0x1B, 0x9A; RSASign.Sign FLASH:1000E8C6 DCB 0x2A, 0xF8, 0xA2, 0xDF, 0xF2, 0x9C, 0x66, 0xA6, 0xAA; RSASign.Sign FLASH:1000E8C6 DCB 6, 0x1F, 0x7A, 0x2E, 0x33, 0xBB, 0x24, 0x34, 0x3B; RSASign.Sign FLASH:1000E8C6 DCB 0x34, 0x85, 0x5B, 0x38, 0xEF, 0xBB, 0x55, 0x50, 0xF3; RSASign.Sign FLASH:1000E8C6 DCB 0x6B, 0xC0, 0x51, 0xB2, 0x95, 4, 0x43, 0x41, 0x10; RSASign.Sign FLASH:1000E8C6 DCB 0x88, 0x9F, 0xE0, 0x46, 0xE7, 0x43, 0x42, 0xB7, 0xF2; RSASign.Sign FLASH:1000E8C6 DCB 0xF4, 0xFE, 0x6C, 0x37, 0xEC, 0x12, 0xEB, 0x49, 5; RSASign.Sign FLASH:1000E8C6 DCB 0x38, 0x7A, 0x82, 0xAB, 0x33, 0x97, 0, 0x40, 0xE5; RSASign.Sign FLASH:1000E8C6 DCB 0xAE, 0x96, 0, 0x27, 0xEB, 0xDE, 0x68, 0xD, 0x24, 0x23; RSASign.Sign FLASH:1000E8C6 DCB 0xC2, 0xE5, 0xD1, 0xF4, 0x5F, 0x94, 0xF6, 0xAD, 0xD1; RSASign.Sign FLASH:1000E8C6 DCB 0xEF, 0x80, 0xE9, 0x19, 0xF2, 0x2B, 0xDB, 0xB6, 0x1B; RSASign.Sign FLASH:1000E8C6 DCB 0x8B, 0xDE, 0x4C, 0xCB, 0x3F, 0x7C, 0xCC, 0xA8, 0x1E; RSASign.Sign FLASH:1000E8C6 DCB 0xBB ; RSASign.Sign FLASH:1000EA47 Cert_Ldr DCB 1 ; field_0 FLASH:1000EA47 DCB 2 ; field_1 FLASH:1000EA47 DCB 1 ; issuer.StdHdr.Type FLASH:1000EA47 DCW 4 ; issuer.StdHdr.field_1 FLASH:1000EA47 DCB 44 ; issuer.StdHdr.StrSize FLASH:1000EA47 DCB 'C', 'N', '=', 'C', 'S', 'F', ' ', 'C', 'A', ' ', '9'; issuer.Str FLASH:1000EA47 DCB '-', '5', ',', 'O', 'U', '=', 'M', 'o', 't', 'o', 'r'; issuer.Str FLASH:1000EA47 DCB 'o', 'l', 'a', ' ', 'P', 'K', 'I', ',', 'O', '=', 'M'; issuer.Str FLASH:1000EA47 DCB 'o', 't', 'o', 'r', 'o', 'l', 'a', ' ', 'I', 'n', 'c'; issuer.Str FLASH:1000EA47 DCD 0x3F9E13F0 ; validity.notBefore FLASH:1000EA47 DCD 0x58DB5B70 ; validity.notAfter FLASH:1000EA47 DCB 1 ; subject.StdHdr.Type FLASH:1000EA47 DCW 4 ; subject.StdHdr.field_1 FLASH:1000EA47 DCB 65 ; subject.StdHdr.StrSize FLASH:1000EA47 DCB 'C', 'N', '=', 'A', 'p', 'p', 'l', 'i', 'c', 'a', 't'; subject.Str FLASH:1000EA47 DCB 'i', 'o', 'n', ' ', 'S', 'i', 'g', 'n', 'i', 'n', 'g'; subject.Str FLASH:1000EA47 DCB ' ', '9', '-', '5', '-', '1', ',', 'O', 'U', '=', 'M'; subject.Str FLASH:1000EA47 DCB 'o', 't', 'o', 'r', 'o', 'l', 'a', ' ', 'P', 'K', 'I'; subject.Str FLASH:1000EA47 DCB ',', 'O', '=', 'M', 'o', 't', 'o', 'r', 'o', 'l', 'a'; subject.Str FLASH:1000EA47 DCB ' ', 'I', 'n', 'c', ';', 'S', 'N', '=', '0', '7'; subject.Str FLASH:1000EA47 DCB 2 ; field_7F FLASH:1000EA47 DCB 0 ; field_80 FLASH:1000EA47 DCW 3 ; E.Size FLASH:1000EA47 DCB 1, 0, 1 ; E.E FLASH:1000EA47 DCW 128 ; N.Size FLASH:1000EA47 DCB 0xAC, 0xC8, 0xBE, 0x80, 0xFE, 0xDC, 0x65, 0x9D, 0xB5; N.N FLASH:1000EA47 DCB 0xC7, 0xB2, 0x3E, 0x4A, 0xEA, 0x61, 0x86, 0x91, 0x76; N.N FLASH:1000EA47 DCB 0xAD, 0xE1, 0xD9, 0x96, 0x64, 0x9A, 0x57, 0xFA, 0x5A; N.N FLASH:1000EA47 DCB 0x4E, 0x72, 0x32, 0xE2, 0x82, 0x26, 0x39, 0x53, 0xB5; N.N FLASH:1000EA47 DCB 0x6E, 0x81, 0x4A, 0x63, 0x28, 0xDB, 0x82, 0x29, 0x51; N.N FLASH:1000EA47 DCB 0x9F, 0x9B, 0xC0, 0x27, 0x16, 0x8A, 0xFD, 0xF5, 0xF0; N.N FLASH:1000EA47 DCB 0xEB, 0xE6, 0xA0, 0x8F, 0xA7, 0x72, 5, 0x2C, 2, 0x5C; N.N FLASH:1000EA47 DCB 0x4D, 0xF3, 0xDE, 0x29, 0xEC, 0xF9, 0x99, 0x90, 0x6F; N.N FLASH:1000EA47 DCB 0x42, 0xD9, 0xC4, 0x15, 0x16, 0xF5, 0xDE, 0xE0, 0xCB; N.N FLASH:1000EA47 DCB 0x80, 0xD5, 0x42, 0x65, 0xFA, 0xE8, 0x3F, 0x43, 0x25; N.N FLASH:1000EA47 DCB 0x86, 0x44, 0x8C, 0x69, 0xF4, 0xF1, 0x48, 0xC8, 0xAB; N.N FLASH:1000EA47 DCB 0xF9, 0x8B, 0xB9, 0x4A, 0x35, 0x3B, 0xB9, 0xAB, 0x96; N.N FLASH:1000EA47 DCB 0x5E, 0x32, 0xE7, 0x8A, 0x6B, 0xC4, 0x52, 0x84, 0xF7; N.N FLASH:1000EA47 DCB 0x2C, 0xFA, 0xEB, 0x6F, 0xC4, 0x96, 0x49, 4, 0xE8; N.N FLASH:1000EA47 DCB 1 ; N.N FLASH:1000EA47 DCW 0x80 ; RSASign.Size FLASH:1000EA47 DCB 0x22, 0x3F, 0xB4, 0x1D, 0xBE, 0xC8, 0x8B, 0xEF, 0xD9; RSASign.Sign FLASH:1000EA47 DCB 0x41, 0x82, 0x75, 0xBB, 0x27, 0x14, 0x25, 0xF2, 0x77; RSASign.Sign FLASH:1000EA47 DCB 0x4D, 0x78, 0xEA, 0x75, 0x87, 0x4C, 0x7A, 0xE4, 3; RSASign.Sign FLASH:1000EA47 DCB 0xC9, 0x18, 0xCC, 0xBA, 0x22, 0x11, 0xEA, 0x86, 0xD5; RSASign.Sign FLASH:1000EA47 DCB 0x87, 0xB4, 0xB0, 0xB9, 0xB2, 0xBD, 0x80, 0x66, 0xC9; RSASign.Sign FLASH:1000EA47 DCB 0x6C, 0x55, 2, 0xD6, 0x61, 0x3F, 6, 0x18, 9, 0x1B; RSASign.Sign FLASH:1000EA47 DCB 0x75, 0x18, 0xCA, 0x21, 0x83, 0x52, 0xC9, 0x17, 0x36; RSASign.Sign FLASH:1000EA47 DCB 2, 0x9A, 0x84, 0x66, 2, 0x35, 0xFC, 0x72, 0x7C, 0xCE; RSASign.Sign FLASH:1000EA47 DCB 0xB6, 0xCC, 0xC3, 0x91, 0x12, 0x81, 0x2C, 0x82, 0x97; RSASign.Sign FLASH:1000EA47 DCB 0x8A, 0xE5, 0x62, 0xE6, 0x6D, 0xAF, 0x6E, 0xB8, 0xAB; RSASign.Sign FLASH:1000EA47 DCB 0x16, 0xC5, 0x53, 0x8B, 0x64, 0x37, 0x8B, 0x7B, 0xC4; RSASign.Sign FLASH:1000EA47 DCB 0x2B, 0x85, 0x9C, 0xDC, 0x37, 0x3E, 0x55, 0x42, 0x5B; RSASign.Sign FLASH:1000EA47 DCB 0xEB, 0x57, 0xD5, 0x9E, 0x11, 0xF3, 0x7D, 0x4A, 0x92; RSASign.Sign FLASH:1000EA47 DCB 0x16, 0x81, 0x92, 0xF5, 0x12, 0xC3, 0x33, 0x24, 0x60; RSASign.Sign FLASH:1000EBD1 Ldr_RSASign DCB 4, 0x11, 0x51, 0x72, 0x23, 0x52, 0x1E, 0x98, 0x9B FLASH:1000EBD1 DCB 0xB, 4, 0x78, 0x81, 0xE4, 0xFF, 0x79, 0x6C, 0xB7, 0xB2 FLASH:1000EBD1 DCB 0xFC, 0x41, 0xF5, 0xCC, 7, 0x50, 0xD, 0xD, 0xC9, 0xAB FLASH:1000EBD1 DCB 0x49, 0x21, 0xFD, 0xF8, 0xEA, 0x22, 0xBB, 0xF4, 0xF2 FLASH:1000EBD1 DCB 0x13, 0x58, 0xEE, 0xF6, 0xAF, 0x85, 0xDF, 0x8B, 0x18 FLASH:1000EBD1 DCB 6, 0xB4, 0xED, 0x70, 0x78, 0xF8, 0x33, 0x36, 0x60 FLASH:1000EBD1 DCB 0x63, 0xE5, 0xD8, 0x7F, 0x3D, 0x8A, 0x4A, 0x54, 0x88 FLASH:1000EBD1 DCB 0x7D, 0xE8, 0xCA, 0x29, 0xA2, 0xDA, 0x41, 0x55, 0xB FLASH:1000EBD1 DCB 0x6F, 0x26, 0xFA, 0xD7, 0x70, 0xF7, 0xEA, 0x81, 0x9F FLASH:1000EBD1 DCB 0x7C, 0x2E, 0xCD, 0xAA, 0xD0, 0x2A, 0x47, 0x2A, 0x45 FLASH:1000EBD1 DCB 0x68, 0x71, 0x3A, 0x5B, 0x96, 0x8C, 0xA5, 0x46, 0x9C FLASH:1000EBD1 DCB 0xF4, 0x14, 0x47, 0xB0, 0x93, 0x21, 0x4D, 0x89, 0xC1 FLASH:1000EBD1 DCB 0x30, 0xD6, 0xC0, 0xAF, 0xD0, 0x2C, 0xE8, 0xA5, 0x60 FLASH:1000EBD1 DCB 0xBA, 0x18, 0x6D, 0x91, 0x81, 0x88, 0xB5, 0x69, 0xE4 FLASH:1000EC51 HWBlock_RSASign DCB 0x96, 0xE2, 0x70, 0xA5, 0xBA, 0x7C, 0xD6, 1, 0xAC FLASH:1000EC51 DCB 0xF5, 0xAA, 0xE6, 0x9A, 0x22, 0x29, 0x2F, 0x48, 0x9D FLASH:1000EC51 DCB 9, 0x29, 0xAB, 0x31, 0xB, 0x85, 0x15, 0xD3, 0xC4, 0xAA FLASH:1000EC51 DCB 0x6C, 0xE1, 0xFE, 0xA7, 0xCE, 0x60, 0xA1, 0x48, 0xB0 FLASH:1000EC51 DCB 2, 0x56, 0xB6, 0x27, 0x70, 0x59, 0xB1, 0x96, 0x90 FLASH:1000EC51 DCB 0x83, 0xC, 0x3C, 0xD8, 0x4E, 0x7F, 0x83, 0x11, 0xA6 FLASH:1000EC51 DCB 0x5A, 0x2E, 0x17, 0x44, 0xE7, 0xDA, 0x8C, 0xE6, 0xC7 FLASH:1000EC51 DCB 0x47, 0x87, 0xB2, 0xEB, 0xC4, 0x9D, 9, 0x13, 0x71 FLASH:1000EC51 DCB 0x4F, 0x45, 0x13, 0xFD, 0x82, 0xE2, 0x46, 0xE0, 0x94 FLASH:1000EC51 DCB 0x91, 0xB, 6, 0x55, 0x21, 0xDD, 0xBB, 0xAD, 0xB6, 0xEE FLASH:1000EC51 DCB 0xCA, 0x80, 0xCF, 0xEE, 0x32, 0x6E, 0xF2, 0xB6, 0xDD FLASH:1000EC51 DCB 0x68, 0x72, 0x5F, 0x23, 0x8D, 0xD5, 0x94, 0xD0, 4 FLASH:1000EC51 DCB 0x8D, 0x1D, 6, 0x9D, 0xC6, 0x63, 0x51, 0x63, 0x98 FLASH:1000EC51 DCB 0x88, 0x9F, 0x73, 0x5A, 0x87, 0xCE, 0x7A, 0x49, 0x2E ############## Подпись прошывки: аналогична подписи загрузчика. Отличие в проверке одного блока памяти. FLASH:10B1F810 FlashSignParam DCB 0xB1 ; type FLASH:10B1F810 DCW 0xB4 ; OffsetCert FLASH:10B1F810 DCB 2 ; HWVer FLASH:10B1F810 DCB 0x14 ; Size_SerNum FLASH:10B1F810 DCB 0xDA, 0x95, 0x1B, 0x6D, 0xDC, 0x97, 7, 0xCE, 0x40; SerNum FLASH:10B1F810 DCB 0xEA, 0x53, 0xF, 0x90, 0x20, 0x91, 0xB5, 0x20, 0xDD; SerNum FLASH:10B1F810 DCB 0x2F, 0xF3 ; SerNum FLASH:10B1F810 DCW 0x30FF ; CmdBlock.Cmd_InitPubKey FLASH:10B1F810 DCB 0xFF ; CmdBlock.SizeCertPubKey FLASH:10B1F810 DCD 0x235 ; CmdBlock.OffsetCert FLASH:10B1F810 DCB 1 ; CmdBlock.PubKeyNum_TestCert FLASH:10B1F810 DCB 1 ; CmdBlock.PubKeyNum_Set_in_arrPubKey FLASH:10B1F810 DCW 0xC30 ; CmdBlock.Cmd_VerifiedMem_without_HWParam FLASH:10B1F810 DCW 0x11 ; CmdBlock.Flags FLASH:10B1F810 DCB 1 ; CmdBlock.MemNum FLASH:10B1F810 DCD Block_DSP ; CmdBlock.MemAddr FLASH:10B1F810 DCD 0x8E0000 ; CmdBlock.MemSize FLASH:10B1F810 DCD 0x3BF ; CmdBlock.Offset_RSASign FLASH:10B1F810 DCB 1 ; CmdBlock._PubKeyNum FLASH:10B1F810 DCB 0x0E, 0xBD, 0x06, 0x51, 0x6B, 0xA4, 0x76, 0xDF, 0x82, 0xA0; RSASign FLASH:10B1F810 DCB 0x66, 0xCB, 0x16, 0xFF, 0x2E, 0xB2, 0x6F, 0x9A, 0xC0; RSASign FLASH:10B1F810 DCB 0x6E, 0xA8, 0x40, 0x55, 0xD4, 0x4B, 0x35, 0x72, 0x25; RSASign FLASH:10B1F810 DCB 0xAA, 0x76, 0x48, 0xC5, 0x77, 0x66, 0xCC, 0xC7, 0x26; RSASign FLASH:10B1F810 DCB 0x6B, 0xDC, 0x84, 0x49, 0x3A, 0xFB, 0x89, 0xD8, 0xEE; RSASign FLASH:10B1F810 DCB 0x9B, 0x29, 0xE3, 0xAD, 0xEF, 0xB6, 0x0D, 0x4F, 0x17; RSASign FLASH:10B1F810 DCB 0x85, 0x41, 0xFF, 0x59, 0x10, 0x74, 0xC3, 0x35, 0x4D; RSASign FLASH:10B1F810 DCB 0x10, 0x6D, 0x94, 0x94, 0x9E, 0x47, 0x2E, 0x33, 0xC9; RSASign FLASH:10B1F810 DCB 0x67, 0x82, 0x17, 0x2D, 0x54, 0x84, 0xA7, 0xD6, 0x85; RSASign FLASH:10B1F810 DCB 0x26, 0x03, 0xD6, 0xB2, 0x81, 0x49, 0xF9, 0x96, 0x75; RSASign FLASH:10B1F810 DCB 0x4E, 0x7F, 0xFD, 0x37, 0x65, 0x90, 0x58, 0xBA, 0x05; RSASign FLASH:10B1F810 DCB 0x1F, 0xF5, 0x62, 0x3D, 0xBC, 0xE2, 0x20, 0x63, 0xD0; RSASign FLASH:10B1F810 DCB 0x7A, 0x81, 0x4D, 0xC7, 0xF1, 0xF2, 0xF9, 0x44, 0xEB; RSASign FLASH:10B1F810 DCB 0x29, 0x41, 0xB7, 0x04, 0xEB, 0xD2, 0xC7, 0x3B, 0xDE; RSASign FLASH:10B1F810 DCB 0x2F ; RSASign FLASH:10B1F8C4 Cert_Flash_SignParam DCB 1 ; field_0 FLASH:10B1F8C4 DCB 2 ; field_1 FLASH:10B1F8C4 DCB 1 ; issuer.StdHdr.Type FLASH:10B1F8C4 DCW 4 ; issuer.StdHdr.field_1 FLASH:10B1F8C4 DCB 50 ; issuer.StdHdr.StrSize FLASH:10B1F8C4 DCB 'C', 'N', '=', 'M', 'o', 't', 'o', 'r', 'o', 'l', 'a'; issuer.Str FLASH:10B1F8C4 DCB ' ', 'P', 'C', 'S', ' ', 'C', 'A', '9', ',', 'O', 'U'; issuer.Str FLASH:10B1F8C4 DCB '=', 'M', 'o', 't', 'o', 'r', 'o', 'l', 'a', ' ', 'P'; issuer.Str FLASH:10B1F8C4 DCB 'K', 'I', ',', 'O', '=', 'M', 'o', 't', 'o', 'r', 'o'; issuer.Str FLASH:10B1F8C4 DCB 'l', 'a', ' ', 'I', 'n', 'c'; issuer.Str FLASH:10B1F8C4 DCD 0x3F9E13F0 ; validity.notBefore FLASH:10B1F8C4 DCD 0x58DB5B70 ; validity.notAfter FLASH:10B1FA45 DCB 0x54, 0xA6, 0xCF, 0xE8, 0xE9, 0xDC, 0xA1, 0xE0, 0x47; RSASign.Sign FLASH:10B1FA45 DCB 7, 0x20, 0xCB, 0x97, 0xE, 0x2F, 0x14, 0x9E, 0xA8, 0x76; RSASign.Sign FLASH:10B1FA45 DCB 0xA, 0xE5, 0x36, 2, 0xAF, 0x88, 0x13, 0xD8, 0x77, 0x85; RSASign.Sign FLASH:10B1FA45 DCB 0x94, 0xB7, 2, 0x38, 0xDA, 0xE2, 0x66, 0xCF, 0, 0x8F; RSASign.Sign FLASH:10B1FA45 DCB 0xA2, 0x9B, 0x8B, 0xF2, 0x1B, 0xB9, 0x92, 0x1B, 0x79; RSASign.Sign FLASH:10B1FA45 DCB 0xF, 0xEB, 0x65, 0x30, 0xC2, 0xFF, 0xB4, 0xCE, 0xAB; RSASign.Sign FLASH:10B1FA45 DCB 0x5C, 0x55, 0xDC, 0x2E, 0x3D, 0xD1, 0x6B, 0x9A, 0x1B; RSASign.Sign FLASH:10B1FA45 DCB 0x1F, 0x62, 0x8D, 0x57, 0x67, 0x2C, 0x9C, 0x78, 0xEF; RSASign.Sign FLASH:10B1FA45 DCB 0xB, 0xF1, 0xA4, 0xA7, 0x56, 0x9A, 0x50, 0x8C, 0x1C; RSASign.Sign FLASH:10B1FA45 DCB 0xF, 0xA1, 0xF3, 0x73, 0xE1, 0x20, 0x5F, 0x7A, 0xF2; RSASign.Sign FLASH:10B1FA45 DCB 0xB4, 0x61, 0x59, 2, 0xFE, 0xB6, 0xEF, 0xB9, 0xEE; RSASign.Sign FLASH:10B1FA45 DCB 0x65, 0x12, 0xA9, 0x6D, 0x35, 0x9D, 0x86, 0xB2, 0x6D; RSASign.Sign FLASH:10B1FA45 DCB 0xAE, 0x65, 0xA, 0xFC, 7, 0xD3, 0x5D, 0x69, 0x72, 0x85; RSASign.Sign FLASH:10B1FA45 DCB 0x8E, 0x97, 0x3A, 0x74, 0xB4, 0x2B, 0x79; RSASign.Sign FLASH:10B1FBCF Flash_RSASign DCB 0x71, 0x34, 0x5B, 0x53, 0xCE, 0xA1, 0xDD, 0x83, 0x5D FLASH:10B1FBCF DCB 1, 0xAA, 0x7A, 0x4A, 0xE8, 0xB2, 0x20, 0xB3, 0x4A FLASH:10B1FBCF DCB 0xAB, 0x4C, 0xC1, 0x47, 0x7C, 0x78, 0xD1, 0x81, 0x9F FLASH:10B1FBCF DCB 0x7E, 0x3D, 0xF7, 0xF, 0xAD, 0xA4, 0x65, 0xAC, 0x11 FLASH:10B1FBCF DCB 0x1D, 0x33, 0xEE, 0x10, 0x4C, 0xDC, 0xE8, 0xE7, 0xF4 FLASH:10B1FBCF DCB 0xD5, 0x6A, 2, 0x3E, 0x93, 0x49, 0xCC, 0x1E, 0xA9 FLASH:10B1FBCF DCB 0x43, 0xF, 0xF8, 0xFE, 0xA0, 0x11, 0xE2, 0x78, 0x47 FLASH:10B1FBCF DCB 0x82, 5, 0xDA, 0x2F, 0x56, 0xBA, 0xD8, 0x8D, 0x70 FLASH:10B1FBCF DCB 0x60, 0x2C, 0x86, 0xCD, 0x20, 0xCF, 0, 0x2D, 0xE7 FLASH:10B1FBCF DCB 0x27, 0x86, 0x1E, 0xF2, 0x54, 0x87, 0x23, 0x38, 3 FLASH:10B1FBCF DCB 0x2F, 0xA9, 0x27, 0x48, 0xA8, 0xB0, 0xE5, 2, 0xF6 FLASH:10B1FBCF DCB 0x14, 0x87, 0x66, 0x58, 0x1E, 0xFA, 0x81, 0xD0, 0x47 FLASH:10B1FBCF DCB 0x50, 0, 0x87, 0xB6, 0x5D, 0x7B, 0xE6, 0xC1, 0xC5 FLASH:10B1FBCF DCB 0xFC, 0x39, 0x26, 0xC5, 0xC4, 0xEA, 0x33, 0xFD, 4 FLASH:10B1FBCF DCB 0x77, 0xE9 Это так :) Если вдруг кому интересно будет... |
warmwood |
![]() |
Новичок ![]() Группа: Пользователи Сообщений: 11 Регистрация: 10.2.2005 Пользователь №: 36 705 Модель телефона: C650 Прошивка: R365_G_0B.D3.06R Рейтинг: 0 ![]() |
Стоит такой клиент:
12.05.2005 07:36 14 843 mingwm10.dll 02.07.2005 00:53 856 576 motorsa.exe 13.05.2005 03:47 7 422 464 qt-mt333.dll на старой машине с p3-667(w2k) работает медленно, но не вылетает. на P4-2800HT(wxp/sp2) - иногда (раз или два за один блок) вылетает. Хотел бы уехать в отпуск и оставить, так ведь вылетает :( |
Liquid |
![]() |
![]() Новичок ![]() Группа: Пользователи Сообщений: 24 Регистрация: 4.10.2004 Пользователь №: 15 230 Модель телефона: C380 Прошивка: MotoKDE_R365_D3.08R Рейтинг: 0 ![]() |
Цитата(Arkasha18 @ Понедельник, 11 Июля 2005, 12:17) Проверяется RSA-ключом под номером 0 - железный ключ, зашитый в ПЗУ (ROM_0x0000529C). Ключ помещается в массив открытых ключей (RAM_0х03FC2E0C) под номером 1. = Так вот, ПЗУ-отдельная микросхема или НЕ перезаписываемый блок в процессоре? Если бы имелась возможность перезаписать этот ключ ИЛИ заставить загрузчик считывать ключ из другого места, то мы, наверное, смогли бы а) сгенерировать свои ключи и подменить мотороловский открытый ключ своим ключём, прошивки соответственно тоже подписывать своим ключём ИЛИ б) также сгенерировать свои ключи, и заставить загрузчик считывать наш ключ не из ПЗУ, а из какого-нить другого блока памяти Ну как, братцы? |
Arkasha18 |
![]() |
![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 242 Регистрация: 27.4.2004 Из: Санкт-Петербург Пользователь №: 2 Модель телефона: E2 Прошивка: 45R Рейтинг: 249.5 ![]() |
Liquid,
Ключ не перезаписать. Он зашит не в прошиваемой части. (ROM в Neptune LTE) |
Liquid |
![]() |
![]() Новичок ![]() Группа: Пользователи Сообщений: 24 Регистрация: 4.10.2004 Пользователь №: 15 230 Модель телефона: C380 Прошивка: MotoKDE_R365_D3.08R Рейтинг: 0 ![]() |
Я всё-таки думаю, что на этапе отладки прошивы разработчики НЕ пользуются ключами, т.к. это небольшой дополнительный геммор...Может, они используют загрузчик, не проверяющий ключи? значит, и нам просто надо отучить загрузчик заниматься ерундой. на фиг нам не нужны никакие ключи ;)
ИМХО, проверка подлинности вставляется, когда уже готовый коммерческий продукт выбрасывают на рынок... |
KQ_44 |
![]() |
Опытный ![]() ![]() ![]() Группа: Пользователи Сообщений: 115 Регистрация: 2.3.2005 Из: Киев Пользователь №: 37 969 Модель телефона: C650=>E1 Рейтинг: 10.5 ![]() |
Liquid:
Уважаемый Вы совершенно правы. Перед началом проверки проверяются 3 младшие бита адреса 0x24850000. В зависимости от их значения и вибирается тип поведения. Как сказал Vilko (Пусть дас Аллах ему большой гарем!!!) :) - эти 3 бита - это версия чипа (типа: для разработчиков, для готового изделия, ну и еще че нить). Смотрю я, надо от и до описать процес начальной загрузки... 2all: Уважаемые! Vilko очень хорошо логически отлопатил проверку подписи; могу выдать сертификат. :) Учитывая доступную информацию, нет НЕЖЕЛЕЗНОГО метода обойти RSA-подпись, кроме прямого взлома. Кому интересно, вот вам ссылка: http://www.freescale.com/files/wireless_co...ief/I250-21.pdf Это описание платформы, на которой собран С650. ОЧЕНЬ РЕКОМЕНДУЮ ПОЧИТАТЬ, та много интересного!!! Если лень качать, то вот: DSP56631 Dual-Core Baseband Processor IC: (он же Нептун!!!) Features: Dual core: ARM7TDMI-S™ (52 MHz) MCU (это процессор) DSP56600 (130 MHz) processor (а это сопроцессор) Integrates: 64K × 32 bits RAM - это ОЗУ 448K × 32 bits ROM accessible by the ARM7TDMI-S MCU; а это ПЗУ, где лежит алгоритм проверки RSA-подписи и открытый RSA-ключ, который портит нам жизнь Phone security enhancements (а это для таких умных как мы!!!) |
![]() ![]() |
Текстовая версия | Сейчас: 18.7.2025, 6:33 |
Форум живёт: