Перейти к содержанию
Old Phone Forum
  • Вход

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Легкий поиск Mcc кода текущего приложения


Рекомендуемые сообщения

Для многих не секрет, что в текущей версии BinEdit имеется возможность просмотра переменных в оперативной памяти

через монитор при установленном CGSN патче на телефоне.

 

Недавно придумал легкий способ опеределения текущего MCC приложения без лишнего копания с поиском.

Возможно, что некоторые товарищи его знают :)

Так вот...

 

Опишу способ на примере X100XEDG1 ;)

Расписывать сейчас более подробно нет времени ;)

Поэтому буду краток :)

 

1) Берем, то есть открываем нужную нам прошивку :)

2) Ищем в символах ARM функция lk1_2menu_edit_fsm и открываем

3) Видим картинку, подобную этой:

lk1_2menu_edit_fsm:	
STMFD	SP!, {R4,LR}
LDR	R4=#0x0166B80C

loc_01004704:	
LDRB	R0,[R4,0x4]
CMP	R0, #0xF5
MOVGE	R0, #0x1
LDMGEFD	SP!, {R4,LR}
BXGE	LR
MOV	R1, R4
BL	lk1_run_mcc
...

В регистр R4 загружается переменная, в которой содержится адрес текущей MCC

Ее следует скопировать.

 

5) Добавляем переменную в монитор терминала программы BinEdit

6) Соединяем телефон с компьютером и наслаждаемся смещением текущей MCC :)

 

На последок...

Функцию lk1_2menu_edit_fsm легко найти через lk2_12start_menu_edit_fsm(при отсутствии таковой в символах)

Ссылка на комментарий
Поделиться на другие сайты

Давно использую эту возможность, как на x700, так и теперь на e200...

 

Но нашел переменную не таким способом... Поступить можно более проще...

 

В BinEdit открываем свою прошивку, переходим на вкладку MCC и находим MCC_FLAG, открываем ее в режиме просмотра thumb-кода и видим (для e200xegd6):

 

[indent][b]MCFN_MCC_FLAG[/b]:[/indent]
PUSH	{R4-R6,LR}
MOV	R4, R0
MOV	R5, #0x0
LDR 	R0, [R4]
LDR	R2, =gs_look
LDR 	R1, [R4]
LDRH	R3, [R0, #2]
LDR 	R0, [R2, #0x4]
LDRH	R6, [R1, #4]
LDRH	R1, [R1, #6]
LSL	R6, R6, #16
ORR	R1, R6

[indent]...[/indent]

POP	{R4-R6,PC}
DCD	gs_look ;(0x3034A050)

 

Нам собственно интересно начало, а именно переменная gs_look. Берем к ней смещение в 16 байт и получаем адрес хранения текущей MCC-команды.

 

Для x700 и e200 добавлял функцию получения адреса текущей MCC в CGSN-патч. Кому интересно исходник для e200 идет с последней сборкой BinEdit

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


×
×
  • Создать...