Перейти к содержанию
Old Phone Forum
  • Вход

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Задаем вопросы по теме "Портирование патчей, для начинающих"


Рекомендуемые сообщения

В прошивке можно встретить много мест с кусками бесполезного кода.

Ну не совсем он таки бесполезный, обычно такая конструкция используется для того, чтобы выровнять расположение данные на смещение кратное 4, что собственно в том же МП и сделано.

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 947
  • Создана
  • Последний ответ

Топ авторов темы

Как это, а почему я нашел :59:

 

Вот ячейка свободного mcc_task 19 он же mcc_task 0x13 : 0x1148C3B4 для твоей фирмваре :tease:

Рассказываю почему ты её нашёл, а я нет.

Ты нашёл в чистой прошивке, без патчей. А я искал в патченной прошивке и по этому не нашёл, т.к. видимо в каком-то из патчей SergeyL уже использовал эту ячейку, и не только эту. Вот поэтому и спрашивал насчёт:

mcc_task 21 ссылается на адрес 0D02EA0C

 

 

Тебе не знакома команда? Это загрузка в регистр адреса.

Я имел в виду адрес, который загружается в регистр. После конца кода МП идёт ещё свободная область, а потом и адрес, к. грузится в регистр. Так вот это специально столько места оставлено м/у концом кода МП и этим адресом?

Да это вообще не играет никакой роли

Ну не совсем он таки бесполезный, обычно такая конструкция используется для того, чтобы выровнять расположение данные на смещение кратное 4, что собственно в том же МП и сделано.

Так играет или нет?

 

или "длинные" переходы, о них ты спрашивал раньше.

Помню :71: .

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

т.к. видимо в каком-то из патчей SergeyL уже использовал эту ячейку, и не только эту.

Ну так перепиши потом этот патч под МП, а свободную теперь ты вряд ли найдешь.

 

Так вот это специально столько места оставлено м/у концом кода МП и этим адресом?

Ну конечно, вдруг я захочу что нибудь дописать :59: , а таблицу уже используют патчи, значит ее переносить нельзя, вот и зарезервировано место на всякий случай. :tease:

 

Так играет или нет?

Компилятор все делает сам, так что не думай, если не будет кратности, он выровняет.

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

F3n1X, ну например команды .align могут такой код сгенерить, когда нужно выровнять блок кода. Но если ты там что-нить своё напишешь - вреда не будет, главное больше ничего не затри :tease:

