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

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

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

BinEdit и все о ней


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

AlexeyK,

А для X700XEFA1 таких глюков нет, наверно и для X700XEEJ5 не будет!

 

Открываю ARM компилятор пишу BLX off_1063782C, он выдает ошибку: "Не определена переменная

off_1063782C". Как этот переход превратить в код?

Siemens M35 -> C45 -> Samsung X100 -> X120 -> E300 -> E710 -> X700 -> E200 -> I710 -> D780 -> I9100

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

Открываю ARM компилятор пишу BLX off_1063782C, он выдает ошибку: "Не определена переменная

off_1063782C". Как этот переход превратить в код?

.equ off_1063782C 0x1063782C

BLX off_1063782C

или

BLX 0x1063782C

 

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

.org 0xXXXXXXXX

перед кодом[/code]

Одна из последних версий binedit здесь.

AlexeyK.gif

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

перехожу по адресу патча (10122ED0), открываю вкладку МСС и прога виснет!

А у меня не получилось подвесить прогу ни в патченной прошивке,ни в чистой :lol:

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

AlexeyK, у меня вопрос. Почему при загрузке файла sym у меня не устанавливаются сигнатуры, т.е. в НЕХе слева нет подписей переход на мсс_ ...? Этот файл я скачал с портала sym и map файлов от Vadiks'а. А второй файл(у меня есть еще один, правда он немного стар) работает на отлично.

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

AlexeyK, у меня вопрос. Почему при загрузке файла sym у меня не устанавливаются сигнатуры, т.е. в НЕХе слева нет подписей переход на мсс_ ...? Этот файл я скачал с портала sym и map файлов от Vadiks'а. А второй файл(у меня есть еще один, правда он немного стар) работает на отлично.

а в самих символах мсс_ присутствуют? это простой текстовый файл, можно поиском посмотреть. Возможно файл получен одной из первых версий SymCreater by Javer, там не было поиска эквивалентов для МСС.

Одна из последних версий binedit здесь.

AlexeyK.gif

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

А что означает

 

00034E90: A0A0 ADR R0, =0x35114 ;R0 = PC + #640 = "MID_ANI dx, dy .."

.................

.................

...............

 

00035114: DCB "MID_ANI dx, dy : %u, %u." ;данные для комманды по адресу 0x34E90

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

00034E90: A0A0 ADR R0, =0x35114 ;R0 = PC + #640 = "MID_ANI dx, dy .."

регистру R0 присваивается адрес строки "MID_ANI dx, dy : %u, %u.", т.е. 0x00035114

 

00035114: DCB "MID_ANI dx, dy : %u, %u." ;данные для комманды по адресу 0x34E90

собственно сама строка в прошивке

Одна из последних версий binedit здесь.

AlexeyK.gif

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

Пытаюсь сделать патч который убирает полосу внизу экрана для х120

Нашел кажется нужный код или почти но что-то рядом.

Меняю r2=111 на r2=128 в нескольких местах

В результате картинки опускаются пикселей на 7-8

 

Меняю r2=160

картинки еще ниже опускаются.

но при просмотре гифов (и анимированными) со временем полоса внизу исчезает и потом появляется периодически. с жепегами не обновляется.

Еще мне кажется идет подрезка под размер 111. Мой вопрос этот код может код подрезать картинку или как-то повлиять на ее размер ибо когда его пропускаешь ваще никакая картинка не вставляется:

 

000352AA: 1B14 ASR R3, R3, #16 ;R3 = R3 >> 16 ' биты не восстанавливаются = 0x356 (854)

 

Интересно как кодом указывается какая картинка должна находиться - над а какая - под.

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

AlexeyK, ответь, пожалуйста мне на вопрос. Вопрос такой: вот копаюсь я в жабе, и никак не могу понять где мы находимся во время игры? И что-то не вижу обработчика нажатий клавиш, единственное что я там нашел это

0044286C  33 00 0000 0206 0000 00000000 0000 0000  Запрос нажатий клавишь (маска 206), но если это оно, то тогда где размещается эта маска 206? Ведь если подумать, то во время игры на участке кода должны задаваться параметры нажатия клавиш, но я их что-то не могу найти. Помоги, пожалуйста, нужно для создания патча. ЗЫ Прошивка X100XEDG1.

########################################

А теперь объясни как это относиться к работе программы BinEdit?

Давайте задавать вопросы по теме!

Что ты привел выше неправильно, ответ можешь найти покопав патчи работающие с клавой в jave.

Ред. MaxKis

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

Я начинаю писать патч: Открываю ARM компилятор и пишу:

.org 0x1083BDCC

1083BDCC: LDR R5, =gv_InCharge

1083BDCE: LDRB R0, [R5]

 

.org 0x1083BDCC - это с какого адреса я начинаю писать(компилировать). Я прав?

А адреса 1083BDCC: нужно писать?

Почему в окне "Результат":

0000043B: 014D000000D4814518

0000043B: 2878

 

Столько символов: 014D000000D4814518? Мне же нужны только четыре!

И почему такие адреса?

Объясните, пожалуйста, а то что-то я совсем запутался!

Siemens M35 -> C45 -> Samsung X100 -> X120 -> E300 -> E710 -> X700 -> E200 -> I710 -> D780 -> I9100

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

EvgeniyZ,

1083BDCC: LDR R5, =gv_InCharge

Зачем пишешь 1083BDCC: ?

Ты же указал место старта, дальше пишешь просто

LDR R5, =gv_InCharge

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

Пишу в компиляторе:

......................................

