motofan logo
       
> 

Здесь новости с полей взлома 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
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 9.3.2010, 21:59


Мастер
****

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

Рейтинг: 244



У нас существенный прогресс! Найден путь считывания хэша публичного сертификата:

insmod pkhash.ko
dmesg

Скачать модуль

Исходники:

pkhash.c
Spoiler:

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/io.h>

#include <mach/cpu.h>
#include <mach/omap34xx.h>
#include <mach/control.h>

MODULE_DESCRIPTION("dump pk-hash e-fuse");
/*
see OMAP34xx Multimedia Device Silicon Revision 3.1.x
Technical Reference Manual (Public Version)
Literature Number: SWPU223
July 2007 – Revised February 2010
p.890
*/

#define M "pkhash: "
#define CONTROL_USB_CONF_0 (OMAP2_CONTROL_GENERAL + 0x0100)
#define CONTROL_USB_CONF_1 (OMAP2_CONTROL_GENERAL + 0x0104)

static void sprintb32(char* buf, u32 val);

u32 omap_ctrl_readl(u16 offset)
{
return __raw_readl(OMAP343X_CTRL_REGADDR(offset));
}

static int __init pkhash_init(void)
{
u32 val = 0;
char buf[64];

if (cpu_is_omap3430()) {
pr_info(M "SoC is OMAP 3430\n");
switch(omap_type()) {
case OMAP2_DEVICE_TYPE_SEC:
pr_info(M "OMAP High Security (HS) mode\n");
break;
case OMAP2_DEVICE_TYPE_GP:
pr_info(M "OMAP General Purpose (GP) mode\n");
}

//val = omap_ctrl_readl(OMAP343X_CONTROL_STATUS);
//sprintb32(buf,val);
pr_info(M "[v 0x%p p 0x%08x] CONTROL_STATUS : 0x%08x\n",
OMAP343X_CTRL_REGADDR(OMAP343X_CONTROL_STATUS),
OMAP343X_CTRL_BASE + OMAP343X_CONTROL_STATUS,
omap_ctrl_readl(OMAP343X_CONTROL_STATUS));

pr_info(M "[v 0x%p p 0x%08x] CONTROL_RPUB_KEY_H[4:0] : 0x%08x %08x %08x %08x %08x\n",
OMAP343X_CTRL_REGADDR(OMAP2_CONTROL_RPUB_KEY_H_0),
OMAP343X_CTRL_BASE + OMAP2_CONTROL_RPUB_KEY_H_0,
omap_ctrl_readl(OMAP343X_CONTROL_RPUB_KEY_H_4),
omap_ctrl_readl(OMAP2_CONTROL_RPUB_KEY_H_3),
omap_ctrl_readl(OMAP2_CONTROL_RPUB_KEY_H_2),
omap_ctrl_readl(OMAP2_CONTROL_RPUB_KEY_H_1),
omap_ctrl_readl(OMAP2_CONTROL_RPUB_KEY_H_0));

// XXX reboot (take a look at kpanic?)
//val = omap_ctrl_readl(OMAP343X_CONTROL_RAND_KEY_0);
pr_info(M "[v 0x%p p 0x%08x] OMAP343X_CONTROL_RAND_KEY_[3:0] : XXX\n", // 0x%08x 0x%08x 0x%08x 0x%08x\n",
OMAP343X_CTRL_REGADDR(OMAP343X_CONTROL_RAND_KEY_0),
OMAP343X_CTRL_BASE + OMAP343X_CONTROL_RAND_KEY_0);
// omap_ctrl_readl(OMAP343X_CONTROL_RAND_KEY_3),
// omap_ctrl_readl(OMAP343X_CONTROL_RAND_KEY_2),
// omap_ctrl_readl(OMAP343X_CONTROL_RAND_KEY_1),
// omap_ctrl_readl(OMAP343X_CONTROL_RAND_KEY_0));


// XXX reboot
//val = omap_ctrl_readl(OMAP343X_CONTROL_TEST_KEY_0);
pr_info(M "[v 0x%p p 0x%08x] OMAP343X_CONTROL_TEST_KEY_[13:0] : XXX\n",
OMAP343X_CTRL_REGADDR(OMAP343X_CONTROL_TEST_KEY_0),
OMAP343X_CTRL_BASE + OMAP343X_CONTROL_TEST_KEY_0);

// XXX zero
val = omap_ctrl_readl(CONTROL_USB_CONF_0);
pr_info(M "[v 0x%p p 0x%08x] CONTROL_USB_CONF_[1:0] : 0x%08x 0x%08x\n",
OMAP343X_CTRL_REGADDR(CONTROL_USB_CONF_0),
OMAP343X_CTRL_BASE + CONTROL_USB_CONF_0,
omap_ctrl_readl(CONTROL_USB_CONF_1), val);
//pr_info(M "USB Product ID [31:16] 0x%04x, Vendor ID[15:0] 0x%04x\n" , val>>16, val&0x0000ffff);

val = omap_ctrl_readl(OMAP343X_CONTROL_FUSE_OPP1_VDD1);
sprintb32(buf,val);
pr_info(M "[v 0x%p p 0x%08x] CONTROL_FUSE_OPP1_VDD1 : %s\n",
OMAP343X_CTRL_REGADDR(OMAP343X_CONTROL_FUSE_OPP1_VDD1),
OMAP343X_CTRL_BASE + OMAP343X_CONTROL_FUSE_OPP1_VDD1,buf);
}
return 0;
}

static void sprintb32(char* buf, u32 val)
{
u8 bit;
int i;
int k = 0;

for(i=0; i<32; i++){
bit = val >> 31;
if (bit)
buf[i+k]='1';
else
buf[i+k]='0';
val <<= 1;
if (i%8 == 7) {
k++;
buf[i+k] = ' ';
}
}
buf[32+k]=0;
}

static void pkhash_exit(void)
{
pr_info(M "exit\n");
}

module_init(pkhash_init);
module_exit(pkhash_exit);
MODULE_LICENSE("GPL");
[close]

Makefile
Spoiler:

BUILD:=$(KERNELDIR)/../out/target/pr/generic/obj/PARTITIONS/kernel_intermediates/build

mn := pkhash
obj-m := $(mn).o

PWD := $(shell pwd)
all:
@LC_ALL=C $(MAKE) -C $(BUILD) M=$(PWD) modules
clean:
$(MAKE) -C $(BUILD) M=$(PWD) clean
@rm -rfv modules.order

install:
adb -d push $(mn).ko /tmp/
adb -d shell su -c 'insmod /tmp/$(mn).ko'

reload:
adb -d push $(mn).ko /tmp/
adb -d shell su -c 'rmmod $(mn).ko && insmod /tmp/$(mn).ko'

uninstall:
adb -d shell rm /tmp/$(mn).ko
adb -d shell su -c 'rmmod $(mn).ko'

test:
adb -d shell dmesg | tail -n10
[close]


Вот какие строчки мы увидим в выводе dmesg после запуска модуля:
Код

    [v 0xd80022f0 p 0x480022f0] CONTROL_STATUS : 0x0000021b
    [v 0xd8002300 p 0x48002300] CONTROL_RPUB_KEY_H[4:0] :

0x4f2e156f f6272e49 cbb457fb 708c4d79 62b63f1d

    [v 0xd8002318 p 0x48002318] OMAP343X_CONTROL_RAND_KEY_[3:0] : XXX reboot
    [v 0xd8002338 p 0x48002338] OMAP343X_CONTROL_TEST_KEY_[13:0] : XXX reboot
    [v 0xd8002370 p 0x48002370] CONTROL_USB_CONF_[1:0] : 0x00000000 0x00000000
    [v 0xd8002380 p 0x48002380] CONTROL_FUSE_OPP1_VDD1 : 00000000 10011001 11000100 10000100


Хэш оказался одинаковым для всех версий прошивок 0x4f2e156f f6272e49 cbb457fb 708c4d79 62b63f1d

Сообщение отредактировал XVilka - 10.3.2010, 6:31
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 11.3.2010, 3:50


Мастер
****

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

Рейтинг: 244



Работаю над считыванием boot ROM,
есть первые успехи.

Вот на этом скриншоте видно что у omap3430 в HS режиме доступно только два метода загрузки:
Код

MAP_BASE : 0x40000000 MAP_SIZE : 0x00001000 MAP_MASK : 0x00000fff
sys_boot[5:0]: 0x1b
Boot order: NAND USB -- -- --


Сейчас работаю над полным чтением всего boot ROM для его анализа.

Boot ROM Code считан! 32 килобайта для HS mode crc32=288F48F7
Ссылка для загрузки: http://hexpaste.com/fetch/j3O5dSLQ

Сообщение отредактировал XVilka - 11.3.2010, 20:51
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
TEPEM
сообщение 13.3.2010, 14:06


Опытный
***

Группа: Пользователи
Сообщений: 112
Регистрация: 26.6.2007
Из: 3rd planet from the Sun
Пользователь №: 139 466
Модель телефона: ROKR E6
Прошивка: R535C12_mooTaNT

Рейтинг: 11.5



XVilka, а что там за ересь идёт в коде? smile.gif

Код
T e x a s   I n s t r u m e n t s              
N o k i a                                      
M o t o r o l a                                
O M A P 3 4 3 0                                
O M A P 3 4 3 0                                
N o k i a   U S B   R O M                      
S   B l a n k   O M A P 3 4 3 0                
N / A                                          
N / A


единственная мысль на которую это наводит меня (абсолютно нетехнического человека), что обе эти компании являются Gold Members of Linux Foundation - я посижу на досуге и покурю стратегию и принципы этой организации. Возможно, вопрос закрытого бутлоадера можно эскалировать на этом уровне.

Сообщение отредактировал TEPEM - 13.3.2010, 14:08
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
yakk
сообщение 13.3.2010, 16:48



*****

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


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



Рейтинг: 904



TEPEM вообще-то это строчки для USB-лоадера.. часть из них по идее будет передана usb-хосту при подключении телефона в "бланке" (точно не уверен что для TI-проца этот термин правильный).. я пока не нашёл на них ссылок из кода, так же как и ссылок на USB-дескрипторы, которые тоже есть в bootrom..
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 16.3.2010, 2:21


Мастер
****

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

Рейтинг: 244



2.1 немецкий рутован (правда 2.1 пока бета версия не финальная)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 24.3.2010, 2:28


Мастер
****

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

Рейтинг: 244



На данный момент непонятно назначение сертификата CERT.RSA из OTA обновлений для моторолы, и его связь с корневым сертификатом

Файл доступен здесь - http://www.xvilka.org/files/CERT.RSA

Вот здесь он распарсен - http://pastebin.ca/1849789

Формат сертификата - ASN.1 DER
распарсен командой
Код

openssl asn1parse -inform DER -in CERT.RSA


Остальные новости - на данный момент представляется только два пути развития событий:

1) Криптоанализ аглоритма проверки подписи и ключа
2) Написание загрузчика из запущенного ядра (2ndboot)

Поиск уязвимостей в коде mbmloader/mbm никаких результатов не дал

Сообщение отредактировал XVilka - 24.3.2010, 2:33
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Skrilax_CZ
сообщение 27.4.2010, 16:47


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

Группа: Пользователи
Сообщений: 33
Регистрация: 16.8.2008
Пользователь №: 179 333
Модель телефона: Motorola Miletstone
Прошивка: 2.1 rooted

Рейтинг: 14.5



And we cannot use custom On Chip Memory ROM to disable Secure Boot?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 28.4.2010, 4:49


Мастер
****

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

Рейтинг: 244



Sorry, no. In this ROM not presented any funtions with this - only pinouts change can do this. (At this moment we think)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 12.5.2010, 18:45


Мастер
****

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

Рейтинг: 244



Пока идет взлом ядра мы решили начать делать моддинг всего остального, тем более около 90% cyanogenmod не зависит от ядра. А тюнинг ява машины и других программ тем более!

Поэтому рад обьявить о начале milestonemod!

между тем взлом ядра и загрузчика не остановился, просто решили это делать параллельно, чтобы не терять времени.
Будем рады всем разработчикам, тем более это не взлом, это тюнинг, это проще.

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
cmapocma
сообщение 29.5.2010, 9:57


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

Группа: Пользователи
Сообщений: 50
Регистрация: 8.5.2010
Пользователь №: 216 819
Модель телефона: Motorola Milestone
Прошивка: 2.1.1

Рейтинг: 0



ребята, удачи! не забывайте сообщать о своих успехах :)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 30.5.2010, 18:45


Мастер
****

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

Рейтинг: 244



Ждите хороших новостей в течение следующей недели. yesyes.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 2.6.2010, 23:35


Мастер
****

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

Рейтинг: 244



Готово!
Вот исходники модуля - http://aegir.org.uk/~maurits/kexec-mod.tar.gz
компилируем,
скачиваем kexec-tools отсюда http://git.kernel.org/?p=linux/kernel/git/...s.git;a=summary
компилируем,
вставляем модуль kexec, загружаем ядро.
Позже или я или кто-нибудь другой выложим подробности.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
cmapocma
сообщение 3.6.2010, 7:49


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

Группа: Пользователи
Сообщений: 50
Регистрация: 8.5.2010
Пользователь №: 216 819
Модель телефона: Motorola Milestone
Прошивка: 2.1.1

Рейтинг: 0



XVilka, а можешь написать, что получается - вы пересобрали ядро и обошли защиту?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lelvisl
сообщение 12.7.2010, 16:41


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

Группа: Пользователи
Сообщений: 484
Регистрация: 14.1.2007
Пользователь №: 116 837
Модель телефона: Milestone & A1200

Рейтинг: 103.5



Ну так что мы имеем в результате?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
ohmy
сообщение 10.7.2011, 21:39


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

Группа: Пользователи
Сообщений: 46
Регистрация: 17.2.2011
Пользователь №: 224 127
Модель телефона: MB502

Рейтинг: 28.5



Вижу автор давно в теме не писал.
Напишу я.
Я отреверсил mot_boot_mode это бинарник такой который выполняется сразу после инициализации ядра.
Читает опции из /proc/bootinfo и исходя из них выполняет те или иные действия.

Например при считывании из телефона значение параметра

POWERUPREASON он выполняет команду tcmd.suspend а параметр команды зависит от того какое значение получено.

Например при параметре 0x00000100 включится chargeonly_mode.
Руками воспроизвести это можно разрядив батарейку и подключив зарядник, который работает от сети, а не от usb.


Вот все возможные значения для /proc/bootinfo
Код
#define PU_REASON_USB_CABLE             0x00000010 /* Bit 4  */
#define PU_REASON_FACTORY_CABLE         0x00000020 /* Bit 5  */
#define PU_REASON_PWR_KEY_PRESS         0x00000080 /* Bit 7  */
#define PU_REASON_CHARGER               0x00000100 /* Bit 8  */
#define PU_REASON_POWER_CUT             0x00000200 /* bit 9  */
#define PU_REASON_SW_AP_RESET           0x00004000 /* Bit 14 */
#define PU_REASON_WDOG_AP_RESET         0x00008000 /* Bit 15 */
#define PU_REASON_AP_KERNEL_PANIC       0x00020000 /* Bit 17 */



Стоит заметить, что некоторые из них в домашних условиях воспроизвести вообще невозможно, по крайней мере мне это не удалось.Есть мысль что это наследство из старых мотороловских телефонов и в андройдах просто не используется.

Исходный код mot_boot_mode доступен здесь


Если есть желающие поделиться информацией про работу /proc/bootinfo то с радостью выслушаю и по возможности допилю новые фичи.

Сейчас mot_boot_mode в полностью рабочем состоянии, позволяет запускать систему, включать charge_only, собственно другого ничего оно и не делает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Здесь новости с полей взлома Moto Milestone. Ковыряем андроиды · Motorola на Android OS · Forum
 

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

 



Текстовая версия Сейчас: 18.6.2025, 6:10

Форум живёт: