motofan logo
> 

Ковыряем бут

igorCool
сообщение 11.3.2007, 8:12


Новичок
*

Группа: Пользователи
Сообщений: 12
Регистрация: 11.3.2007
Пользователь №: 126 394
Модель телефона: Motorola C390
Прошивка: R368_G_0B.A0.0FR

Рейтинг: 3



Сразу к делу.

Как(чем) слить ROM (0x00000000 по 0х001С0000)?
В команде READ во встроенном буте (0x10000000) идет проверка на выход параметра за границы:
0х10000000-0х12000000

Код

Boot:100012D8                 LDR     R0, =0x3FC836C
Boot:100012DA                 LDRB    R0, [R0]
Boot:100012DC                 CMP     R0, #0
Boot:100012DE                 BEQ     loc_1000130A
Boot:100012E0                 BL      PhoneType      ; 1-engn;2,8-prod;other-dsbl
Boot:100012E4                 CMP     R0, #2
Boot:100012E6                 BNE     loc_1000130A
Boot:100012E8                 LDR     R0, =off_10000000    
Boot:100012EA                 CMP     R7, R0                       -здесь
Boot:100012EC                 BCC     error_83
Boot:100012EE                 MOVL    R3, 0x2000
Boot:100012F2                 ADD     R3, SP
Boot:100012F4                 LDR     R1, =off_10000000
Boot:100012F6                 MOVL    R2, 0x2000000
Boot:100012FA                 ADD     R1, R1, R2
Boot:100012FC                 LDR     R0, [R3,#0x38]
Boot:100012FE                 CMP     R0, R1                       -и здесь
Boot:10001300                 BCC     loc_1000130A
Boot:10001302
Boot:10001302 error_83                               ; CODE XREF: cmd_READ+64j
Boot:10001302                 MOV     R0, #0x83; 'Ã'
Boot:10001304                 BL      answer_err
Boot:10001308                 B       exit


В буте который загружается в телефон (ramldr) таже проблема.
При исправлении ramldr бута он не запускается, видимо идёт проверка CRC бута.
Вопрос: как отключить эту проверку, чтобы написать свой бут?
Где может находится эта проверка?

При изучении команды JUMP встроенного бута нашел, что он всегда прыгает на 03FD0010 и имеет в
своем теле процедуру обращающаюся по адресу 0x39023902 - что там? (может это и есть проверка)

Как видно из приведенного кода - если телефон имеет тип "engn" то проверки не происходит.
Можно ли указать телефону, что он "engn"?

Если я исправлю бут по 0x10000000 то тел загнется или все будет нормально?

И последнее:

Boot:100035BC LDR R12, =0x2189
Boot:100035C0 BX R12

Как передастся управление обратно после выполнения процедуры по 0x2189 или это IDA не правильно отобразила код? (это процедура проверки типа телефона "PhoneType")


Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Ответ в темуСоздание новой темы
Ответов
igorCool
сообщение 18.3.2007, 7:12


Новичок
*

Группа: Пользователи
Сообщений: 12
Регистрация: 11.3.2007
Пользователь №: 126 394
Модель телефона: Motorola C390
Прошивка: R368_G_0B.A0.0FR

Рейтинг: 3



В буте есть функция (см. ниже) по результату которой запускается FlashMode либо сама прошивка.
Часть функции:
Код

BOOT:100002DA                 PUSH    {R4,R5,R7,LR}
BOOT:100002DC                 MOV     R3, #1          
BOOT:100002DE                 MOV     R2, #0          
BOOT:100002E0                 MOV     R1, #3          
BOOT:100002E2                 MOV     R0, #4          
BOOT:100002E4                 BL      Config_IO
BOOT:100002E8                 MOV     R3, #0
BOOT:100002EA                 MOV     R2, #0
BOOT:100002EC                 MOV     R1, #0xC
BOOT:100002EE                 MOV     R0, #0
BOOT:100002F0                 BL      Config_IO
BOOT:100002F4                 MOV     R1, #3
BOOT:100002F6                 MOV     R0, #4
BOOT:100002F8                 BL      GetElement
BOOT:100002FC                 ADD     R5, R0, #0
BOOT:100002FE                 MOV     R1, #0xC
BOOT:10000300                 MOV     R0, #0
BOOT:10000302                 BL      GetElement
BOOT:10000306                 ADD     R4, R0, #0
BOOT:10000308                 CMP     R5, #0
BOOT:1000030A                 BEQ     exit_0
BOOT:1000030C                 CMP     R4, #0
BOOT:1000030E                 BNE     loc_BOOT_10000318
BOOT:10000310
BOOT:10000310 exit_0:                                 @ CODE XREF: Detect+30j
BOOT:10000310                 MOV     R0, #0
BOOT:10000312
BOOT:10000312 exit:                                   @ CODE XREF: Detect+6Ej
BOOT:10000312                                         @ Detect+A0j ...
BOOT:10000312                 POP     {R4,R5,R7}
BOOT:10000314                 POP     {R3}
BOOT:10000316                 BX      R3


Это обработчик нажатия #+* ?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
igorCool   Ковыряем бут   11.3.2007, 8:12
Random   igorCool, Проверка не CRC идет, а подписи по алго...   11.3.2007, 8:23
igorCool   Т.е. в загружаемом буте находится подпись? или она...   11.3.2007, 8:48
Vilko   igorCool, подпись находится и в буте что по адрес...   11.3.2007, 9:04
igorCool   Риторический вопрос (хотя ответ приветствуется): И...   12.3.2007, 7:53
Vilko   Риторический вопрос (хотя ответ приветствуется): ...   12.3.2007, 8:38
igorCool   обработчик memacs похож на обработчик READ? А то я...   12.3.2007, 10:36
Vilko   обработчик memacs похож на обработчик READ? А то ...   12.3.2007, 11:22
igorCool   Несколько вопросов: Как узнали адреса устройств? (...   13.3.2007, 4:22
Vilko   итак, несколько ответов ;) 1: эту команду ина неп...   13.3.2007, 7:00
igorCool   Интересно, по адресу 0x20000 код повторяется, Dual...   13.3.2007, 8:28
Vilko   igorCool, скорее просто глюк чтения. заново начал...   13.3.2007, 11:29
igorCool   igorCool, скорее просто глюк чтения. заново нача...   17.3.2007, 2:40
Vilko   igorCool, гм. пример? я - не нашел таковых   17.3.2007, 5:29
igorCool   [b]igorCool, гм. пример? я - не нашел таковых ...   17.3.2007, 7:17
Vilko   это не указатели, это числовые константы просто ;)...   17.3.2007, 8:48
igorCool   Пара вопросов: 1. Имеет ли смысл функция начинающ...   17.3.2007, 9:14
Vilko   igorCool, 1й фрагмент - видимо не имеет смысла. 2...   17.3.2007, 9:59
igorCool   В кодовых групах, сразу за указателем на начало, с...   18.3.2007, 3:09
Vilko   igorCool, B1 это метка, признак "правильност...   18.3.2007, 6:24
igorCool   В буте есть функция (см. ниже) по результату котор...   18.3.2007, 7:12
Vilko   гм. не совсем понял что это за фрагмент, но если о...   18.3.2007, 7:19
borisk   ja pitajus raskrit Motorolovskuju proshivku RAZR V...   30.3.2007, 16:41
Vilko   borisk, Учимся Патчить Прошивку.   30.3.2007, 19:25

Ковыряем бут · Ломаем и строим! · Forum
 

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

 



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

Форум живёт: