• Это комментарии. Каждому комментарию в патче должна предшествовать точка с запятой. Вы можете написать комментарии в любой части патча.
• Врезки и модификации кода прошивки. Изменения сделанные в коде прошивки, которые означают, что оно заменяют байты в фактических функциях, которые используют наши телефоны.
• Тело патча. Это - новый код, написанный в конце прошивки нашего телефона, в пустой свободной области.
2.- Понятия:
• У комментариев нет никаких функциональных возможностей в теле патча, кроме как указания автора,имени,модели и прошивки,а также дополнительной информации о нём.
• Врезки и модификации кода прошивки делают патчеры необходимые для работы новых патчей. Иногда патчеры добавляют в прошивку новые функции, прописывая их в свободную зону прошивки. Новый код называют Телом патча. Патчеры пишут переход туда из прошивки, который по большей части выполняет только переадресацию, после чего следует выполнение нового кода и переадресация к исходной функции, не ломая дальнейший код (бывают и исключения).
• Тело патча - это дополнительный код который записывают в свободную область. Для задействования кода патчеры пишут врезки,который переадресует исходную функцию на новую. В большинстве случаев после того, как новый код был выполнен происходит переадресация назад к старому коду,чтобы не оборвать выполнение функции и не вызвать какой-либо сбой.
3.- Основы ассемблирования:
Важной вещью, чтобы понять является cо-отношение между функцией и используемым положением байт.
У каждого байта в наших прошивках есть определенное значение и причина существования, они классифицированы в Данных и Коде. Логика выполнения задаётся процессором,какой байт распознавать как Код,а какой как Данные. Каждая функция в нашей прошивке использует место (в байтах).
ARM Процессоры (используемые в наших телефонах) имеют 2 'Режима Выполнения' (понимать термин вам не нужно): 16-битное (вызывает THUMB) и 32-битное (вызывает ARM) выполнение. Это означает, - то,что некоторые (большая часть) кода прошивки написаны в виде 16-битных (2 байта) функциях и некоторый другой код в виде 32-битных (4 байта) функций. Мы не будем касаться Режима Выполнения ASM, так как мы почти не используем его, и продолжим с Режимом Выполнения THUMB.
В Режиме Выполнения THUMB (16-бит) Функции Ассемблера используют 2 байта пространства, таким образом каждые 2 байта THUMB кода, процессор обрабатывает как функцию.
4.- Интерпретация:
Тот код что находится в наших VKP патчах должны изменить какие-то байты в прошивке,изменив при этом функцию нашего телефона. Все значения написаны в HEX-виде.
452add9c: 26D0 24D0
Это часть нашего патча, заменяет 26D0 на 24D0 по адресу 452ADD9C в нашей прошивке. 26D0 - 2 байта, и если мы дизассемблируем их получаем функцию:
И когда мы применяем патч, 26D0 изменяются на 24D0, и получаем следующее:
ROM:452ADD9C 24 D0 BEQ loc_452ADDE8
Единственное, что изменилось, был параметр функции. Как вы могли заметить, параметр - смещает адрес: 452ADDE8. 5.- Процесс:
• Открываем IDA и загружаем необходимую прошивку. • Применяем патч используя IDC скрипт 'Apply VKP Patch'. • Далее Menu > Options > General > 'Number of opcode bytes:' изменяем на 4. (Число байт отображаемых у каждой функции слева).
• Переходим к первой врезке патча: 452add9c. (Горачая клавиша: G) • Дизассемблируем (Горячая клавиша: C) • Выбираем строку соответствующую байтам, которые указаны в патче:
• Нажмите Alt + F10 и создайте ваш второй файл. • Приведите его в порядок и создайте переход: Код:
org 0x452ADDE8 LDR R3, off_452ADDEC BX R3
off_452ADDEC DCD 0x45C00940+1
• Переходим на третью врезку: 45c00940 Примечание: Эта врезка переходит в пустую область прошивки,где расположено тело патча. Примечание2: Во все значения после перехода в тело патча можно делать переход между ними, всё это функция написанная Джон'ом North'ом (Автор)..
• Дизассемблируйте, если это ещё не сделано. • Выделяем тело патча и создаём третий .asm (Alt + F10).
Регистрация: 3.10.10 Сообщений: 311 Репутация: 3339 Откуда: Украина
#82 [05.10.11, 21:17] Re: [Tutorial] Создание ASM файла (исходника).
D3mon, Патч:
;K800 SW-R8BF003 ;Complement for the patch "Copy/Move files to any folder v2.1.1" ;Change the icons of the folders folders Tpa / System / Ifs in the 4th tab of Filemanager ;Add folder icons on ZBin/ini/Config/Daemons/dll in the 5th tab of Filemanager ;(c) Ploik, myrzeug ;(p) Boysie
K800 R8BF003 FOREVER! Респекты: MrGraL,Therion,D3mon,E1kolyan,Boysie,Vov4ик, ну и список можно продолжать еще долго)))
#83 [05.10.11, 23:04] Re: [Tutorial] Создание ASM файла (исходника).
Neodzen, а, ну всё верно! 0x45D29BE6 и 0х45D29CA4 - это адреса не из прошивки, а из патча "Copy/Move files to any folder v2.1.1". Примени патч в ИДЕ, перейди по ним, и увидишь код!
Sony Xperia XZ3 Green Sony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.