• Это комментарии. Каждому комментарию в патче должна предшествовать точка с запятой. Вы можете написать комментарии в любой части патча.
• Врезки и модификации кода прошивки. Изменения сделанные в коде прошивки, которые означают, что оно заменяют байты в фактических функциях, которые используют наши телефоны.
• Тело патча. Это - новый код, написанный в конце прошивки нашего телефона, в пустой свободной области.
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).
здесь было "vetel"))). В скомпилированном патче все та же ошибка,но это в другую тему
Sony Xperia XA Samsung SM-J120F/DS Galaxy J12016
C510 R1HA035Brown снова со мной
K550 R8BA024 почти помер
Vov4ик
Patcher
Регистрация: 14.8.10 Сообщений: 826 Репутация: 8576 Откуда: Russia
#79 [12.09.11, 13:37] Re: [Tutorial] Создание ASM файла (исходника).
vetel, отличается потому что у меня версия с эдитом Se-Maga
Спасибо сказали: Neodzen
Neodzen
Patcher
Регистрация: 3.10.10 Сообщений: 311 Репутация: 3339 Откуда: Украина
#80 [05.10.11, 18:13] Re: [Tutorial] Создание ASM файла (исходника).
такой вопрос. Вот что делать, если во время проверки патча эплипатч выдает, что в проше на том месте, где в патче врезка и НЕ нули заменяются на код, - нули. Соответственно, вопрос как такие врезки в другой проше искать? Заранее спасибо
K800 R8BF003 FOREVER! Респекты: MrGraL,Therion,D3mon,E1kolyan,Boysie,Vov4ик, ну и список можно продолжать еще долго)))
#81 [05.10.11, 20:53] Re: [Tutorial] Создание ASM файла (исходника).
Neodzen, если я тебя правильно понял, то ты говоришь про патчи-аддоны, т.е. те патчи, которые ставятся поверх других патчей. Применяй патч на прошивку и смотри там, только тут уже поиск паттерна не поможет. Нужно самому найти это место в патче для твоей прошивки! А лучше покажи, что за патч такой.
Sony Xperia XZ3 Green Sony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.