Как делаются патчи?
|
|
dan | Дата: Суббота, 07.06.2008, 19:03:55 | Сообщение # 1 |
Юзер
Группа: Пользователи
Сообщений: 46
Статус: Offline
| Мне интерессно знать как делаются патчи да не только мне а и многим? Прошу выложить инструкцию.Хочу попробывать можно ли самому забацать.
|
|
| |
Chik | Дата: Суббота, 07.06.2008, 19:32:46 | Сообщение # 2 |
Продвинутый
Группа: Администраторы
Сообщений: 70
Статус: Offline
| Можешь и попробовать. Качаешь IDA, модуль для M*Core, дизассемблируешь прошивку, находишь то что ты бы хотел поменять, думаешь как это сделать, модифицируешь прошивку, тестишь. Если добился нужного результата - ну знач ты сделал патч. Учи основы ассемблера, без него никакие мануалы не помогут. Разве что сможешь простенькие патчи типа замены рисунков из DRM делать.
|
|
| |
jk-91 | Дата: Воскресенье, 08.06.2008, 23:45:58 | Сообщение # 3 |
Бывалый
Группа: V.I.P.
Сообщений: 201
Статус: Offline
| Способ поиска функций по записям в прошивке что описал Чик на сайте Трояна нужно востановить на этом сайте , патчеры не спешат делится своими секретами , будем изучать прошивку сами . Добавлено (08.06.2008, 23.45.58) --------------------------------------------- Нашел другой способ поиска функций , нужна IDA , HEX , MEMACS , список ID записей из ленгпака . Времени как всегда мало но по возможности будем заниматся ... Опишу на примере прошивки 80r .
|
|
| |
dan | Дата: Воскресенье, 08.06.2008, 23:55:06 | Сообщение # 4 |
Юзер
Группа: Пользователи
Сообщений: 46
Статус: Offline
| Некому патчи делать...мало кто шарит. jk-91, правильно говоришь,надо самим делать. Может у кого-то есть эта статья о которой jk-91, говорил?
|
|
| |
Chik | Дата: Воскресенье, 08.06.2008, 23:59:09 | Сообщение # 5 |
Продвинутый
Группа: Администраторы
Сообщений: 70
Статус: Offline
| Да, на сайте Трояна был единственный мануал по нашим прошивкам, жаль что я его не сохранил, а писать заново мне пока некогда, и чесно говоря лень. Может позже будет. А вообще, это комуто реально надо? Ато если "проста пасматреть", то я его заново писать не буду, т.к. не отношусь к любителям делать дурную работу. А вот если есть заинтересованные люди то пожалуйста, выложу как сделаю.
Сообщение отредактировал Chik - Воскресенье, 08.06.2008, 23:59:34 |
|
| |
jk-91 | Дата: Понедельник, 09.06.2008, 00:28:18 | Сообщение # 6 |
Бывалый
Группа: V.I.P.
Сообщений: 201
Статус: 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
Статус: 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
Статус: 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
Статус: 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
Статус: Offline
| Можешь из листинга IDA какой нибудь функции описание сделать ? Например с прошивки Ганджи , я её скачать так и несмог . Или разобрать кусок кода с адреса который я написал выше , вернее с любого LRV к нему , там их четыри , интересует второй , третий и четвертый . Добавлено (10.06.2008, 17:16:56) --------------------------------------------- На сайте Трояна ты описывал поиск функции по записи в прошивке , вопрос можно найти функцию уже по факту её записи в оперативку , тоисть обратным отсчётом ? Ещё сожалею что у нас нет патча " включить отладку " много можно былобы вытягивать из мидвея . Как по мне так этот патч первоочередной , подозреваю что у Ганджи он или аппарат для вывода логов есть но как я сказал патчеры не спешат делится своими секретами . Добавлено (10.06.2008, 17:19:52) --------------------------------------------- Неверю что они просто тупо в машинном коде ищут функции , иначе Ганджа могбы всё делать и без телефона .
|
|
| |
Chik | Дата: Вторник, 10.06.2008, 17:39:53 | Сообщение # 11 |
Продвинутый
Группа: Администраторы
Сообщений: 70
Статус: Offline
| Без телефона делать можно, но надо ж на чёмто тестить? а когото просить - это неэффективно и долго. Да и сложные патчи особо без тела не поделаешь. Насчёт отладки. Много какие функции логирование просто тупо вырезаны, там всего одна команда jmp r15 осталась. Я туда ничего пихнуть не могу, т.к. надо минимум 6 байт, а доступно только 2:( А искать и править во всех местах откуда она вызывается... ну его нафиг, это ж туча мест. Вообще, функции в оперативку не пишутся, а исполняются на месте(переходы то записаны относительно CG1 ведь), даже если и закинуть любую функцию (кроме уж совсем простой), то 99.9% нифига не выйдет, т.к. при первом же абсолютном переходе выполнение пойдёт в CG1. В оперативке могут быть разве что такие ф-ции как strcpy, memclr и т.п., но пользы от того что ты их отловишь никакого.
|
|
| |
jk-91 | Дата: Среда, 11.06.2008, 08:49:28 | Сообщение # 12 |
Бывалый
Группа: V.I.P.
Сообщений: 201
Статус: 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
Статус: 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
Статус: Offline
| Это знаем , опиши лучше какую нибудь функцию небольшую .
|
|
| |
Chik | Дата: Пятница, 13.06.2008, 08:40:36 | Сообщение # 15 |
Продвинутый
Группа: Администраторы
Сообщений: 70
Статус: Offline
| Проверка Сколько будет 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
Статус: Offline
| Открываем инженерные калькулятор , ставим точку на HEX , набираем числа , проводим расчеты какие нам нужно ... Результат можем перевести в десятиричный или двоичный переставив точку... Буква h после цифр наведеных тобой означает что число перед ней в шестнадцатиричной системе исчисления , остальное непонятно , потому и попросил разобрать пример на какой нибудь функции
|
|
| |
MartinGore | Дата: Пятница, 13.06.2008, 10:36:13 | Сообщение # 17 |
Юзер
Группа: Пользователи
Сообщений: 43
Статус: Offline
| ребят...чё ж вы такие умные,, чуствуешь себя совсем тупым ..
Adrenalin:A - No hay vida sin aventuras.
|
|
| |
Chik | Дата: Пятница, 13.06.2008, 14:52:15 | Сообщение # 18 |
Продвинутый
Группа: Администраторы
Сообщений: 70
Статус: Offline
| В виндозном какуляторе нету некоторых операций. Например lsh есть, а rsh нету. Ответы где?:) Quote (MartinGore) ребят...чё ж вы такие умные,, чуствуешь себя совсем тупым .. cry Что непонятно спрашивай, обьясним по возможности. Quote (jk-91) остальное непонятно Что конкретно? Лучше ты сам выбери какойто кусок который тебе непонятен и разберём его.
|
|
| |
jk-91 | Дата: Пятница, 13.06.2008, 15:46:29 | Сообщение # 19 |
Бывалый
Группа: V.I.P.
Сообщений: 201
Статус: Offline
| Кусок кода из листинг IDA патча " следующий трек " , вторая строчка в патче отвечает за свёрнутый режим .... Патч начинает работать если в жимм отослать сообщение и можно из явы выходить . Вот такой вот глюк на 80 R . Вторую строчку можешь объяснить как она работает ? Может можно сделать другой вариант патча ?
|
|
| |
Chik | Дата: Пятница, 13.06.2008, 16:14:43 | Сообщение # 20 |
Продвинутый
Группа: Администраторы
Сообщений: 70
Статус: 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.
|
|
| |