motofan logo
> 

обход rsa на motomagx телефонах, проверено и работает на V8, E8, Z6, U9

yakk
сообщение 28.12.2008, 13:10



*****

Группа: Разработчики
Сообщений: 336
Регистрация: 6.7.2006
Из: Днепропетровск
Пользователь №: 90 408
Модель телефона: milestone
Финалист Конкурса 2010


Настроение:
не нужен..



Рейтинг: 904



Итак, мне наконец-то удалось обнаружить дыру в загрузчике motomagx телефонов, которая позволяет запустить телефон с неподписанной AP-прошивкой

Внимание: если вы собираетесь делать то что здесь описано со своим телефонам - вы делаете это на свой страх и риск.. я не отвечаю за убитые вами телефоны..

Немного теории wink.gif
Дыра обнаружилась в irom-загрузчике BP. При включении телефона бут (mbm AP-части) первым делом загружает в оперативную память bp-loader и передаёт BP команду выполнения bp-loader. irom-загрузчик BP проверяет подпись bp-loader и, если с ней всё в порядке - передает исполнение bp-loader'у. Важный момент - непосредственно перед проверкой подписи irom загрузчик BP проверяет наличие в заголовке bp-loader указателя на некоторую структуру и если этот указатель есть - разбирает эту структуру.. Эта структура, помимо заголовка, содержит набор адресов и значений; irom-загрузчик записывает в каждый из адресов (если адреса по его мнению корректные) соответствующее значение.. Таким образом есть возможность заполнить эту структуру самостоятельно и переложить на BP работу по "отпатчиванию" бута AP (бут AP в данный момент загружен в оперативку, его подпись уже проверена ранее и он ожидает ответ BP, что bp-loader прошел проверку подписи).. При этом саму структуру можно расположить за подписью и в ней же описать патч приводящий заголовок bp-loader к исходному состоянию, чтобы он нормально прошел проверку подписи..
Необходимые дополнения в bp-loader:
Размещаем за подписью bp-loader структуру следующего формата:
первые четыре байта от начала структуры - 0xB17219E9 - константа, по которой проверяется корректность структуры.
следующие четыре байта - размер структуры (должен быть кратен восьми, но не больше 256).
Дальше следует список адресов и значений (четыре байта на адрес и четыре - на значение).
В заголовке bp-loader необходимо поставить указатель на эту структуру, (четыре байта по адресу +0x14 от начала bp-loader) и указатель на этот указатель smile.gif (по адресу +0x0c от начала bp-loader).. Соответственно чтобы bp-loader прошел проверку подписи - нужно будет вернуть заголовок к изначальному виду (обычно в данных полях нули) и поэтому первыми патчами описанными в структуре - делается именно запись нулей в данные поля.. Дальше следуют патчи которые нужно применить к ап-буту..
После ряда экспериментов я получил минимальный набор патчей бута которые приводят к тому что телефон соглашается работать с неподписанной прошивкой для бутов 06.a3 (e8) и a3.cf (v8) - телефоны которые "дожили" до победы..
Патчи зависят от версии бута, при установке неправильных патчей, или правильных, но не соответствущих версии бута - получаете труп. У меня уже лежит убитый z6 - на нём пробовались ранние версии патчей, в которых я не учёл некоторых проверок в буте, у dimichxp - убитый е8. Получится ли восстановить эти телефоны - большой вопрос..
Ну, основные вещи вроде все написал, прилагаю полученные буты, которые нужно просто прошить в телефон, если версия бута Вашего телефона совпадает с одной из указанных.. Хотя даже если совпадает - подумайте лишний раз насколько Вам всё это нужно ))

если кто возьмется портировать это на другие версии бутов/телефоны - имейте в виду что нужно быть предельно внимательным и перепроверять всё что делаете, попытка скорее всего будет только одна!!!

a3.cc (z6) - проверил на своём восстановленном z6 - всё работает, только ругается на security-версии кодовых груп, если их затирать. т.е. можно просто их сохранять.. хотя я поправил в cdt требование не проверять rootfs и лэнг - лэнг пересобранный и ничем не дополненный, rootfs - не пересобирал, просто стер подпись и security-версию.. если не править cdt - валится с ошибками на проверке версий, после исправления cdt - нормально работает..

ps: патч для бута 06.2b (zn5) - пока находится в стадии тестирования, не гарантируется, что его применение приведет к обходу RSA, но будучи прошитим на телефон с соответствующей версией бута - трупов быть не должно.. (чуть инфы для интересующихся - на новых версиях патчей не делается подмены инженерности, т.е. патчатся только собственно функции проверки подписей)..
06.2b (zn5).

pps: добавил патч для бута 06.a9 (e8) - пока для тестирования, хотя в принципе я его проверил - телефон после установки патча работал с неподписанными группами. опять же следим за версиями кодовых групп и не зашиваем всё без разбору..

добавил патч для бута 06.2a (u9) - спасибо за тестирование andrey_moto.

Сообщение отредактировал yakk - 16.1.2009, 3:57
Прикрепленный файл e8___06a9.rar   ( 153.45 килобайт ) Кол-во скачиваний: 1387
Прикрепленный файл u9_062a.rar   ( 141.39 килобайт ) Кол-во скачиваний: 1239
Прикрепленный файл v8_a3cf.rar   ( 96.34 килобайт ) Кол-во скачиваний: 8126
Прикрепленный файл e8_06a3.rar   ( 153.6 килобайт ) Кол-во скачиваний: 1496
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Закрытая темаСоздание новой темы
Ответов
zolookas
сообщение 29.12.2008, 13:36


Интересующийся
**

Группа: Пользователи
Сообщений: 38
Регистрация: 25.5.2005
Пользователь №: 43 073
Модель телефона: e398
Прошивка: R373_G_0E.30.49R

Рейтинг: 3.5



***Это перевод информации на английский язык.

If anyone is interested i have tried to translate first post by hand. Feel free to point any translation errors if i have made any.

QUOTE(yakk)

I have found a security hole in motomagx phones loaders which allows to run unsigned AP-firmwares.

Warning: if you are going to do this, you take your own responsobility for any damages that may occur to your phone.

A bit theory wink.gif
Hole exists in irom-loader BP. When you trun the phone on, boot (mbm AP-part) loads bp-loader into ram and sends BP command to execute bp-loader. irom-loader BP checks bp-loader's signature and if everything is ok, executes bp-loader. The important thing is that just before checking irom's signature, BP checks the header which has pointer to a special structure, if that pointer exists, it parses that structure. That structure has a header and contains a set of addresses and values; irom-loader writes in each of the addresses (if addresses are correct) appropriate value. That makes it possible for us to complete the structure and make BP work with patched AP boot (AP boot's signature was checked earlier, it is now loaded into memory and waiting a message from BP boot that it has completed signature check). The structure can be placed right after the signature and make this structure describe a patch that will change the BP-loader header into the initial state so that it can pass signature check.

Necessary additions to bp-loader:
After bp-loader signature place a structure like this:
first four bytes from structure's start - 0xB17219E9 - any other value would make signature check fail.
next four bytes - size of structure (must be a multiple of 8, but not more than 256)
Next comes a list of addresses and values (four bytes for address and four bytes for value).
You must make a pointer in bp-loader's header to that structure (for bytes to offset +0x14 from bp-loader's start) and pointer to that pointer smile.gif (to offset +0x0c from bp-loader's start). Then to allow bp-loader to successfully complete signature check we need to return header to a previous state (usually there are zeros) and the first thing we need to do then is to fill that part of memory with zeros. Then patch AP-boot.
After making a lot of tests i have succeeded to build a minimal set of patches to make phones with 06.a3 boot (e8) and a3.cf boot (v8) work without signed firmware.
Different boot loader versions require different patches, if you will use incorrect patch, you will kill your phone. I have a dead z6 which has earlier version of patch which didn't work, because then i did not notice a few checks in boot, dimichxp has bricked е8. Nobody knows if those phones will be recovered. So check if your boot loader version matches when you will try patch and seriously consider your decision

If you want to port this to other boot loaders, check your code, because you will have only one chance!!!


Patched files are attached to the first post.

There is one sentence which I was unable to translate (i understand the words, but not the whole sentence), this one:
QUOTE(yakk)
При этом саму структуру можно расположить за подписью и в ней же описать патч приводящий заголовок bp-loader к исходному состоянию, чтобы он нормально прошел проверку подписи..


EDIT: Thanks for people who helped! Translation is now complete.

Сообщение отредактировал zolookas - 29.12.2008, 21:10
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
yakk   обход rsa на motomagx телефонах   28.12.2008, 13:10
hobbit19   спасибо молодцы.   28.12.2008, 13:16
MOTOROKR   Очень круто. Респект :)   28.12.2008, 13:20
hobbit19   прошился е8 жив ) yakk - в зеленую группу а dimi...   28.12.2008, 13:32
Ilya Petrov   это офигенно.   28.12.2008, 13:43
Arch0n   Отличная работа. Сочувствую yakk и dimichxp.. Наде...   28.12.2008, 13:45
Nicron   Оо Пацаны Красавы :thumbsup:   28.12.2008, 14:12
Chacha_Ivanov   Жаль Z6 в этом списке нет( Но все равно молодцы)   28.12.2008, 15:06
hobbit19   так портируй патч на з6 ) Добавлено позже (28.12...   28.12.2008, 15:17
yakk   [b]yakk можна чуть подробнее про эти патчи. попр...   28.12.2008, 16:07
telnet   Гениально! Жаль у меня на МОТОМЕДЖИКе нет теле...   28.12.2008, 16:41
jmoncayo   would anyone please translate this to englsih? tra...   28.12.2008, 16:56
MOTOROKR   jmoncayo, they made BP to patch AP boot on phone...   28.12.2008, 17:05
are_ed   that means we can flash any firmware without probl...   28.12.2008, 17:27
DmT   Можно я тут встряну в разговор. А ещё лучше, чтоб...   28.12.2008, 18:36
GandjaFuzz   ребята, мои поздравления! :) молодцы )   28.12.2008, 19:14
Джуманджи   Молодцы парни! (= Уже и рейтинг повышать нельз...   28.12.2008, 19:22
MIG~   Уже и рейтинг повышать нельзя сегодня.. Добавь ра...   28.12.2008, 21:32
hobbit19   тогд уж Открытие года - человек-который за этот г...   28.12.2008, 23:13
Abram   Z6, A3.CC. Труп. yakk, симптомы те же, что у теб...   29.12.2008, 0:45
motofan-kz   yakk Молодец!!! Хоть нету у меня V8 (и...   29.12.2008, 4:11
Pirantel   cmax24, даже не думай,это только пока что(надеюсь...   29.12.2008, 7:45
БАZА   А на Е8 с уже подписанной прошивкой ни кто не проб...   29.12.2008, 7:58
Teraflop   yakk, гениально! clap;applo Спасибо огромное ...   29.12.2008, 8:28
hobbit19   так все прошивки подписание. если ты про CG52 т...   29.12.2008, 9:36
MOTOZ3   А на какой проше Е8 может работать??? У меня 07R   29.12.2008, 11:08
hobbit19   на любой . есть готовый патч под бут 06.3а   29.12.2008, 12:08
zolookas   ***Это перевод информации на английский язык. If ...   29.12.2008, 13:36
motoprogger   zolookas, I can help you with translation:   29.12.2008, 14:09
Abram   state so that :P   29.12.2008, 15:15
andrey_moto   как я рад как я рад что мы едем....вперед! мол...   29.12.2008, 15:27
zidane   " e8_06a3.rar "<---просто скачать и п...   29.12.2008, 15:40
БАZА   zidane, Да! А оно тебе надо раз не знаешь что...   29.12.2008, 19:45
zidane   zidane, Да! А оно тебе надо раз не знаешь чт...   30.12.2008, 17:04
DesertEagle   Thank you~! I'm from Chinese~ I have some ...   30.12.2008, 9:53
abelenki   I have some question~ This Can used to V8(512M) o...   30.12.2008, 10:01
DesertEagle   it can be used on both, 512MB and 2GB models, bec...   30.12.2008, 10:05
hobbit19   Благодаря dimichxp сделан патч для Zn5 ( T-mobile...   31.12.2008, 14:08
GandjaFuzz   я по поводу 3. и 4. функции проверки подписи (при...   31.12.2008, 18:39
yakk   меня интересует этот момент, зачем возвращать 1F0...   31.12.2008, 18:46
Сумерок   Тем, кто прошил на Е8 прошивку с подписанной cg52,...   1.1.2009, 12:41
Bogd@n   да,шить ненужно, иначе убьеш телефон.Нужно ждать ...   1.1.2009, 13:35
E2008   Как я понимаю если я поставлю новую прошивку под е...   2.1.2009, 7:32
Arch0n   E2008, перед применением новую прошивку ставить не...   2.1.2009, 9:18
aleks_ar   Вопрос по поводу возможности отката. Я так понимаю...   2.1.2009, 14:04
hobbit_19   обратимая.   2.1.2009, 14:30
rasputin007   After replacing the "normal" A3.CF bootl...   3.1.2009, 19:13
rasputin007   Ok, problem solved! I have been able to mod a ...   4.1.2009, 20:53
GandjaFuzz   такс а вот на счет патча для zn5 я не понял. он не...   5.1.2009, 8:34
yakk   GandjaFuzz угу, у hobbit19 есть и полная версия, н...   5.1.2009, 9:28
rasputin007   clap;applo Thank you, yakk! clap;applo For t...   5.1.2009, 13:29
theCore   It's time to come back to my V8, AWESOME WORK ...   5.1.2009, 14:46
hobbit_19   перепутал файлики =)) верный http://ezxdev.org/c0...   5.1.2009, 17:21
andrey_moto   убит з6, кто нить тп делал на нем? и вообще нашли ...   6.1.2009, 12:44
Chacha_Ivanov   yakk, извини, больше не знаю к кому обратиться, м...   6.1.2009, 17:22
Сумерок   ждем-с бут E8 06a9   7.1.2009, 5:28
andrey_moto   задам может глупый вопрос, но вроде u9 и zn5 немно...   7.1.2009, 13:16
Chacha_Ivanov   Grindars, все так и делал. Но тел постоянно ребут...   8.1.2009, 12:42
Grindars   Grindars, все так и делал. Но тел постоянно ребу...   8.1.2009, 12:46
Chacha_Ivanov   Все, пересобрал) Проблема решилась установкой ALT ...   8.1.2009, 14:39
Grindars   Все, пересобрал) Проблема решилась установкой ALT...   8.1.2009, 15:56
yakk   Grindars, сама подпись в общем-то не так и важна, ...   9.1.2009, 4:49
metallsatanist   на Е8 все работает. трупа не получил :lol:   9.1.2009, 12:53
Abram   Grindars, Неужели заинтересовался ещё один понима...   9.1.2009, 14:08
zidane   На е8 не работает, если до этого прошивалась R6713...   9.1.2009, 16:31
Arch0n   Спасибо ! Всё отлично работает. Сейчас постав...   9.1.2009, 19:24
Chacha_Ivanov   Сегодня заметил кстати что теперь когда телефон во...   10.1.2009, 10:26
theCore   Hi yakk i noticed that even ARGONs bl checks for t...   11.1.2009, 10:47
Skrilax_CZ   On page 4 there is English translation.   11.1.2009, 16:38
andrey_moto   Простите за настойчивость но для у9 будет такое ил...   15.1.2009, 10:58
mardariy   вот ссылка на реплейсер для U9, могу "потести...   15.1.2009, 18:10
andrey_moto   Все отлично работает на у9! Стояла последняя п...   16.1.2009, 3:46
r.o.m.a.N   На ZN5 тоже стоит бут 06.2a. Патченный бут от U9 ...   16.1.2009, 12:10
Slim_Shady   сорри за навязчивость нне скажете, как продвигаетс...   23.1.2009, 20:27
PUSYA   Yes   24.1.2009, 11:43
Neomoto   yakk, а можно сделать чтобы как раз-таки это No R...   25.1.2009, 8:19
tmp_do   поставил патченый бут. 52 группу удалось пересобра...   26.1.2009, 9:30
tmp_do   yakk: версию кодовой группы после пересборки восс...   26.1.2009, 12:24
Dimak.74   А на z6 можно откатиться на родной бут путем его п...   26.1.2009, 12:06
mardariy   подпись 2048(800 HEX),перед ней 4 ячейки версия,ил...   26.1.2009, 12:31
tmp_do   подпись 2048(800 HEX),перед ней 4 ячейки версия,и...   26.1.2009, 13:06
mardariy   Добавлено позже (26.1.2009, 17:22): где почитать п...   26.1.2009, 16:43
andrey_moto   Я просто в винхексе довожу до изначального размера...   26.1.2009, 12:51
r.o.m.a.N   Кому над, 31 группа для zn5 прошивка 0А с отключе...   30.1.2009, 2:35
Скотч   Я тоже не совсем понимаю. А что это даст? Ну то ес...   30.1.2009, 15:23
Done   yakk, Привет. у мя EM30, бут 06.ac, прошивка R6...   30.1.2009, 21:52
Done   Тааакс... новые сведения о буте 06.ac. Пересобрал ...   31.1.2009, 22:27
Chacha_Ivanov   tmp_do, у меня тоже рут не собирался правильно(из...   2.2.2009, 14:22
tmp_do   Chacha_Ivanov, такая ерунда даже с оригинальной кг...   2.2.2009, 15:31
DumKa   Ну так что! Можно каким-либо способом повысить...   19.2.2009, 17:32
Elvis271   Может кто-нибудь выложит оригинальный 06а9 от E8? ...   23.2.2009, 13:25
Av3LaR   Любой суд BL 06.A5 к 06.A9 или А3, как вы извлечь ...   8.3.2009, 15:44
GandjaFuzz   Доделал бут для ZN5 с 128 мегабайтами 06.2B теперь...   13.3.2009, 13:31

обход rsa на motomagx телефонах, проверено и работает на V8, E8, Z6, U9 · Ломаем и строим! · Forum
 

Причина закрытия (Semenigor 15-03-2009):
Закрытая темаСоздание новой темы
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6.6.2024, 17:51

Форум живёт: