Разбираем XIP |
|
Разбираем XIP |
15.11.2007, 0:02
Сообщение
#1
|
|
PDA2U.RU Team Группа: Admin Сообщений: 1806 Регистрация: 20.10.2007 Из: Moscow Пользователь №: 11 Спасибо сказали: 172 раз(а) Девайс:Samsung Galaxy Ace |
В приложении роверовский XIP (любезно выковырянный k0ster'ом) и утилиты для ковыряния.
При распаковке этого XIP сталкиваюсь с проблемой: не могу построить карту (write map). Обращался к k0ster'у - у того карта строится. Попробуйте, строится ли карта у вас? Сообщение отредактировал BigMike - 18.11.2007, 23:48
Прикрепленные файлы
|
|
|
28.12.2007, 3:43
Сообщение
#2
|
|
PDA2U.RU Team Группа: Admin Сообщений: 4884 Регистрация: 25.11.2007 Из: СПб Пользователь №: 32 Спасибо сказали: 1657 раз(а) Девайс:RW6815/P320/Diamond |
Нашел, может не очень полезную с практической точки зрения, информацию. Номер версии ОС жестко зашит в coredll.dll в теле функции GetVersionExW. Код имеет подобный вид:
CODE EXPORT GetVersionExW GetVersionExW STMFD SP!, {R4,R5,LR} ; GetVersionEx MOVL R3, 0x79С ; 1948 MOV R2, #0x114 MOV R1, #5 MOV LR, #2 MOV R4, #3 ... BX LR ; End of function GetVersionExW Теоретически, нужно вытащить coredll.dll, дизассемблировать ее, найти функцию и посмотреть HEX-код, который уже и поменять на нужный в смысле версии. Практически, т.к. я не большой специалист по кодированию инструкций этих процессоров, то привожу поясняющую картинку, дешифровку и метод замены только для прошивок на базе WM6 ATOM и ATOM EXEC (смотрел штуки четыре, везде именно так). Менять можно либо в разобранной coredll.dll в S000 в XIP, либо напрямую в diskimage_Ver.nb0. 1. Кодирование версии ОС (5.2.1948): MOVL R3, 0x79С ; 79 3E A0 E3 0C 30 83 E3 MOV R1, #5 ; 05 10 A0 E3 MOV LR, #2 ; 02 E0 A0 E3 2. Метод замены (см. иллюстрацию) Ищем в diskimage_Ver.nb0 или S000 coredll.dll последовательность: 05 10 A0 E3 02 E0 A0 E3 Меняем по соответствующим смещениям билд. Вроде все. Да, для других осей поисковая цепочка может быть иной, нужно смотреть реализацию функции в coredll.dll. Например, для WM5 на RW6815 (6828) цепочка поиска 05 20 A0 E3 01 10 A0 E3. Основной источник: Обсуждение на xda-developers P.S. Теоретически, таких последовательностей вроде должно быть две, т.к. функций вроде бы две GetVersionEx и GetVersionExW. Но я не дизассемблировал полностью coredll.dll, нашел только одну. Может там просто ссылки на одну и туже функцию...
Прикрепленные файлы
|
|
|
Текстовая версия | Сейчас: 28.3.2024, 13:59 |