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

AlexeyK

SGH Open Club
  • Постов

    316
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные AlexeyK

  1. Делал всё по "Хелпу I" by MaxKis: открыл прошивку (правда X700XEEK6), загрузил файл сигнатур (sym) для этой прошивки и начал сканировать меню телефона, и ждал, ждал (как в хелпе написано - ждал чуть меньше двух дней) и, наконец, всё!!! Появился запрос: "Сохранить меню и ..." . Я нажал "Ок", но ничего не появилось, зашёл в папку с прошивкой, там оказался файл с расширением "mnu", но он почему-то пустой! Это, значит, просто прога не поддерживает прошивки от Х700? Она также не находит не МСС команды и список возможных языков!

    обнови программу

  2. Очень сильно помогает символьная информация по прошивке. http://firmware.javer.sgh.ru/ Можно например поискать чего нить вроде SoftKey

    именно так и делал для X140

    В прошивке X100 адреса названий языков на вкладке языковых ресурсов лежат по каким-то несуществующим адресам, но при щелчке по ним программа находит эти адреса. В прошивке X140 при загрузке символьных файлов тоже есть такие адреса для переменных, но при щелчке по ним программа говорит:"для данной переменной нет соответствующего значения".

    в X100 есть блоки в прошивке которые копируются в оперативную память. программа умеет их находить и потом показывает код как он расположен во время работы телефона. Если адрес переменной попадает на эту область, то он выводится, иначе программа пытается найти где этот адрес используется в прошивке как написал Хацкер

  3. DCD 0x18A99177 -в качестве данных получается адрес за областью прошивки?F B И как его отследить если Сам файл прошивки заканчивается на 0x116755С3?

    отслеживается не место в прошивке, а использование в ней адреса. т.е. где то в прошивке есть 7791A918

  4. AlexeyK,  

    Уперся в данные вот такого вида DCD 0x18A99177-если это переменная,то почему пишется как адрес(не могу понять что значит 1,если это все-таки адрес,то он получается в EEPROME?  

    Спасибо

    почему в eeprom? для swift моделей оперативка по адресу 0x18000000 начинается

  5. получаем 3A0 переворачиваем => 0A3

    не так, правильно 03A0 -> A003

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

    LDR Rx, =0x000003A0

    .....

    DCD A0030000

    или

    MOV Rx, #0x3A

    LSL Rx, Rx, 4

     

    В обоих случаях в Rx будет 3A0, первый занимает в памяти 6 байт и его легхко найти поиском адреса, второй 4 байта и его сложно найти. Какой используется зависит от компилятора

    AlexeyK, Вот смотрю на закладку код. Что там анализируется?  

    Как там определяется всё, переход B BL  

    Эти переходы на другие функции PUSH  

    а что такое mov add str sub и все остальное?

    это ассемблерные команда, и чтобы код анализировать неплохо их знать. Можно ользоваться краткими коментариями справа от кода.

    индексу на картинку должно предшествовать какое-то сочетание символов?  

    и как определяется где эта картинка встанет

    ответил чуть выше.

    поиск по индексу характерен для всех таблиц?  

    с языковыми ресурсами также?

    Для таблиц - ДА. Бывает и хуже. есть таблицы адресов таблиц.

  6. Интересно а как это не програмно меню сделано (слабо представляю)?  

    (меню как текст? а картинки как вставляются? с помощью каких конструкции?)

    может не правильно выразился. в sysol есть таблицы данных, называемые МСС инструкции. Они имеют строго определённую структуру. из которой достаточно легхко получить структуру почти всех меню телефона. В agere такой таблицы нет. есть функции в которые рисуют меню и пункты.

    Т.е. и там и там естественно используется код, но в agere данные перемешаны с кодом, а в sysol нет - код отдельно, данные отдельно.

     

    Тогда скажи можно сделать с помошью хоть твоей проги или в ВинХеке  

    патч на убирание полосы внизу экрана или нет?

    Конечно можно :lol: и в binedit и в winhex, кому где проще. Надо немного разобрать код отвечающий за эту полосу и убрать или заменить его. Я вроде начинал смотреть, но по некоторым причинам, от меня не сильно зависящим, забросил это занятие.

    Начинаются с 0, 4 , 8, С (кратно 4 что это значит)

    это таблица, где хнанятся адреса этих функций. По 4 байта на адрес.

    Ищу обращение к таблице - ничего. может я неправильно ищу.

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

    callback функции описывают всю деятельность телефона?

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

     

    Как уже писал CallBack - это функции обратного вызова. т.е. предположим есть какая то универсальная функция, которая выполняет однотипную операцию, но иногда в её работе возникают исключительные оерации требующие доолнительной обработки. Так вот при запуске таких универсальных функций её за одно передаётся адрес функции CallBack и она запускается при необходимости. Примеров такого использования может быть много. Например создание списка в меню - универсальная функция, а передавая её разные callback функции, которые возвращают элементы списка, можно получить разные списки.

  7. Да забыл добавить при записи в формате RAW или ANI программа долго записывает около 10-15 секунд, но это не совсем так, всю работу тормозит прогрессбар, а без него создается впечатление что прога подвисает на 2-3 секунды

    сделай изменение прогресс бара когда изменения будут больше процента или 10

  8. EvgenyM, в agere прошивках нет MCC, но есть список функций CallBack (обратные вызовы) вот они и выводятся на вкладке MCC, заголовок вкладки тоже меняется. Их назначение и принцип использования отличается от MCC.

    Что касается кода функции, то бинедит показывает его дофигазначным числом начиная

    число шестнадцаеричное и является адресом этой функции.

     

    В agere нет MCC. Все меню сделаны кодом. по этому и нет сканера меню

     

    формат языковых ресурсов тоже отличается. Поддержку для Agere пока не депал. Не вижу большой необходимости. Редактировать можно и через ResMan. А для sysol есть поддержка, так как индексы языковых ресурсов используются в MCC. если приведут доводы сделаю и для agere поддержку.

     

    PS. Сейчас занимаюсь редактором баз T9, потом планирую, добавить работу с COM портами. для диагностики работы телефона и управления им.

  9. maxler, ЗАЕДУ - это второе слово, нажми 0 и будет оно. первое ЖАЖДУ :)

    Аляксей, насколько догодываюсь исправлена раскладка и устранены конфликты с другими патчами.

    Ski666, в патче просто заменены русские буквы на соответствующие латинские. по этому нельзя сделать 2 буквы вместо 1. Набирай MAMA по русски и получишь MAMA латиницей. То что просишь можно будет сделать только после расшифровки базы T9 и её перекомпиляции.

    lavol, насколько знаю на siemens есть пункт в меню ТРАНСЛИТЕРАЦИЯ после сооипетствующего патча. набор как обычно, а потом конвертируется.

  10. MaxKis, ты не понял. Было предложено сделать изменение нестроек вообще без телефона.

    А по теме. Патч я модифицировал, потом там ктото (Гость) выложил ссылку по которой ничего нет. а автор мидлета так и не появлялся. Суть модификации была в смещении данных в файле настроек (требование db файлов Java) и изменение расширения с cfg на db.

  11. описание формата be файлов и binedit.ini файла.

    binedit.ini - это описание по умолчанию

    be файлы - корректировака описани под конкретную прошивку

     

    начиная с версии 2006.03.05

    добавлена возможность делать описания для MCC команд с учётом первых 4 параметров, например

    MCC_IF - для всех проверок

    MCC_IF09 - для обработок нажатий клавишь

    Дополнительно появилась команда описания клавишь и соответствующий тег в описании MCC

    Блгодарим за всё это Вадима (Javer)

    ________________.zip

    ________________.zip

  12. Патч заменяет базу ввода T9 для русского языка (2003 г) на более новую (2005 г)

    Добавляется буква ё на 3 кнопке и украинские буквы на соответствующих кнопках.

    Firmware="X600XEDL2"

    Ps. Глюки пока не обнаружил. можно раскладку поменять для любой кнопки, в том числе и количество букв, если кому надо

    Ps2. Если кто будет переносить на другие прошивки, то в патче ничего менять не надо. Необходимо найти только адрес базы T9 и убедиться, что используемая в прошивке больше. а то можно потереть чего нибудь лишнее.

    Add_New_T9.zip

  13. Dеmon, в меню переноса патчей есть пункт - Создавать сигнатуры для всех блоков. Там должна стоять галочка.

     

    Ps. Автоматический перенос нормально работает только в старых версиях программы, гдето до августа прошлого года и только для старых моделей sysol

  14. Lestat_vampire, данные к сожалению тоже бывают разные.

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

    2. это может быть строка или картинка. надо найти такую же или заменяющую её в другой прошивке. найденный адрес и будет эквивалентом.

    3. Это может быть таблица адресов. Самый сложный вариант, надо найти в исходной прошивке как эта таблица используется, найти аналогичное в другой прошивке и при необходмости найти эквиваленты всех адресов в таблице.

     

    И что делать когда находиться блок эквивалента, но в нем переход на другой адрес не совпадает?

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

    а у меня BinEdit даже не запускается никто не подскажет почему ошибку 339 выдаёт

    Возможно установлены не все библиотеки. Что точнее пишет кроме номера ошибки.

  15. Hoffe, map файл содержит описание карты прошивки, код из какого объектного модуля и по какому адресу расположен. Для некоторых прошивок также включает символьную информацию как в sym файлах. Если размер map меньше 3 Мб, то скорее всего в нём НЕТ символов. Но иногда и от туда можно подчерпнуть информацию. Вот например, в X100DXWK3.map есть строчка

    9c8494 400 DATA RO C$$constdata from object file crc32.o

    в прошивке по этому адресу находится таблица чисел для вычисления контрольной суммы CRC32

    или

    98f9bc 2c DATA RO C$$constdata from object file text.ptl

    в прошивке по этому адресу располагается таблица кодов языков и адреса таблиц со ссылками на текстовые ресурсы.

    или

    3d4e24 94 CODE RO C$$code_1 from object file rtk90tsk.o

    в прошивке это функция RtkStartTask

     

    PS. первое число адрес. Второе число - длинна блока данных, дальше интересны только CODE - это фунции, DATA - данные и ZERO - данные заполняемые нулями по умолчанию. Далее RO (Read only) - только чтение, для данных константы, RW (Read - Write) - для данных переменные. Потом часть можно пропустить. Завершает всё имя и расширение. если *.ptl - то это набор данных или функций, если *.o - это единичная функция или данное, а * соответственно его имя. Хоть какието, но всётаки символы.

  16. А не подскажешь в каком именно? А то я с Д500 не сталкивался, вообще не знаю какие патчи есть на него.

    На этом форуме, в ветке патчи для D500. Насколько знаю во всех выложенных патчах есть исходники.

    Тогда с какой стороны к ней подходить если в ней даже МСС нет

    не плохо раскопать кокой нибудь файл с символьной информацией, например tsymb.out. С кодом будет проще разбираться.

    Или кроме ассемблера нужно ещё и СИ изучать

    Тоже желательно, хотябы знание синтаксиса.

    Насколько я понял , все эти строки о которых я спрашивал что-то вроде таблиц ?

    да

    "scen_displaysettings" - это сценарий параметров экрана, значит где-то рядом должна быть ссылка на этот сценариий или на адрес где он расположен. Или я не прав ?

    это строка из таблицы текстовых ресурсов. Адрес начала адресов начал строк scenarios (0x007EA8B8) используется в функции mmi_StkChangeCommand_CB (0x000996FA), kit_VarScenario (0x001BD92C) и ещё куча других. структура таблицы: первые 4 байта - адрес таблицы или строки инициализации, следующие 4 байта - адрес текстовой строки из списка вместе с scen_displaysettings.

    " mmi_Mms_MainMenu_CB" - это что за строка ?

    почему это раньше никто не замечал? - это название функции в прошивке. Причем есть таблица с адресами этих строк и рядом с каждым адресом есть адрес этой функции в прошивке. Это что то набодобие MCC для сисил. В одной из следующих версий постараюсь вытащить эту таблицу на вкладке MCC.

    Адрес начала таблицы 0x007E7CEC. сначала идёт адрес функции в прошивке, потом адрес строки с её названием. Таблица вроде называется callback

    mmi - это вроде multimedia interface

  17. MaxKis, по возможности всё поправил в версиях старше 2006.01.30

    И один Вопрос-  

    Можно ли средствами BinEdit создавать свои МСС?

    специальных средств для MCC нет, но есть Hex редактор в нём можно коды набирать. В последних версиях есть Компилятор. Он также не плохо позволяет писать код MCC. Посмотри патчи FreeMan для D500. Там они с исходниками для компилятора.

    если кто знает объясните , что они значат и как с ними обращаться, какую пользу можно из них извлечь ? И ещё вот такое :  

    choice = %d,  

    count = %d.  

    Unknown Feild length = %d  

    сзPrsInd = %d, ScreenInd = %d

    это часть строки маски используемой для вывода информации, скорее всего для функции sprintf. Надо найти начало строки и где она используется в прошивке. Тамже другим регистрам присваиваются соответствующие значения.

    %d - это для числа в десятичной форме. Всё по стандартам языка Си

    Почему BinEdit не находит меню в X140XEEC6 LittleEndian ?

    binedit ищет формирование меню на основании МСС. В указанной прошивке, насколько знаю, МСС не используеся и всё меню формируется кодом.

  18. Хацкер, возможно это меню формируется вообще без МСС, сразу в коде. В этом случае в коде присваивается в R0 индекс текстового ресурса и вызывается функция lk_GetText (название мог и попутать немного). Суть в том, что можно поискать явное указание данных для нужного индекса. т.е. поискать 0x0000XXXX и чтоб после был вызов указанной выше функции. она по индексу текстового ресурса возвращает адрес строки.

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