motofan logo
3 страниц V  1 2 3 >        
> 

Здесь новости с полей взлома Moto Milestone. Ковыряем андроиды

XVilka
сообщение 26.2.2010, 9:38


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



Люди, которые пытаются взломать mbmloader пишут что он подписан аж в 2006 году, то есть есть вероятность что там сохранились куски кода из старых телефонов, что дает несколько больше возможностей для взлома http://milestone.denhaas.info/date/25-02-2010/
Напомню что они вроде получили какие-то результаты, но нуждаются в дбровольцах, готовых убить свой телефон

http://and-developers.com/motorola_milestone:kernel:modding

Сообщение отредактировал XVilka - 26.2.2010, 9:45
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 28.2.2010, 21:56


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



Команда хакеров and-developers (http://and-developers.com/motorola_milestone) собирает деньги на тестовый аппарат для апробации на нем всех своих идей и использования JTAG.
Если вам не безразлична судьба перепрошивки аппарата, и у вас есть возможность помочь,
то несколько долларов сделают вашу мечту ближе! helpsmilie.gif

http://www.kapipal.com/062865e22d0c44f08cf5f07aa76665e9

P.S. Буду периодически постить здесь новости с полей взлома Moto Milestone.
На данный момент разобрались в возможности грузиться аппарата с USB и карты.
Но проблемы возникли именно с flash_image и dd - есть ошибки при прошивке.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 1.3.2010, 22:54


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



Прошел еще один бессонный день и бессонная ночь в попытках разобраться в механизмах защиты бутлоадера Motorola Milestone. Был успешно испорчен один телефон, но долгий анализ произошедшего принес много новой информации.
Самое главное что мы узнали - что бутлоадеры и адреса разделов для Droid и Milestone существенно различаются, также появилось пару идей по разгону без перепрошивки, только через модуль ядра.
Но каждый бит полученной информации дает нам понимание насколько сложна задача, поскольку Motorola использовала, без шуток, военные технологии защиты Texas Instruments да еще и не референсного дизайна. Тем более становятся непонятны мотивы такой защиты для ПРОСТО СМАРТФОНА, а не какого-нибудь телефона правительственной связи.
Также будем поддерживать Ричарда Столлмана в организации дня 4 мая - Всемирного для борьбы с DRM
и предоставим информацию для этой акции о Motorola для сайта http://www.defectivebydesign.org/

По поводу технической информации - поняли что dd и flash_image не могут работать с той областью ECC NAND ROM где записан mbmloader, поэтому необходимо использовать RSD Lite.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 3.3.2010, 1:42


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



На данный момент определи ряд идей по взлому.
Самая пугающая - что для чтения из памяти доступен только хэш корневого сертификата, а сам он зашит в память omap3430. В таком случае метод атаки попыткой прошивки mbm и mbmloader с droidа не пройдет. Сейчас для определения правильно работающего метода прошивки собираем максимум технической информации о железе и использованных технологиях.
Также проводится дизассемблирование и анализ кода csst (утилиты для создания сертификата от TI)

Вот пути нашей работы:
1) Реверс-инжиниринг формата сертификата.
2) Хаки для корректной записи (прошивки) в область памяти с ECC.
3) Написание модуля ядра для создания дампа загрузчика (boot ROM) и последующего его реверс-инжиниринга.
4) Реверс-инжиниринг mbmloader.
5) Реверс-инжиниринг mbm.
6) Написание kexec модуля ядра для возможности запуска другого ядра из текущего

P.S. Если кто имеет опыт подобных действий или учавствовал во взломе прошлых телефонов от Motorola - нам всегда нужна ВАША помощь.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 6.3.2010, 17:37


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



Проект не заглох - просто теоретическая часть (реверс-инжиниринг и дизассембирование и анализ) намного сложнее практической - просто перепрошивка.
На данный момент пришло осознание, что тупо прошивка лоадера от Дроида не работает - поэтому максимально анализируем загрузку Milestone
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
yakk
сообщение 7.3.2010, 0:22



*****

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


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



Рейтинг: 904



В мотороловских загрузчиках ошибок не найдется скорее всего, я просмотрел mbmloader, mbm - всё довольно обычно для моторолы. нужно сливать bootrom (securerom по-идее слить не дадут) тому у кого есть на руках тело (у меня пока нет, к сожалению).
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 7.3.2010, 1:19


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



Сейчас пробую и не я один - загрузить ksplice
Оказалось что это вполне реализуемый план - изменение кода ядра на лету,
однако возникли трудности в сборке - не везде ванильный код подходит для наших целей,
необходимо изменить часть кода в libbfd и objmanip из ksplice.
Подробнее здесь и здесь

Сообщение отредактировал XVilka - 7.3.2010, 23:40
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 8.3.2010, 11:15


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



Модуль ksplice собран! В ближайшее время опубликую информацию как это сделать. Огромное спасибо nothize!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 8.3.2010, 15:02


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



1. Скачиваем ядро, которое установлено в вашем устройстве, распаковываем, собираем заголовки
Код
make headers_install ARCH=arm INSTALL_HDR_PATH=~/build/kern_h/


Узнаем какой у нас процессор в устройстве и устанавливаем оптимизацию для компиляции программ
в соотвествии с этим (http://gcc.gnu.org/onlinedocs/gcc-4.4.3/gcc/ARM-Options.html#ARM-Options)
У меня например Motorola Milestone - значит процессор TI OMAP3430 - смотрим ядро - ARM Cortex a8 (архитектура armv7a)
(http://en.wikipedia.org/wiki/ARM_architecture)
Поэтому обладателям систем с этим процессором использовать конфиги с -omap3430 суффиксом.
Рекомендую использовать kernel-конфиги.

Код
export _XXCFLAGS=" -march=armv7-a -mtune=cortex-a8 -mfpu=neon"


2. Скачиваем crosstool-ng (http://ymorin.is-a-geek.org/dokuwiki/projects/crosstool),
распаковываем, собираем (нужны установленные make,install,bash,cut,sed,grep,gcc,awk,bison,flex,automake,libtool,stat,
wget,cvs,patch,tar,gzip,bzip2,lzma,readlink,ncurses, mpfr-dev, gmp-dev)
Код
.configure
make
make install


3. создаем каталог toolchain-android, переходим в него и копируем файл
XVilka-crosstool-<суффикс>.config в .config
XVilka-uClibc-<суффикс>.config в uClibc-0.9.30.2.config (потом можно поставить ту версию, которую собираетесь компилировать)
потом запускаем
Код
ct-ng menuconfig


изменяем, если необходимо - помним что это зависит лишь от того оборудования, под которое собираете, сохраняем в .config
запускаем
Код
ct-ng build


4. Итак все собралось. Теперь имеем каталог в своей директории build/x-tools.
В нем появились компиляторы для сборки
вида arm-android-linux-uclibsgnueabi-*
для того чтобы было проще запускать их добавим этот каталог в PATH
Код
export PATH=$HOME/build/x-tools/arm-android-linux-uclibcgnueabi/bin:$PATH
export CROSS_COMPILE=arm-android-linux-uclibcgnueabi-
export KERNEL_CROSS_COMPILE=arm-android-linux-uclibcgnueabi-

теперь мы имеем возможность запускать компилятор командой
arm-android-linux-uclibcgnueabi-gcc
Корневая директория целевой системы находится по адресу
~/build/x-tools/arm-android-linux-uclibcgnueabi/arm-android-linux-uclibcgnueabi/sys-root
Туда мы не будем все устанавливать.
Скопируем его в папку ~/build/cross/sys-root
Код
chmod +w sys-root
chmod +w sys-root/usr
chmod +w sys-root/usr/lib


4. Устанавливаем libbfd для кросс-сборки

Код
cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src login
{enter "anoncvs" as the password}
cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src co binutils
cd binutils/bfd
./configure --enable-targets=arm-android-linux-uclibcgnueabi --prefix=$HOME/build/cross
make
make install


5. Устнавливаем ksplice
Код
git clone http://www.ksplice.com/git/ksplice.git
cd ksplice
patch -p0 < ksplice.patch
./configure --with-libbfd=$HOME/build/cross/lib/libbfd.a --with-bfd-include-dir=$HOME/build/cross/include
make
sudo make install


6. Собираем ядро
Код
make mapphone_defconfig
make -f kernel/kernel.mk

Копируем System.map и .config в каталог kernel/ksplice
Код
ksplice-create --diffext=.patched_ext kernel


Продолжение следует...

Добавлено позже (8.3.2010, 18:12):
Есть и другие успехи, в частности стало ясно какой ключ используется для подписи:

Работа над Milestone HS сертификатами - спасибо kokone. Если кому-то интересно - вот исходники:

http://pastebin.com/NFYF4x8v
http://pastebin.com/748CCvM3 .

Этот код считывает 4 публичных ключа записанных в PKCerts_ as .pem формате. Каждый из них 2048-битный и используется для подписи разных частей MBMLoader. Очень похоже на то что при подписывании используется SHA-1 Hash вместе с PKCS-1 Padding.

Но мы не уверены, какая часть PKCert_ area используется для подписывания. Значимость MSV Mask также неизвестна.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 9.3.2010, 17:56


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



Структура OTA прошивки:

При обновлении "по воздуху" прошивка скачивается в /cache/fota/update.zip и имеет следующую структуру:
Код

CERT.RSA
CERT.SF
MANIFEST.MF
binary_firmware_file
boot.img
bp.img
mbm.img
cdt.bin
lbl.bin
logo.bin
mbmloader.bin (возможно??)
install-recovery.sh
recovery-from-boot.p
updater-script
mtd.cfg


Если какие-то структуры не обновляются,то update.zip не включает соответствующие файлы
Вот здесь лежит пример лично выдернутого из телефона после скачивания им обновления.

Сообщение отредактировал XVilka - 9.3.2010, 18:06
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Здесь новости с полей взлома Moto Milestone. Ковыряем андроиды · Motorola на Android OS · Forum
 

3 страниц V  1 2 3 >
Ответ в темуСоздание новой темы
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



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

Форум живёт: