motofan logo
10 страниц V  1 2 3 > » 
Причина закрытия (Semenigor 15-03-2009):
       
> 

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

yakk
сообщение 28.12.2008, 13:10 Закрепленное сообщение!



*****

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

Рейтинг: 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 килобайт ) Кол-во скачиваний: 1371
Прикрепленный файл u9_062a.rar   ( 141.39 килобайт ) Кол-во скачиваний: 1221
Прикрепленный файл v8_a3cf.rar   ( 96.34 килобайт ) Кол-во скачиваний: 8083
Прикрепленный файл e8_06a3.rar   ( 153.6 килобайт ) Кол-во скачиваний: 1481
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
hobbit19
сообщение 28.12.2008, 13:16


квант истории
******

Группа: Пользователи
Сообщений: 1 043
Регистрация: 1.4.2005
Из: Рязань
Пользователь №: 39 980
Модель телефона: (M)oTorola
Прошивка: testing/unstable
Победитель конкурса 2008

Рейтинг: 739.5



спасибо
молодцы.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
MOTOROKR
сообщение 28.12.2008, 13:20


Гуру
******

Группа: Разработчики
Сообщений: 933
Регистрация: 11.9.2005
Из: RU-MOW (ISO-3166-2)
Пользователь №: 51 143
Модель телефона: VA76r (Tundra)
Прошивка: Various

Рейтинг: 476



Очень круто. Респект smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
hobbit19
сообщение 28.12.2008, 13:32


квант истории
******

Группа: Пользователи
Сообщений: 1 043
Регистрация: 1.4.2005
Из: Рязань
Пользователь №: 39 980
Модель телефона: (M)oTorola
Прошивка: testing/unstable
Победитель конкурса 2008

Рейтинг: 739.5



прошился е8 жив )

yakk - в зеленую группу
а dimichxp неплохобы новый е8 подарить.

Сообщение отредактировал hobbit19 - 28.12.2008, 13:47
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ilya Petrov
сообщение 28.12.2008, 13:43


Ветеран
*****

Группа: Пользователи
Сообщений: 504
Регистрация: 30.12.2006
Из: Одесса
Пользователь №: 114 098
Модель телефона: 1742, 1744, 1980
Прошивка: openezx-2.6.30

Рейтинг: 166



это офигенно.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Arch0n
сообщение 28.12.2008, 13:45


Мастер
****

Группа: Пользователи
Сообщений: 240
Регистрация: 15.7.2007
Из: Kyiv
Пользователь №: 141 493
Модель телефона: rokr E8

Рейтинг: 28.5



Отличная работа.
Сочувствую yakk и dimichxp.. Надеюсь, удастся оживить...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Nicron
сообщение 28.12.2008, 14:12


Мастер
****

Группа: Пользователи
Сообщений: 151
Регистрация: 4.11.2007
Из: Якутск
Пользователь №: 152 811
Модель телефона: тютю
Прошивка: тю

Рейтинг: 35.5



Оо Пацаны Красавы thumbsup.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Chacha_Ivanov
сообщение 28.12.2008, 15:06


Куртуазный Маньерист
******

Группа: Разработчики
Сообщений: 1 277
Регистрация: 30.10.2005
Из: Истра
Пользователь №: 56 473
Модель телефона: LG Sol, Moto EM35
Прошивка: Уникальная


Настроение:
помоги себе сам..



Рейтинг: 805



Жаль Z6 в этом списке нет( Но все равно молодцы)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
hobbit19
сообщение 28.12.2008, 15:17


квант истории
******

Группа: Пользователи
Сообщений: 1 043
Регистрация: 1.4.2005
Из: Рязань
Пользователь №: 39 980
Модель телефона: (M)oTorola
Прошивка: testing/unstable
Победитель конкурса 2008

Рейтинг: 739.5



Цитата
Жаль Z6 в этом списке нет( Но все равно молодцы)

так портируй патч на з6 )

Добавлено позже (28.12.2008, 18:37):
Цитата
Дальше следуют патчи которые нужно применить к ап-буту..

yakk можна чуть подробнее про эти патчи.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
yakk
сообщение 28.12.2008, 16:07



*****

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

Рейтинг: 904



Цитата(hobbit19 @ 28.12.2008, 17:17) *

yakk можна чуть подробнее про эти патчи.

попробую (не факт что то как делаю я проще всего -- но оно работает):
1. Функция hab_su_type, или get_su_type - кто смотрел эльф на LTE - поймет - проверка инженерности телфона.. начало выглядит так (адреса корректны для бута 06.a3):
Код
ROM:90019F04 88 48                       LDR     R0, =0x5001C810
ROM:90019F06 01 68                       LDR     R1, [R0]
ROM:90019F08 49 07                       LSLS    R1, R1, #0x1D
ROM:90019F0A 00 68                       LDR     R0, [R0]
ROM:90019F0C C9 0F                       LSRS    R1, R1, #0x1F

Заменяется кодом:
Код
MOVS R0, #1
BX LR

2. Бут проверяет не меняется ли инженерность в процессе работы (именно на этом с z6 всё закончилось..)
не знаю как проще объяснить, в общем вот в этом куске нужно убрать переход
Код
ROM:90011994 68 89                       LDRH    R0, [R5,#0xA]
ROM:90011996 8C 49                       LDR     R1, =0xA55A
ROM:90011998 88 42                       CMP     R0, R1
ROM:9001199A 01 D1                       BNE     loc_900119A0
ROM:9001199C 6C 81                       STRH    R4, [R5,#0xA]


переход "BNE loc_900119A0" я заменяю безобидным мусором типа
Код
MOVS R0, #1
MOVS R0, #1


3. и 4. функции проверки подписи (привожу фрагменты начала)..
Код
ROM:90016912 F3 B5                       PUSH    {R0,R1,R4-R7,LR}
ROM:90016914 7D 22                       MOVS    R2, #0x7D
ROM:90016916 85 B0                       SUB     SP, SP, #0x14
ROM:90016918 F0 24                       MOVS    R4, #0xF0
ROM:9001691A 07 46                       MOV     R7, R0

и
Код
ROM:90016A12 F8 B5                       PUSH    {R3-R7,LR}
ROM:90016A14 43 18                       ADDS    R3, R0, R1
ROM:90016A16 01 21                       MOVS    R1, #1
ROM:90016A18 4D 4A                       LDR     R2, =0x9001C8A8
ROM:90016A1A 00 25                       MOVS    R5, #0
ROM:90016A1C C9 03                       LSLS    R1, R1, #0xF
ROM:90016A1E 8B 42                       CMP     R3, R1

Заменяются кодом
Код

MOVS R0, #0x1F
LSLS R0, R0, #0x04
BX LR

что означает успешную проверку для инженерного телфона..

скорее всего можно обойтись только 3 и 4 патчем, но без первых двух нужно будет исправлять так чтобы была успешная проверка для серийного телефона (скорее всего smile.gif) у меня прямо сейчас нет желания проверять..

ну и вся эта ерунда прописана в bp-loader - т.е. cg32 прошивок, смотрите внимательно в чём различия - и следите за последовательностью байтов, т.к. у AP и BP разная endianness - там все байты перемешаны..

ps: в е8 еще патчится строка "Bootloader".. (если кто будет портировать - рекомендую начать именно с этого, перед тем как патчить непосредственно код бута - поможет усвоить правильную последовательность байтов wink.gif только не забывать про то что в заголовок bp-loader нужно возвращать нули, ну и длину блока с патчами соответственно менять если что)

Сообщение отредактировал yakk - 28.12.2008, 17:03
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
обход rsa на motomagx телефонах, проверено и работает на V8, E8, Z6, U9 · Ломаем и строим! · Forum
 

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

 



Текстовая версия Сейчас: 28.3.2024, 18:32

Форум живёт: