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

AlexeyK

SGH Open Club
  • Постов

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

  • Посещение

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

  1. вроде поправил, но надо проверить
  2. попробуй поискать в версии, в которой для преобразования UTF8-ANSII не использовалось API, похоже в конце строки сейчас добавляется куча нулей. по этому и не ищет. Поправлю в выходные. За одно и сохранение Cancel_ поправлю Может тип прошивки не правильно определился? вместо little endian как big
  3. тут очень интересный способ упаковки UTF8 буквы кирилицы заменены похожими буквами латиницы. Попробуй поискать Koнтakты или Koнтaкты
  4. Подмену проверю, раньше вроде работало Если программа вылетела, то перед запуском можно куда нибудь скопировать временные файлы компилятора, там вроде должен код сохранятся.
  5. Изменяемый бит в данном коде отражает будут ли по данным операции изменяться биты статусного регистра. К арифметическим командам добавляется <S> (ADD -> ADDS) В данном случае для arm v4 этот бит не учитывается, для arm v5 вроде уже требуется его обязательное присутствие. PS. В ARM v5 появилось DSP расширение команд, как раз все они определяются этим битом. В данном случае это команда SMLAW0CS R11, R11, R0, R1 По возможности добавлю дизассемблирование и компиляцию команд DSP расширения. поправлю. Возможно для этой прошивки не правильно определяется идентификатор прошивки. Попробуй сначала загрузить прошивку, потом патч. Если не поможет дважды кликни по полю "Прошивка" в параметрах патча.
  6. Где именно не подменяет? Вроде раньше подменял. Или это в редакторе патчей? Если возможно необходим пример патча. Это планировалось, возможно скоро будет, только тут есть своя специфика, код должен компилироваться как плагин. Ошибку проверю, кажется знаю в чём дело. В любом случае после переподключении телефона необходимо переинициализировать COM соединение, так как оно потеряно. В этом коде нет ошибок, это вполне допустимый синтаксис. В данном случае метка рассматривается как адрес расположения данных. LDR R2, metka ... .align 2 metka: .word 0xDATA эквивалентно LDR R2, =0xDATA ... metka: .data при этом metka+1 в LDR откругляется до числа кратного 4 Так можно указывать загрузку данных уже существующих в прошивке, без повторного их размещения. Ошибка будет только если адрес metka+1 будет слишком далеко от адреса команды LDR. При анализе строк кода все переменные сначала проверяются на имена регистров. Где то уже давно писал, что надо избегать в названиях меток использовать префиксы похожие на имена регистров. Постараюсь профиксить этот глюк.
  7. только наверное так org 0x21A29B80 ldr r1, 0x21A29BF4 можно и так org 0x21A29B80 ldr r1, =0x20D9261A но в настройках компилятора надо включить опцию "Поиск данных в прошивке"
  8. В последних версиях была доработка по импорту/экспорту строковых ресурсов для прошивок типа X700 и вроде всё работало. Может какие настройки не учтены или не правильно процесс импортирования проведён. В программе сипользуется древняя функция переконвертации UTF8<->Ansi (Всё лень на API переделать). Можно подгрузить свою перекодировочную таблицу через lng файл с учётом всех редких букв.
  9. MOV R1, O_RDWR + O_CREAT должно помоч Компилятор не обрабатывает логические операции. Постараюсь добавить в следующих версиях.
  10. не совсем правильно вроде. так лучше PUSH {R0-R2} SUB SP, 0x20 MOV R2, #0x1 STR R2, [sP, #0x4] STR R2, [sP, #0x8] STR R2, [sP, #0xC] STR R2, [sP] ... ... ADD R0, SP, 0xD4+0x2C BL Draw_Box ADD SP, 0x20 POP {R0-R2}
  11. Вот 2 варианта setup: не со всеми библиотеками(2.5 Мб) со всеми используемыми библиотеками(3.6 Мб) может поможет кому.
  12. Можно сделать setup для программы, но размер увеличится до примерно 4 Мб (если цеплять все необходимые библиотеки которые у большинства и так установлены.)
  13. на вкладке поиск есть кнопка f с биноклем и левее от неё есть кнопка направления поиска. По ней ищется начало функций по push и stmia
  14. или тут можно посмотреть http://OldPh.one/index.php?showtopic=33003#5 в сообщении Artyomcool Низкоуровневое .arm ;Функция, защищающая от кэширования. ;R0=Address, R1=Size unCache: STMFD SP!,{R0,R1,LR};Сохраняем регистры ... ну и так далее. используется ARM код.
  15. Панька, в настнойках отключи проверку наличия CGSN патча.
  16. В чём критерий профессиональности? Может чего доработать надо? Компилятор в binedit написан с учётом пожелений пользователей и компилирует ARM код GNU ASM и частично Keil. Плюс несколько доработок под Samsung. Вот описание http://binedit.sgh.ru/readme3.php
  17. Можно сказать особенность. Раньше каждый раз спрашивала, попросили чтобы не спрашивала После первого сохранения имя файла сохраняется в asp и потом используется.
  18. В мониторе байты переворачивались, при запуске нет. Исправил. Кстати при запуске, байты тоже не правильно попадали в регистры. Патч писался для X100-X600, там BigEndian и такой проблемы не было и очень странно что до сих пор этого никто не заметил.
  19. так может быть и индекс ресурса "Стоп" не 0x58 ? Как полностью прошивка называется?
  20. Попробуй поискать через под меню у кнопки А "Относительные вызовы (команда BL) с указанием значения регистра R0" для lk_get_sofk. только надо учитывать, что эта функция может вызываться и через редиректы. также значение для "Стоп" может браться относительно из какой нибудь таблицы. PS. Может, я не правильно понял, но Дамир, вроде привёл адрес, где используется "Стоп" для прошивки х700..с3
  21. В качестве идентивикатора можно ввести любую строчку из прошивки. В данном случае рекомендую дамп перед загрузкой в программу переименовать в имя прошивки, потом можно будет вернуть старое имя.
  22. vvyura, в меню Language, есть подпункт Save language. По нему будет сохранён lng файл. он по структуре соответствует xml файлу. В этом файле есть такая запись <utf8_tables code="АБВДДЕЖЗР?ЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёїі°" encode="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёїі°" /> в code - UTF8 последовательности, в encode - соответствующие ANSI коды. Думаю добавить или исправить будет не сложно. В lng файле в принципе можно всё удалить, оставив только <?xml version="1.0" encoding="Windows-1251"?> <Translation Version="1" Name="" Lang="" > <utf8_tables code="АБВДДЕЖЗР?ЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёїі°" encode="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёїі°" /> </Translation> Этот файл загрузить через меню Load language, после этого проблема с кодировкой должна пропасть.
  23. попробуй искать наоборот. сначала 20????00????5800, а потом 20????00??005800. Получится ещё интереснее Найденные адреса используются в качестве индексов, вот и получается что они повторно не добавляются. так можно отсеивать заранее не верные варианты поиска. Сначала поискать не верные варианты, а потом более общей маской всё остальное.
×
×
  • Создать...