Всё для Motorola E770/E770v
Как делаются патчи? - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Chik  
Форум » ПО » Патчи » Как делаются патчи? (?)
Как делаются патчи?
danДата: Суббота, 07.06.2008, 19:03:55 | Сообщение # 1
Юзер
Группа: Пользователи
Сообщений: 46
Репутация: 5
Статус: Offline
Мне интерессно знать как делаются патчи да не только мне а и многим?
Прошу выложить инструкцию.Хочу попробывать можно ли самому забацать.
 
ChikДата: Суббота, 07.06.2008, 19:32:46 | Сообщение # 2
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
Можешь и попробовать.
Качаешь IDA, модуль для M*Core, дизассемблируешь прошивку, находишь то что ты бы хотел поменять, думаешь как это сделать, модифицируешь прошивку, тестишь. Если добился нужного результата - ну знач ты сделал патч.
Учи основы ассемблера, без него никакие мануалы не помогут. Разве что сможешь простенькие патчи типа замены рисунков из DRM делать.


 
jk-91Дата: Воскресенье, 08.06.2008, 23:45:58 | Сообщение # 3
Бывалый
Группа: V.I.P.
Сообщений: 201
Репутация: 24
Статус: Offline
Способ поиска функций по записям в прошивке что описал Чик на сайте Трояна нужно востановить на этом сайте , патчеры не спешат делится своими секретами , будем изучать прошивку сами .

Добавлено (08.06.2008, 23.45.58)
---------------------------------------------
Нашел другой способ поиска функций , нужна IDA , HEX , MEMACS , список ID записей из ленгпака . Времени как всегда мало но по возможности будем заниматся ... Опишу на примере прошивки 80r .

 
danДата: Воскресенье, 08.06.2008, 23:55:06 | Сообщение # 4
Юзер
Группа: Пользователи
Сообщений: 46
Репутация: 5
Статус: Offline
Некому патчи делать...мало кто шарит.
jk-91, правильно говоришь,надо самим делать.
Может у кого-то есть эта статья о которой jk-91, говорил?
 
ChikДата: Воскресенье, 08.06.2008, 23:59:09 | Сообщение # 5
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
Да, на сайте Трояна был единственный мануал по нашим прошивкам, жаль что я его не сохранил, а писать заново мне пока некогда, и чесно говоря лень. Может позже будет.
А вообще, это комуто реально надо? Ато если "проста пасматреть", то я его заново писать не буду, т.к. не отношусь к любителям делать дурную работу. А вот если есть заинтересованные люди то пожалуйста, выложу как сделаю.




Сообщение отредактировал Chik - Воскресенье, 08.06.2008, 23:59:34
 
jk-91Дата: Понедельник, 09.06.2008, 00:28:18 | Сообщение # 6
Бывалый
Группа: V.I.P.
Сообщений: 201
Репутация: 24
Статус: Offline
Запускаем MEMACS и вверхней строчке пишем 08AFDBCC , нижнюю строчку оставляю свободной MEMACS килобайт и так сольёт , потом открываем в файл в HEX и смотрим первые десять рядов , в каждом ряду идет ивент функции (можем узнать какой посмотреть в ID-ленгпака и за ним адрес 08 xx xx xx . Сливаем это 08 xx xx xx и видим куда он обращается .... Пример , если сливать после запуска музыки 320 kб/сек , то там будет ивент загрузки 0A28 (четыре ноля и адрес 08 xx xx xx слив который видим продолжение функции и также будет ивент ( Неустановл . инф о файле . удал ? 0ADB 00 00 и адрес всегда разный 08 xx xx xx но слив который всегда попадём на одинаковые ивенты 04 xx типа C . A . B . 0 . если музыка нормальная то будет ивент воспроизведения 0A 29 ... Далее в IDA ищем 08 AF DB CC она такая одна и четыре LRV к нему и пробуем тянуть путь от куда пришло ограничение на битрейт 320 ну и на количество песен в плейлист 256 , потом или увелим MOVI или сделаем джамп типа F0 xx , или игнор проверки типа 12 00 ... Времени много надо

Добавлено (09.06.2008, 00.28.18)
---------------------------------------------
Мануал Чика с сайта Трояна я изучил , записей его у меня нет всё в голове там основы ковыряния прошивки mCore . Просба напиши его на этом сайте , он даёт возможность начинать с нолевыми знаниями ассемблера , понятное дело что времени нет но повторись пожалуйста .

 
ChikДата: Понедельник, 09.06.2008, 00:31:37 | Сообщение # 7
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
Угу, кстати.
Документация по процессору
Процессорный модуль M*Core для IDA
IDA v5.2

Модуль закинуть в \IDA\procs\
При открывании прошивки в списке поддерживаемых процессоров выбираем "Motorola: M*Core".




Сообщение отредактировал Chik - Понедельник, 09.06.2008, 00:35:55
 
jk-91Дата: Понедельник, 09.06.2008, 08:57:51 | Сообщение # 8
Бывалый
Группа: V.I.P.
Сообщений: 201
Репутация: 24
Статус: Offline
Желательно опиши загрузку , поиск функций по записям и если можно разбор функции которую ты хорошо изучил по мелочам и возможности её патченья . Если можешь опиши по какому принципу работает какойто сложный патч Ганджи и ход как его сделать в IDA .

Добавлено (09.06.2008, 00.58.17)
---------------------------------------------
То что мануал нужен , нет сомнений , много кто с E770 & V3X хочет изменить свой телефон но на русском языке нигде ничего нет а начинать с ноля самому и сложно и непонятно .

Добавлено (09.06.2008, 01.52.31)
---------------------------------------------
Кто хочет начат с чегото могут например взять ID ленгпака или номера картинок DRM переводить в шестнадцатиричный потом искать в прошивке по 01 00 xx xx где xx xx это ID строчек ленгпака , 12 00 xx xx где xx xx это номера катинок переведенные в шестнадцатиричный и менять делая патчи под себя , иногда меняются название кнопок как например в яве если заменить ( Приостановить ) на что то другое всёравно будет приостанавливать , иногда с записю меняется и функция как например в патче (оптимизация меню в картинках , видео , музыке ) Открыв в HEX прошивку , ID - ленгпака и этоти патчи в прошивке легко находим места патчей и заменяя ID строчек делаем меню в мультимедиа под себя .

Добавлено (09.06.2008, 08.57.51)
---------------------------------------------
Кто ещё хочет помочь в написании патчей и у кого много времени займитесь написанием списка евентов в виртуальном корелете от ноля и до FFFF ... Сделать легко , времени много нужно !

 
ChikДата: Вторник, 10.06.2008, 15:12:39 | Сообщение # 9
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
Ну что начнём чтоли...

Сначала хотелось бы описать процессор и его систему команд.
Процессор довольно редкий(особенно если с ARM сравнивать), устройств основанных на нём немного.
Процессор имеет 16 регистров r0-r15
r0 - это указатель на вершину стека
r1 - "scratch", т.е. обычно используется для временного хранения
r2 - в нём обычно передаётся результат выполнения функции(если он один и помещается в регистр)
r3-r14 - для свободного использования
r15 - в нём хранится адрес возврата. Например инструкция jsri помещает [текущий адрес + 2] в r15 и только после этого вызывает функцию либо процедуру. А в конце неё происходит jmp r15, т.е. переход по адресу, сохранённому в r15.
Также существует регистр PC, в нём содержится адрес выполняемой в данный момент инструкции. Он недоступен для прямого изменения.
Все команды двухбайтные, т.е. в шестнадцатеричном виде записываются в виде двух байт. Например jmp r15 выглядит как 00 CF.
Описание всех команд есть в документации на процессор(см. выше)




Сообщение отредактировал Chik - Вторник, 10.06.2008, 15:13:54
 
jk-91Дата: Вторник, 10.06.2008, 17:19:52 | Сообщение # 10
Бывалый
Группа: V.I.P.
Сообщений: 201
Репутация: 24
Статус: Offline
Можешь из листинга IDA какой нибудь функции описание сделать ? Например с прошивки Ганджи , я её скачать так и несмог . Или разобрать кусок кода с адреса который я написал выше , вернее с любого LRV к нему , там их четыри , интересует второй , третий и четвертый .

Добавлено (10.06.2008, 17:16:56)
---------------------------------------------
На сайте Трояна ты описывал поиск функции по записи в прошивке , вопрос можно найти функцию уже по факту её записи в оперативку , тоисть обратным отсчётом ? Ещё сожалею что у нас нет патча " включить отладку " много можно былобы вытягивать из мидвея . Как по мне так этот патч первоочередной , подозреваю что у Ганджи он или аппарат для вывода логов есть но как я сказал патчеры не спешат делится своими секретами .

Добавлено (10.06.2008, 17:19:52)
---------------------------------------------
Неверю что они просто тупо в машинном коде ищут функции , иначе Ганджа могбы всё делать и без телефона .

 
ChikДата: Вторник, 10.06.2008, 17:39:53 | Сообщение # 11
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
Без телефона делать можно, но надо ж на чёмто тестить? а когото просить - это неэффективно и долго. Да и сложные патчи особо без тела не поделаешь.

Насчёт отладки. Много какие функции логирование просто тупо вырезаны, там всего одна команда jmp r15 осталась. Я туда ничего пихнуть не могу, т.к. надо минимум 6 байт, а доступно только 2:(
А искать и править во всех местах откуда она вызывается... ну его нафиг, это ж туча мест.

Вообще, функции в оперативку не пишутся, а исполняются на месте(переходы то записаны относительно CG1 ведь), даже если и закинуть любую функцию (кроме уж совсем простой), то 99.9% нифига не выйдет, т.к. при первом же абсолютном переходе выполнение пойдёт в CG1. В оперативке могут быть разве что такие ф-ции как strcpy, memclr и т.п., но пользы от того что ты их отловишь никакого.


 
jk-91Дата: Среда, 11.06.2008, 08:49:28 | Сообщение # 12
Бывалый
Группа: V.I.P.
Сообщений: 201
Репутация: 24
Статус: Offline
Ну вообщем с обратным отсчётом разобраться можно напримере как ивенты ( звук , идет подключения устойсва прописываются из создать ММС или емаил сообщение в оперативку . Опиши способ как генерируются ивенты ленга которых нет в чистом виде в прошивке , такие например как 0ADB (неопознаный формат файла ) . . . PS : Я все 0ADB которые есть в прошивке убил но он всё равно прописывается в оперативку .

Добавлено (10.06.2008, 17:50:39)
---------------------------------------------
Я неправильно написал , извиняюсь , не функции а ивенты функций пишутся в оперативку .

Добавлено (10.06.2008, 17:54:31)
---------------------------------------------
Какой ты считаеш самый эффективный способ поиска функций ?

Добавлено (11.06.2008, 08:49:28)
---------------------------------------------
Сделал несколько ходов в IDA назад , получил адрес , сделал с него джамп на 00 CF ... Из ивентов в эту точку входа проходит только (просмотр устойсв хранения ) . На экране телефона вместо ( ДА и НЕТ ) квадратики , записи ( Неустановл , формат файла , удалить ? ) уже нет . Правда рамка скина есть пустая . Надеюсь разобраться с этим куском кода ( на него идет огромное количество джампов ) , но если метод сработает то надеюсь найти место генерации злощасного 0ADB и ему подобных , и сделать патч снятия ограничения битрейта с аудио и видео , и количества установленых песен ... Надеюсь также на помощь всех кто понимает в ассамблере .

 
ChikДата: Четверг, 12.06.2008, 23:57:43 | Сообщение # 13
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
кстати, чуть не забыл:)
Всем, кто собирается делать/портировать патчи НАСТОЯТЕЛЬНО рекомендую ознакомится с основами программирования вообще, и с ассемблером в часности.
Найдите где-нибудь любую книгу по асму, и прочитайте хотябы первые главы, где рассказывается про архитектуру процессора, системы исчисления и логические операции.

P.S: Нарыл недавно очень занимательную книженцию - Крис Касперски "Искусство дизассемблирования". Весьма полезная, правда всё написано относительно x86, но есть и такие вещи, которые могут пригодится и нам.

Добавлено (12.06.2008, 23:57:43)
---------------------------------------------
Да, товарищи патчеры, а Вы знакомы с основами? Тоесть с преобразованиями HEX->DEC, HEX->BIN, представлением данных в прошивке и т.п? Или надо подробно остановится на этом?


 
jk-91Дата: Пятница, 13.06.2008, 01:15:33 | Сообщение # 14
Бывалый
Группа: V.I.P.
Сообщений: 201
Репутация: 24
Статус: Offline
Это знаем , опиши лучше какую нибудь функцию небольшую .
 
ChikДата: Пятница, 13.06.2008, 08:40:36 | Сообщение # 15
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
Проверка biggrin

Сколько будет 20h LSH 4? (оно же 20h LSH 4)
и 15h AND 10h?

А я ведь не спроста спрашиваю, без понимания теоретических основ далеко не уедем.




Сообщение отредактировал Chik - Пятница, 13.06.2008, 08:42:30
 
jk-91Дата: Пятница, 13.06.2008, 09:35:51 | Сообщение # 16
Бывалый
Группа: V.I.P.
Сообщений: 201
Репутация: 24
Статус: Offline
Открываем инженерные калькулятор , ставим точку на HEX , набираем числа , проводим расчеты какие нам нужно ... Результат можем перевести в десятиричный или двоичный переставив точку... Буква h после цифр наведеных тобой означает что число перед ней в шестнадцатиричной системе исчисления , остальное непонятно , потому и попросил разобрать пример на какой нибудь функции
 
MartinGoreДата: Пятница, 13.06.2008, 10:36:13 | Сообщение # 17
Юзер
Группа: Пользователи
Сообщений: 43
Репутация: 0
Статус: Offline
ребят...чё ж вы такие умные,, чуствуешь себя совсем тупым .. cry



Adrenalin:A - No hay vida sin aventuras.
 
ChikДата: Пятница, 13.06.2008, 14:52:15 | Сообщение # 18
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
В виндозном какуляторе нету некоторых операций. Например lsh есть, а rsh нету. Ответы где?:)
Quote (MartinGore)
ребят...чё ж вы такие умные,, чуствуешь себя совсем тупым .. cry

Что непонятно спрашивай, обьясним по возможности.

Quote (jk-91)
остальное непонятно

Что конкретно? Лучше ты сам выбери какойто кусок который тебе непонятен и разберём его.


 
jk-91Дата: Пятница, 13.06.2008, 15:46:29 | Сообщение # 19
Бывалый
Группа: V.I.P.
Сообщений: 201
Репутация: 24
Статус: Offline
Кусок кода из листинг IDA патча " следующий трек " , вторая строчка в патче отвечает за свёрнутый режим .... Патч начинает работать если в жимм отослать сообщение и можно из явы выходить . Вот такой вот глюк на 80 R . Вторую строчку можешь объяснить как она работает ? Может можно сделать другой вариант патча ?
 
ChikДата: Пятница, 13.06.2008, 16:14:43 | Сообщение # 20
Продвинутый
Группа: Администраторы
Сообщений: 70
Репутация: 15
Статус: Offline
Code
44BC5A: 12 E3 12 A2 60 14 7F 01 F7 78 10 48 F0 F2 00 00 00 00 00 00

из ida
Code
ROM:1048BC5A                 mov     r3, r14          ;NEXT_PAT_2
ROM:1048BC5C                 mov     r2, r10
ROM:1048BC5E                 movi    r4, 1
ROM:1048BC60                 jsri    AP_Utility_MoveNextPrevFile
ROM:1048BC62                 jbr     loc_1048BB54
ROM:1048BC62  ---------------------------------------------------------------------------
ROM:1048BC64 off_1048BC64:   .long AP_Utility_MoveNextPrevFile
ROM:1048BC64                    DATA XREF: AP_Play_HandleMediaComplete+1D0r
ROM:1048BC68                 .byte    0
ROM:1048BC69                 .byte    0
ROM:1048BC6A                 .byte    0
ROM:1048BC6B                 .byte    0
ROM:1048BC6C                 .byte    0
ROM:1048BC6D                 .byte    0

это оно?
так тут собсно и объяснять то нечего. В r2, r3 и r4 помещаются какието значения(в r4 предположительно 1 - вперёд, 0 - назад) и вызывается AP_Utility_MoveNextPrevFile. И потом переходом идём на код из первой части патча
Code
ROM:1048BB54                 mov     r13, r2
ROM:1048BB56                 st.b    r2, (r12, 0xB)
ROM:1048BB58                 jbr     loc_1048BCB4

который помещает в r13 содержимое r2 и также сохраняет байт из r2 по адресу из r12+0xB, а затем переходит на завершение самой AP_Play_HandleMediaComplete.


 
Форум » ПО » Патчи » Как делаются патчи? (?)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: