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

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

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

BinEdit и все о ней


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

Так бы сразу и сказал...

Глюк в BinEdite, он спотыкается на MCC_BS. И это не единственная проблема.

А почему на твоём скриншоте этой проблемы нет ? Судя по адресам - ведь та же самая прошивка…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

А почему на твоём скриншоте этой проблемы нет ? Судя по адресам - ведь та же самая прошивка…

Алексей давал мне исхи, я это исправил.

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

и ешё подскажите как сохранить изменения в прошивки в виде патча

я меняю код, нажимаю AMR компилятор, после компиляции открываю файл и вижу что он пустой (всмысле нет инфы что менять в прошивке)

я на 99 процентов уверен что я делою не так, но уже третий час пытаюсь разобраться и без толку

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

Алексей давал мне исхи, я это исправил.

А исправленую версию с согласия Алексея можешь выложить??? Для брадкомов бы тоже пригодилось :67:

Сложность программы растет до тех пор, пока не превысит способности программиста!!!
Ссылка на комментарий
Поделиться на другие сайты

А исправленую версию с согласия Алексея можешь выложить??? Для брадкомов бы тоже пригодилось

С согласия могу.

А что у брадкомов не так, может я чего не заметил? МСС там вроде как нет...

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

С согласия могу.

А что у брадкомов не так, может я чего не заметил? МСС там вроде как нет...

Проблема Юра не в мсс, а в адресации. Она же тоже начинается с 0х80000000. И поэтому при поиске/компиляции/и прочем бинедит просто вылетает с ошибкой. А при компиляции приходиться адреса почти все вручную переписывать.

Т.е. сначала компилируешь без основания 0х800000000, потом применяешь патч.... добавляешь к каждому адресу снова базу, потом уже все копируешь и компилируешь уже как .hex :67:

Сложность программы растет до тех пор, пока не превысит способности программиста!!!
Ссылка на комментарий
Поделиться на другие сайты

И поэтому при поиске/компиляции/и прочем бинедит просто вылетает с ошибкой.

Вроде не вылетал...

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

 

при компиляции приходиться адреса почти все вручную переписывать.

Можно компилировать сразу с нормальной базой, только следить, чтобы LDR/ADR были на адресе, кратном 4.

Я так патч в полсотни строк делал :67:

  • Like 1
5073IA3.png
Ссылка на комментарий
Поделиться на другие сайты

  • 5 недель спустя...

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

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

 

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

 

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

 

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

 

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

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

 

Вот кусок ager-овской прошивки. Можно спросить, что там примерно зашито?

http://OldPh.one/index.php?showtopic=50748&Old=ifolder_ru_/25929910

Фанат микропроцессоров (CPU FAN)

***

Если не вставляет Gauss, попробуйте Tesla! (к рекламе ламп).

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

  • 4 недели спустя...
С согласия могу.
Как-нибудь этот вопрос решить возможно ? А то я смотрю у всех новых Swift адреса 0x90140000 и BinEdit глючит…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

Выкладываю BinEdit с моими правками.

Многое делалось "методом научного тыка" в отладчике и только на прошивке C3322, на других может не работать/работать неправильно.

 

Архив перезалил.

Компилятор с исправлениями от AlexeyK, более полными + скорость компиляции выше.

BinEdit.rar

Изменено пользователем vvyura
  • Like 16
5073IA3.png
Ссылка на комментарий
Поделиться на другие сайты

Обнаружил что неработает компиляция для многих простейших патчей.

Возвращаю старый binedit.exe - нормально, ставлю правленный - при компиляции ошибки…

«Метка находится за пределами допустимого» про все ADR-ссылки

Что для B5722XXJK3, что для C3510XXJL1 одинаковая проблема.

Но вот старый BE этот же проект компилирует без проблем.

 

Например вот некомпилируемый исходник - Counter_files_sending_Bluetooth_v1_C3510XXJI1_asm.rar

Однако 2 десятка других патчей уже скомпилировал - ошибок не было, вот только на этом…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

f2065,

Замечал у себя такое, если вместо

adr r0, =metka

написать

adr r0, metka

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

 

В предыдущем сообщении обновил BinEdit - уже без этой ошибки.

  • Like 4
5073IA3.png
Ссылка на комментарий
Поделиться на другие сайты

А почему у меня некоторые числа и слова в проге маркированы черным маркером? Например, во вкладке код или в арм компиляторе. Приходится, чтоб увидеть под маркером текст, его выделять

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

А почему у меня некоторые числа и слова в проге маркированы черным маркером? Например, во вкладке код или в арм компиляторе. Приходится, чтоб увидеть под маркером текст, его выделять

Попробуй скачать из первого поста архив binedit_add и в папку с бинедитом распаковать.

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

Спасибо. Всё норм заработало. А аз обновлением проги на этом форуме следить, а то на официальном сайте только за 2008 год прога выложена?

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

BinEdit (версия от 2010 - тоже) неправильно компилирует BEQ-переход если в этой зоне есть автоматическая оптимизация…

 

Например если код такой вот получался (тут всё правильно):

20A72C50: 0228 CMP R0, #0x2

20A72C52: 7FD0 BEQ loc_20A72D54

 

и ниже этого BEQ написать типа MOV R1, 0x600 - BinEdit сделает оптимизацию (команды то такой у процессора нет), а вышестоящий BEQ скомпилирует в виде кода 80D0 - получается отрицательное значение и переход совсем в другую сторону… Но BinEdit никакой ошибки не указывает! Пишет только про факт оптимизации.

 

20A72C50: 0228 CMP R0, #0x2

20A72C52: 80D0 BEQ loc_20A72B56

 

Исходник на котором этот баг проявляется (ключевое значение - max_pages): BinEditBug20111110.rar

 

Пытался просто повторить эту ситуацию простым кодом из 128 NOP - не, там при переходе границы из-за оптимизации - BinEdit ругается что B-переход не достаёт… Так что нужна совокупность каких-то ещё условий где этот баг случается незаметно.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

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

Давно такой вопрос возник: можно ли сделать так, чтобы БинЕдит при сканировании любой прошивки всегда выдавал запрос на ввод имени идентификатора? А то при сканировании прошивки с нормальным именем идентификатор по-умолчанию - название модели телефона... И получается, что при открытии разных прошивок для одной и той же модели используется один и тот же be-файл, который далеко не ко всем прошивкам подходит...

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

Это имхо как раз у прошивок с ненормальными ID.

Обычно проблемы нет - он сам находит типа Bin ID="B5722XXJK3" adr="0x20031DDC"

Есть проблема с тем что он местами учитывает имя файла, а не ID. И в итоге для разных патченных прошивок у которых другое имя файла - получаются проблемы. Приходится BE-файл дублировать с именем прошивки. BE-файлы ищутся не по ID, а по именам файлов.

  • Like 1

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

Да вот лучше бы искались по ID, а не по имени :28: Возможно сначала выразился не совсем правильно, если на конкретном примере - после сканирования прошивки S5620XEJB3 создается be-файл по имени S5620.be. И в дальнейшем, если открывать прошивки S5620XEJE1, S5620MFJF1 и т.п. используется тот же самый be-файл, который к ним не подходит, т.к. ремап разный во всех прошивках.

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

Надо BE-файл переименовать по имени прошивки, ID без разницы… Видимо с бродкомовскими прошивками такая проблема, с свифт имена файла получаются полные… Разве что с новыми прошивками где файл прошивки назван просто ER_FLASH_REGION2_CB - у BE тоже вот проблемы если попеременно копать несколько таких прошивок - имя BE-файла у них одно…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

  • 1 месяц спустя...

BinEdit (ни оригинал, ни версия от vvyura) отказываются импортировать новые DEF-файлы… В частности от C3300iXXKD1_XEKE1.

 

Анализ файлов показал что у новых файлов есть раздел:

/* Ramdump  
*/

 

Просто удаляю его - и файл вроде бы нормально импортируется. Хотя учитывая этот факт - можно подозревать и DEF ужа давно не импортируется корректно, может там ещё есть какие-то строчки из-за которых что-то теряется (что изначально должно было импортироваться).

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

Надо BE-файл переименовать по имени прошивки, ID без разницы…

Он тогда не присваивает BE к прошивке.... только если моделью телефона назвать открывается правильно

Патчи: S5233TXEJF1 | S5230MMGJK2 | S3650XEIJ2 | S5560XEJD1

Android 4.3 DeODEX Root

Sony Xperia Z1

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

  • 1 месяц спустя...

Не могу добиться, чтобы в sym были записи __rt_memclr и __rt_memclr_w.

Вроде сохраняю как положено, обе записи показывает на вкладке Символы. Но после перезапуска BinEdit остается только та, которую сохранил последней.

 

P.S. Всё, разобрался. Вспомнил что кто-то (вроде FRAER) писал о том BinEdit не видит первую строку sym'а. А эта запись как раз первой и оказывается.

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

Подскажите, пожалуйста, чем забить синее пространство (на скрине), чтобы получить переход на адрес 000003С0. Может, какой калькулятор есть? Я уже весь мозг сломал.

235670-16-02-12)1329365651_thumb.jpg

С троллями и даунами в полемику не вступаю.

Качественное конвертирование видео для Monte S5620

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

Подскажите, пожалуйста, чем забить синее пространство (на скрине), чтобы получить переход на адрес 000003С0. Может, какой калькулятор есть? Я уже весь мозг сломал.

Судя по некоторым признакам - это прошивка от S5620... Ведь можно же и описание прошивки вставить, чтоб адресация правильной была, и сим-файл сделать, чтоб все это осмысленнее выглядело. Ну а по вопросу - компилятор для этого есть, но тут переход слишком длинный получается, выделенных 4-х байт на него не хватит.. А какой переход? Если с возвратом - попробуй редирект на него поискать или сам сделать, если без - то обычная врезка - 8 байт.

 

P.S. А судя по адресу перехода, случайно не MasterPatch 2.0 портируется? Тогда адрес изменения неверно найден.

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

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

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

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

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

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

Войти

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

Войти



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