LDR PC, =0x116B45A4

DCD 0x116B45A4,

но выскакивает ошибка: "Неверный индекс регистра РС",

как мне правильно написать эту команду?

Siemens M35 -> C45 -> Samsung X100 -> X120 -> E300 -> E710 -> X700 -> E200 -> I710 -> D780 -> I9100

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

Почему-то приоткрытии пропатченной прошивки прогой версия прошивки определяется как S/W version, т.е. EX700.04, вместо X700XEFA1, думал дело в патчах, но версия прошивки как было на том же адресе, как в исходной прошивке, так и есть. А S/W version, т.е. EX700.04 идет чуть пониже адресом!

Возник ещё один вопросик по поводу компилятора:

Пишу в компиляторе:

.org 0x102B4FD6

BLX 0x10DBD754

Результат:

102B4FD6: 00F001E8

102B4FDC: 03B40148019001BD54D7DB10

По патчу должно быть:

102B4FD6: 00F01EE8 BLX ___rt_udiv, где ___rt_udiv=0x10DBD754

Как мне получить: Такой код: 00F01EE8? (Как прввильно написать команды?)

И откуда берется:

102B4FDC: 03B40148019001BD54D7DB10 при компилировании?

Потом почитал и написал так:

.org 0x102B4FD6

BLX ___rt_udiv

___rt_udiv: .orgbl 0x10DBD754,

Получил:

102B4FD6: 00F002E8, но почему у меня не получается: 00F01EE8?

Как правильно писать?

Siemens M35 -> C45 -> Samsung X100 -> X120 -> E300 -> E710 -> X700 -> E200 -> I710 -> D780 -> I9100

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

Почему при просмотре прошивки Binedit или hex в правой колонке попадаются вполне осмысленные англицкие слова.

Что-то вроде funboxtable:%d...(s...

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

Нужен Хелп по калькулятору переходов.Ну никак не освою.При расчете кода перехода получаю какуюто хрень.Проверял прямо по коду прошивки-код расчитанный калькулятором не совпадает(прошивка Swift,версия проги 2006.3.24 и 2006.2.26)В чем траблы.См.скрин.Что я делаю не так?

BinEdit.rar

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

в калькулятор вбиваешь адрес с которого переходить а в мнемонику например BL 0xкуда_переходить

Так и делаю.Подозреваю,что если мне надо перейти на адрес с меньшим смещением(вернутся к началу прошивки) то команды B,BL,BLX не прокатят?Траблы именно в этих случаях

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

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.

 

 

.org 0x102B4FD6  

BLX 0x10DBD754  

Результат:  

102B4FD6: 00F001E8  

102B4FDC: 03B40148019001BD54D7DB10

 

EvgeniyZ всё правильно. команды BL и BLX могут адресовать только в диапазоне плюс/минус 0x400000 байт, переход указанный тобой значительно больше, компилятор пытается компенсировать его промежуточным переходом.

___rt_udiv=0x10DBD754 это адрес самой функции, поищи адрес для этой __rt_udiv

 

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

Одна из последних версий binedit здесь.

AlexeyK.gif

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

команды BL и BLX могут адресовать только в диапазоне плюс/минус 0x400000 байт
Ага,всеже ограничения на переход есть,видимо ноги росли отседова.Просто калькулятор глючил у меня не на всех,а на некоторых адресах переходов,и яначал подозревать,что это связано либо с длинной,либо с кратностью.AlexeyK, огромное спасибо за разъяснения! :)
/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

AlexeyK, а что с этим делать? Файл с сохраненым меню не загружается из-за этого.

Почему-то приоткрытии пропатченной прошивки прогой версия прошивки определяется как S/W version, т.е. EX700.04, вместо X700XEFA1, думал дело в патчах, но версия прошивки как было на том же адресе, как в исходной прошивке, так и есть. А S/W version, т.е. EX700.04 идет чуть пониже адресом!

Siemens M35 -> C45 -> Samsung X100 -> X120 -> E300 -> E710 -> X700 -> E200 -> I710 -> D780 -> I9100

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

Декомпилятор некорректно читает код.Как заставить программу выбранный участок читать не как THUMB,а как данные? :lol:

Ура!Заработало! :)Slim,с меня причитается,спасибо! :)

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

AlexeyK, Подойдет ли твоя прога для редактирования прошивок от SonyEricsson K700?

Данные прошивки имеют Little Endian. Нужно в настройках убирать галочку напротив ARM Big Endian?

И еще MCC конструкции стандартны для всех прошивок или нет?

Samsung X100 (X100XEDG1) -> SonyEricsson K700 (R2CA001)

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

Если там ARM совместимый процесор то подойдёт. МСС - это только для Samsung Sysol или Swift.

Если тип автоматически не определился то надо установить или убрать галку в зависимости от кода.

PC. авто определение могу сделать только если у меня будет хотябы одна прошивка.

Одна из последних версий binedit здесь.

AlexeyK.gif

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

AlexeyK,

В Patch Created by Pimen (1.3) написано:

"Воспользуемся нашим сканированным меню (см. Описание MCC), откроем его и наберем в поиске SMS сообщения, жмем найти пока не найдется пункт который находится в основной ветке (без вложений)"

Но почему-то меню не ищется, а перед сообщением ставится 0х, например: 0хSMS сообщения. Может нужно как-то по особому вводить?

Siemens M35 -> C45 -> Samsung X100 -> X120 -> E300 -> E710 -> X700 -> E200 -> I710 -> D780 -> I9100

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

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

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

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

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

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

Войти

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

Войти



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