Бывших SGH`овцев не бывает.

Глупый модератор применяет наказания для самоутверждения.

Умный - для поддержания порядка. Мудрый - не применяет вообще!

 

Убийцу можно понять, но нельзя простить. Предателя можно простить, но нельзя понять. Бойтесь равнодушных - именно с их молчаливого согласия совершаются все предательства и убийства на земле.

Ссылка на комментарий
Поделиться на другие сайты

Нашёл я всё-таки эти патчи, использующие иф, таск и конфиг.

Ну так перепиши потом этот патч под МП, а свободную теперь ты вряд ли найдешь.

Знать бы ещё как переписать. Точне что добавить. По сути из патча будет убираться строка, использующая таск-иф-конфиг и добавляться новая для МП. А вот какой код нужно будет вставить, пока не очень догоняю.

 

ну например команды .align могут такой код сгенерить, когда нужно выровнять блок кода

Это знаю.

 

Всё, мне уже сниться начинает этот код, из BinEdit вкладка "Код" :)

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

dimastyj,

У меня вопрос лично к тебе. Не подскажешь адресок dir1_SpdSendReadResp для твоей прошивки?

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

F3n1X,

dir1_SpdSendReadResp

для E730XEEH1 0x11670AD8.Могу и на X700 подсказать,но ты лично у Димона спросил.. :)

:roll:

/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

F3n1X,

dir1_SpdSendReadResp

для E730XEEH1 0x11670AD8.Могу и на X700 подсказать,но ты лично у Димона спросил..

Пасибки :128:

Спрашивал потому, что в D500BVDK8 даже не нашёл. Больше пол дела уже сделал. Только вот забыл спросить ещё вот этот адресок dir1_SmpbSendReadResp :)

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

что в D500BVDK8 даже не нашёл

Потому.что искал непосредственно саму функцию,а в ней,как ты теперь уже смог,наверное,заметить код существенно отличается.Копай глубже,откуда эта функция вызывается.А вызывается она из dir0_2rp(MCC_BS 26) самым первым case-переходом :)

А вот если перейти там же(dir0_2rp) по CASE 0x000F,то попадем как раз на dir1_SmpbSendReadResp-адрес 0x10DA8224 ;-)

Больше пол дела уже сделал

И какое же дело ?Еси не секрет... :128:
/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

И какое же дело ?Еси не секрет...

Со временем узнаете :Laie_67:.

 

А для моей то проши зачем?

Да я хотел найти через вашу прошивку, ну раз мне подсказали, то не надо. :59:

 

Так задам вопрос снова всё по тому же МП:

dimastyj,

Не скажешь какая функция/переменная находится у тебя по этому адресу 0х1055CCFC ?

И ещё

_off_100F7910, _off_112E4338, _off_100F7AF8, _off_1175BD0C

Можешь написать какому из этих адресов у тебя соответствует какая функция?

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

F3n1X, вот тебе для E730XEEH1

10DEC344-mmitfs4_CheckFileExist

 

109A9D44-mmitfs4_DeleteFile

10DEC588-mmitfs4_CreateFile

109A9F94-mmitfs4_GetFileSize

109AAB3C-mmitfs4_ReadFile

В E730 часть функций реализована иначе,чем в X700.Да и оригинальные названия тоже отличны

Выложил вроде бы в том же порядке.В асю стучи

Изменено пользователем Mako
/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

F3n1X, вот тебе для E730XEEH1

10DEC344-mmitfs4_CheckFileExist

109A9D44-mmitfs4_DeleteFile

10DEC588-mmitfs4_CreateFile

109AAB3C-mmitfs4_ReadFile

В E730 часть функций реализована иначе,чем в X700.Да и оригинальные названия тоже отличны

Конечно спасибо тебе, но я знаю уже по каким адресам находятся эти функции у меня. Я имел в виду в какой последовательности они идут в МП, вот поэтому я их и написал, чтобы dimastyj мне и дал названия к соотв. адресам постом выше.

 

109A9F94-mmitfs4_GetFileSize

Я так понимаю, что в Х700 по адресу 0х1055CCFC находится mmitfs4_GetFileSize?

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

В E730 часть функций реализована иначе,чем в X700.Да и оригинальные названия тоже отличны

Что реализация функций различна - соглашусь, а вот оригинальные названия, на то они и оригиналные, что неизменны для все прошивок.

 

Я так понимаю, что в Х700 по адресу 0х1055CCFC находится mmitfs4_GetFileSize?

Нет :(

 

Для x700xeek6 :

 

mmitfs4_CheckFileExist 0x1055CCFC

mmitfs4_CreateFile 0x112E4338

mmitfs4_DeleteFile 0x100F7910

mmitfs4_ReadFile 0x1175BD0C

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

Для x700xeek6 :

 

mmitfs4_CheckFileExist 0x1055CCFC

mmitfs4_CreateFile 0x112E4338

mmitfs4_DeleteFile 0x100F7910

mmitfs4_ReadFile 0x1175BD0C

Спасибо :lol: Ещё не скажешь какая функция лежит здесь 0х100F7AF8, не mmitfs4_GetFileSize случаем?

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

Значит получилось у меня следующее:

1) Портировал МП и переделал под него "Запись разговоров 3" - протестил, и о чудо - работает :shock: (просто указал ссылки на обработчики в МП вместо тех что были, больше ничего не менял. Патч использует таск и иф).

2) Пытался переделать патч "SoundStorm1a", сделал также как и в случае с записью разговоров (поменял только обработчики) - тел. зависает при попытки выставить на смс мелодию mmf (Патч использует конфиг).

 

Внимание вопрос:

1) Если работает патч (1), значит свободная область оперативки указана верно? Задам по-другому этот же вопрос: используют ли таблицы таска и ифа в МП свободную область оперативки? И используют ли эти же таблицы обращение к файлу settings.cfg или это делает только таблица конфига?

2) Если не работает патч (2), значит я непереписал функции, использующиеся в нём под МП?

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

1) Если работает патч (1), значит свободная область оперативки указана верно? Задам по-другому этот же вопрос: используют ли таблицы таска и ифа в МП свободную область оперативки? И используют ли эти же таблицы обращение к файлу settings.cfg или это делает только таблица конфига?

Что то запутался ты. Свободная область оперативки необходима только для для функций LoadCFG и SaveCFG , так что 1 твой патч ее вообще не использует.

 

2) Если не работает патч (2), значит я непереписал функции, использующиеся в нём под МП?

Нет, это значит что простой заменой ссылок не обойдешься, в твоем первом случае просто совпадение привело к работоспособности патча.

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

Нет, это значит что простой заменой ссылок не обойдешься, в твоем первом случае просто совпадение привело к работоспособности патча.

Патч продолжал работать из-за того, что были использованы другие ссылки на таблицы (если их даже убрать из патча, то он всё равно будет работать).

 

Есть ли разница между МП от Д900/Д600 и твоим?

Как мне написать это:

BLX   _off_111E2BDC

Делал через конструкцию, которую ты мне давал, но она вместо blx пишет bl?

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

Подскажите как переделать патч от Д500 на Х700? И надо ли вобще, у них системы вроде одинаковые

Переделывать надо. А как - читай эту тему, и вообще ветку "Программирование и реверсинг".

Сделал дело, вымой тело...

Нужна помощь? Ждем на irc-канале #sgh

Ссылка на комментарий
Поделиться на другие сайты

Есть ли разница между МП от Д900/Д600 и твоим?

Как мне написать это:

BLX   _off_111E2BDC

Делал через конструкцию, которую ты мне давал, но она вместо blx пишет bl?

Ты какую версию переносил? Вторую?

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

Ладно, тогда спрошу здесь...

 

Переноси лучше первую!

Значит перенёс я эту версию МП. При установки патча BlackiList, у меня появились четыре свободные ячейки тасков и ифов, прописываю в них указатели на свои новые таблицы (значит я взял 21 таск и 21 иф). Так же перенёс автозуб, а вот тут то и появились проблемы... При включении ручками зуба тело зависает, хотя в коде накатал переход при вкл. зуба на:

10C84FB0  17 21 0000 0100 0000 00000000 0000 0000  Выполнить 0x21 x2=0 x3=1 x4=0 x5=0 x6=0
10C84FC0  1C 00 0000 0000 0000 642D6910 0000 0000  Переход на адрес 0x10692D64

Вот тут и вопрос, правильно ли указал 21 таск при включении зуба?

И что означают вот эти параметры у него x2=0 x3=1 x4=0 x5=0 x6=0? Тогадываюсь, что x2=0 это case переход, но в патче зуба я его там и прописал, но тело всё равно виснет... Так что жду вашей помощи :ad:

Пожертвования отправлять сюда R256859050930

Ссылка на комментарий
Поделиться на другие сайты

10C84FB0  17 21 0000 0100 0000 00000000 0000 0000  Выполнить 0x21 x2=0 x3=1 x4=0 x5=0 x6=0
10C84FC0  1C 00 0000 0000 0000 642D6910 0000 0000  Переход на адрес 0x10692D64

Вот тут и вопрос, правильно ли указал 21 таск при включении зуба?

И что означают вот эти параметры у него x2=0 x3=1 x4=0 x5=0 x6=0? Тогадываюсь, что x2=0 это case переход, но в патче зуба я его там и прописал, но тело всё равно виснет... Так что жду вашей помощи :ad:

Второй параметр указывает на ячейку твоей новой таблицы обработчика! У тебя в этом примере получается 0 ячейка, т.е. нужно прописать указатель на нулевую ячейку в таблице.

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



×
×
  • Создать...