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

AlexeyK

SGH Open Club
  • Постов

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

  • Посещение

Весь контент AlexeyK

  1. Хацкер, всё верно SP - это R13, а значение задаётся для разных процессов разное во время инициализации телефона. в конце оперативки. Для больщинства процессов не больше 0x400 байт PC - R15 LR - R14
  2. Lestat_vampire, свяжись с автором. Это вроде просто найден неиспользуемый байт в оперативке, и там сохраняется информация для патча. теоретически можно взять любой не используемый адрес.
  3. Можно ещё к стандартным и дополнительным пунктам список из Java добавить. Это конечно не просто, но за то позволит вешать на кнопки мидлеты.
  4. Прежлагаю в патч ExtendedAPI добавить изменение идентификатора прошивки, например на X10XEDG1E, это сразу избавит от проблем со старыми патчами. Ещё не прохобы добавить несколько часто используемых функций: загрузкасохранение файла, вывод картинки, проигрывание мелодии, с учетом что патчи находятся за границей 0x40000. Естественно необходимо засписать весь интерфейс использования
  5. list, поставь офис или скачай этот файл из сети или другого компа с офисом, после чего зарегистрируй его в системе - regsvr32.exe mscomctl.ocx
  6. EvgeniyZ, как сохраняешь? по ctrl+s или через меню, у меня вроде сохраняет
  7. Clin, возьми из прошивки от X460 украинскую базу T9 и залей её на место немецкой в твоём телефоне. или есть патч на обновление русской базы, там тоже есть украинские буквы
  8. в версиях старше 2006.05.03 исправлено
  9. Free-man, в принципе можно, но компиляция без прошивки вызовет определённые проблемы. Можно так пока .macro .mcc_return .align 2 .mcc MCC_RETURN .endm и потом использовать .mcc_return
  10. "жук" отловлен и исправлен на add r1 sp получил ADD R1, SP R1 = R1 + SP причём для R8-R12 и раньше нормально было.
  11. странно, посмотрю догадываюсь в чём проблема, пока можно убрать путь. посмотрю
  12. в новой версии переделан анализ строк. желательно писать завершающую кавычку и для строк в прошивке особенно после .byte, для .string не обязательно для записи - , " - ", перевод строки - n, табуляция - t и некоторые другие число, xчисло PS. В настройках можно отключить новый анализ.
  13. EvgeniyZ, сначала надо просканировать меню. Это работает на прошивках sysol, немного на swift и не работает на agere
  14. BSWhite, можно ещё воспользоваться компилятором. Например, 00А91394: .byte "Меню" получишь то что хошешь
  15. Если там ARM совместимый процесор то подойдёт. МСС - это только для Samsung Sysol или Swift. Если тип автоматически не определился то надо установить или убрать галку в зависимости от кода. PC. авто определение могу сделать только если у меня будет хотябы одна прошивка.
  16. Mako, есть баг, в декомпиляторе. Компилируется вроде верно. Судя по содержимому рисунка, ты пытаешься декомпилировать какойто ресурс данных, об этом говорят надписи - "возможно это ARM код" и некоторые другие ньюансы. но баг декомпилятора налицо, но не совсем "баг" Дело в том, что нормальная команда BLX шифруется так для Little ??F???E? (BL - ??F???F?). То что ты привёл вообще не является командой процессора. В другой теме спрашивал как это расшифровывается, объясню здесь. bcFafgEd - F и E обозначают команду BLX, если бы было F и F, то была бы - BL остальные формируют половину смещения 0xabcdef старший бит знаковый. реальное смещение получается PC+4+((0xabcdef << 1) and 0xFFFFFF) для a<8 или PC+4+(0xFFabcdef << 1) для a>=8 Смещение вычисляется в обратном порядке. Только для BLX дополнительно перед высислением смещения текущий адрес PC и адрес назначания округляются до кратных 4. EvgeniyZ всё правильно. команды BL и BLX могут адресовать только в диапазоне плюс/минус 0x400000 байт, переход указанный тобой значительно больше, компилятор пытается компенсировать его промежуточным переходом. ___rt_udiv=0x10DBD754 это адрес самой функции, поищи адрес для этой __rt_udiv PS. Администраторы, почему у меня не работает быстрый ответ на форуме или это не только у меня? просто не удобно без него отвечать в связи с чем стараюсь не пропускать только серьёзные вопросы.
  17. Хацкер я разбирал только основную базу (LDB) пользовательские базы (UDB) хранятся в flesh, размер вроде 1 кб для X600. с ними работает другой набор функций. Их не смотрел. Раньше думал что всё сохраняется в ANSII кодировке, по этому потом нельзя восстановить русский текст, но сейчас думаю по другому. Похоже там привязка к одному языку, так как пользовательская база одна. По умолчанию 0109 (English)
  18. регистру R0 присваивается адрес строки "MID_ANI dx, dy : %u, %u.", т.е. 0x00035114 собственно сама строка в прошивке
  19. а в самих символах мсс_ присутствуют? это простой текстовый файл, можно поиском посмотреть. Возможно файл получен одной из первых версий SymCreater by Javer, там не было поиска эквивалентов для МСС.
  20. .equ off_1063782C 0x1063782C BLX off_1063782C или BLX 0x1063782C для установки адреса компиляции .org 0xXXXXXXXX перед кодом[/code]
  21. Проблема сохранилась: Открываю прошивку (X700XEEK6), загружаю файл сигнатур (sym), открываю патч (Убрать нарастающий звонок) в "Редакторе патчей", перехожу по адресу патча (10122ED0), открываю вкладку МСС и прога виснет! (Тоже самое происходит, если даже не загружать файл сигнатур и не открывать патч, а просто перейти по этому адресу (10122ED0) и перейти на вкладку МСС.) у меня нет этой прошивки, найди такойже адрес для X700XEEJ5. Пока не удаётся повторить глюк
  22. Посмотри MCC_EDIT_S, а там обработку события нажатий кнопок.
  23. EvgeniyZ, до какой версии обновил? последня на сегодня 2006.03.25 по ссылке в подписе. У меня Cel 950 и 512 Mb. Остальное вроде не важно. Описанных глюков не обнаружил. Приведи пример с адресами желательно для EJ5 или FA1
  24. вот что удалось накопать по прошивке от X140 по базам T9 за работу с базой отвечает непосредственно 6 функции SetDataOffset ReadByte, ReadWord и ReadNibble - последовательное чтение и GetByte, GetLong - чтение по адресу Единицей информации в базе является полбайта и SetDataOffset адресует к полу байту. для чтения 0x20 байта выполняется следующее r0= указатель r1=0x40 SetDataOffset r0= указатель ReadByte получили в R0 значение 0x20 байта. примерное описание функций void SetDataOffset(word handle, word index) word Read....(word handle) после чтения из базы указатель установленный SetDataOffset смещяется на размер данных. т.е. если продолжить r0=указатель ReadWord в R0 будут 0x21 и 0x22 байты, причём 21 будет младшим. За чтение заголовка базы отвечает функция InitializeLDB (одинаковая в sysol, shift, agere, в siemens наверное тоже) описание таблиц по возрастанию адресов 1. описание кнопок для T9 2. описание кнопок для ABC 3. Указатели (простые) как правило 2 числа. их количество определяется байтом 0x6B Указатель равен смещению от начала таблицы данных T9 (последня) 4. Указатели (сложные) состоят из коэффициента (2 байта) и смещения. Полное смещнние вычисляется как роизведение коэффициента на index из базы плюс смещение. 5. таблица ValidKeys - по 3 полубайта на индекс 6. таблица корректировки символов по 2 бита на индекс. 7. таблица индексов Instructions по 2 байта на индекс 8. коды символов пунктуации (по ним определяется завершение слов) по 2 байта на символ. 9. непосредственно база данных.единицей записи явлется полубайт (4 бита). имеет примерно такую структуру: Key - битовая маска кнопок (0 бит- цифра 1, 1 бит - 2 и т.д.) Instruction_key1-1 - номер буквы на кнопке для цифры бит которой включён Instruction_key1-2 - номер другой возможной буквы для этой цифры .... Inctruction_key1-N - последний вариант для этой кнопки Pointers - адрес следующей наборной комбинации для этой кнопки Instruction_key2-1 - номер буквы на кнопке для цифры бит которой включён (следующая возможная кнопка) Instruction_key2-2 - номер другой возможной буквы для этой цифры .... Inctruction_key2-N - последний вариант для этой кнопки Pointers - адрес следующей наборной комбинации для этой кнопки ... и так для всех возможных кнопок. Для хранения чисел используется оригинальный подход в заголовке есть так называемые базы (числа) если индекс меньше первой базы, то он записывается как есть, если больше, то величина превышения расматривается как десятки, к которым потом прибавляется следуюжий полубайт и база. Тоже самое и для превышения 2 базы, но там уже разница будет сотнями. Для разных данных свой набор баз. Индексы могут быть определены непосредственно в самой базе, но сделано так, что больщинство из них берётся из таблиц. Последняя инструкция для каждой кнопки отдичается старшим битом установленным в 1. т.е. максимальная первая база не может быть больше 7 для inctruction. во вложении описание структуры заголовка баз T9 и немного структура данных по T9 применительно к X140 У каждой базы есть 2 контрольных числа. 1. OEM_ID - сдесь закладывается производитель и язык базы 2. validateLDB - контрольная сумма файла. и то и другое легхко вычисляется. PS. Это в краце всё, если что не понятно спрашивайте. T9_fieldinfo_X140.zip T9_fieldinfo_X140.zip
×
×
  • Создать...