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

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

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

BinEdit и все о ней


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

А есть поиск адреса в строке комментариев ? Ну там где пишется подсказка по результатам ADD, LSL, LSR. Вроде там не ищет. А было бы полезно, для поиска разных оптимизированных значений.

Коментарии нигде не хранятся и формируются заново при каждом просмотре, так что поиск в них не возможен даже теоретически.

Методика учета ADD, LSR, LSL, SUB и др. команд при поиске значений передаваемых в регистр есть, но только применительно к конкретному регистру и перед запуском какойто определённой функции.

PS. Все варианты оптимизации учесть нельзя. Даже если мне приведут список всех возможных вариантов, я почти уверен, что смогу привести ещё один :)

PS2. В данном случае пригодились бы возможности программы ARMdebuger - она может перехватить ображение к ячейкам памяти в реальном времени.

  • Like 1

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

AlexeyK.gif

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

Появилось немного времени :( добавил компиляцию опций. Вот описание:

 

Компиляция опций.

 

.options [check|list] , "Наименование опций" - начала формирования блока опций. По умолчанию формируются опции типа list

.option [def|default] [, "Наименование опции"] – заголовок отдельной опции. Опция с ключом default будет использована в основном коде. Приоритет имеет последняя опция с таким ключом.

 

.endoptions - завершение формирования блока опций

 

Примечание. Внутри определения опций не допускается изменение текущего адреса компиляции. В основной код попадает кусок после директивы .options и до первой директивы .option или после директивы .option с ключом default. Длину блоков можно не подбирать, при компиляции будет произведено автоматическое выравнивание длины. Пустое место заполняется нулями, что эквивалентно команде NOP. Для опций типа check наименование опции можно не использовать, всё равно для варианта on будет использоваться первая следующая директива .option, а для off – вторая.

Пример.

 

02346:

;Код до начала описания опций

mov R1, 10

add R1, 20

;заголовок опций

.options list, "опции списком"

;этот код окажется в основном коде, если в директивах .option не будет ключа default

bl 0x12344

;описание первой опции

.option "Переход на адрес 0x3456"

 

bl 0x3456

 

;описание второй опции

.option def, "Sub R1, 100"

 

sub R1,100

 

;описание третьей опции

.option "несколько команд"

 

mov R0, R1

add R1,34

mul r0,r1

 

;описание четвёртой опции

.option "данные"

 

.word $+7

 

;завершения описания опции

.endoptions

 

;код который будет после опций

add R1,5

 

 

получается такое

 

<?xml version="1.0" encoding="Windows-1251"?>

<patch version="0.5">

<info title="" id="00000000" group="" version="">

<description short="" />

<author nickname="AlexeyK" fullname="Калёнов Алексей Владимирович" status="Автор" email="" www="" icq="282456587" donate="" />

</info>

 

<patchdata firmware="" >

<changes>

<nord offset="0x2346" to="0A2114316439000000000531" />

 

</changes>

 

<options>

<list title="опции списком" offset="0x234A" type="data" values="Переход на адрес 0x3456=01F084F80000;Sub R1, 100=643900000000;несколько команд=081C22314843;данные=532300000000" />

 

</options>

</patchdata>

 

</patch>

 

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

Если всё нормально, то как только будет возможность выложу обновление (сейчас есть проблемы с доступом к сайту :bx: )

  • Like 4

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

AlexeyK.gif

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

FRAER

я понимаю что немного не в тему написал

просто в этой теме обсуждается прога BinEdit может кто и знает

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

Леха привет. Вот викладываю про то что я тебе писал

103965-10-09-08)1221072184_thumb.jpg

P.S. АНДРЮША©™ (11:40:02 10/09/2008)

когда ищеш совмесные адреса по аналагу, одно окно нормально розвёрнуто(на весь экран), а другое чуть розвернутое(типа не на весь экран), и потом пытаешся то что не навесь экран розвернуть на весь, первая строчка чёта идёт крадратами

Mac OS X 10.9/ IOS 7

Перешёл на Macintosh

Я vkontakte, Я в myspace, Я в facebook

УШЕЛ

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

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

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

AlexeyK,

Можно сделать, чтобы БЕ нормально искал компенсированные BL и BLX переходы? А то приходится самому искать переходы на арм...

Пожертвования отправлять сюда R256859050930

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

zizu, [AlaSToR] попробую повторить и исправить, я с таким ни разу не сталкивался.

Sylar на 100% не возможно. Так как вариантов "компенсации" много. можно только добавлять варианты.

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

Например,

 

BX PC

LDR R12,=adres

bx R12

 

здесь запуск может быть как на BX или THUMB кода, так и на LDR из ARM кода. И это ещё самый простой пример.

 

В общем нужны примеры, тех функций которые не находятся с указанием кода с места вызова и кода самих функций, желательно с HEX данными и адресами их расположения, ну и название прошивки.

  • Like 1

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

AlexeyK.gif

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

AlexeyK,

Например функция IdleDisplayDateTime (D880XEHG2)

	IdleDisplayDateTime:
20DF56D8:	FFB5	PUSH	{R0-R7,LR}
20DF56DA:	87B0	SUB	SP, SP, #0x1C
20DF56DC:	109C	LDR	R4, [SP, #0x40]
20DF56DE:	119D	LDR	R5, [SP, #0x44]
20DF56E0:	171C	MOV	R7, R2
20DF56E2:	1E1C	MOV	R6, R3
20DF56E4:	0020	MOV	R0, #0x0
20DF56E6:	8349	LDR	R1, =f_color
20DF56E8:	C043	MVN	R0, R0
..................

Вызывается отсюда

..................
201B7B38:	0191	STR	R1, [SP, #0x4]
201B7B3A:	1048	LDR	R0, =0x3076D420
201B7B3C:	2A1C	MOV	R2, R5
201B7B3E:	1023	MOV	R3, #0x10
201B7B40:	211C	MOV	R1, R4
201B7B42:	0088	LDRH	R0, [R0, #0]
201B7B44:	16F7B6EE	BL	_IdleDisplayDateTime
201B7B48:	01E0	B	loc_201B7B4E

и отсюда

..................
201BD6EC:	0848	LDR	R0, =0x3076D420
201BD6EE:	2A1C	MOV	R2, R5
201BD6F0:	1023	MOV	R3, #0x10
201BD6F2:	211C	MOV	R1, R4
201BD6F4:	0088	LDRH	R0, [R0, #0]
201BD6F6:	11F7DEE8	BL	_IdleDisplayDateTime
	loc_201BD6FA:	
201BD6FA:	05B0	ADD	SP, SP, #0x14
201BD6FC:	30BD	POP	{R4,R5,PC}

 

BinEdit находит только ссылки на

200CE8B4:	00C09FE5	LDR	R12=IdleDisplayDateTime+1
200CE8B8:	1CFF2FE1	BX	R12
200CE8BC:	D956DF20	DCD	IdleDisplayDateTime+1

и

2096F86C:	00C09FE5	LDR	R12=IdleDisplayDateTime+1
2096F870:	1CFF2FE1	BX	R12
2096F874:	D956DF20	DCD	IdleDisplayDateTime+1

 

А адреса команды BL (201B7B44 и 201BD6F6) с переходом на эти адреса нет...

===================================================

После того как я сам посмотрел адреса вызова этой функции, то БЕ нормально теперь даёт адреса вызова BL...

Пожертвования отправлять сюда R256859050930

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

BinEdit находит только ссылки на

200CE8B4:	00C09FE5	LDR	R12=IdleDisplayDateTime+1
200CE8B8:	1CFF2FE1	BX	R12
200CE8BC:	D956DF20	DCD	IdleDisplayDateTime+1

и

2096F86C:	00C09FE5	LDR	R12=IdleDisplayDateTime+1
2096F870:	1CFF2FE1	BX	R12
2096F874:	D956DF20	DCD	IdleDisplayDateTime+1

 

А адреса команды BL (201B7B44 и 201BD6F6) с переходом на эти адреса нет...

===================================================

После того как я сам посмотрел адреса вызова этой функции, то БЕ нормально теперь даёт адреса вызова BL...

Макс

Это и есть так называемые длинные BL переходы. Смотри где они используются, к примеру адрес 0х200CE8B4.

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

AlexeyK, по поводу опций:

 

<nord offset="0x2346" to="0A2114316439000000000531" />

 

Лучше компилировать так:

<nord offset="0x2346" to="0A211431" />
<nord offset="0x234A" to="643900000000" req="no"/>
<nord offset="0x2350" to="0531" />

 

Тогда патч не будет отмечен неустановленным, если выбрана опция не по умолчанию.

И данных отмены нет...

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

AlexeyK, по поводу опций:

 

<nord offset="0x2346" to="0A2114316439000000000531" />

 

Лучше компилировать так:

<nord offset="0x2346" to="0A211431" />
<nord offset="0x234A" to="643900000000" req="no"/>
<nord offset="0x2350" to="0531" />

 

Тогда патч не будет отмечен неустановленным, если выбрана опция не по умолчанию.

И данных отмены нет...

 

поправлю.

Пока это можно делать вручную. Есть директивы .patchcoment и .req

перед опцией пишем

.patchcoment

.req N

 

после опции

.patchcoment

.req Y

 

или наоборот :59:

  • Like 3

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

AlexeyK.gif

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

AlexeyK,

В версии 2008.9.0.3 как можно отключить окошко об Успешной компиляции и пути сохранения smp?

Пожертвования отправлять сюда R256859050930

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

AlexeyK,

В версии 2008.9.0.3 как можно отключить окошко об Успешной компиляции и пути сохранения smp?

в этой версии нельзя, только в следующем обновлении.

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

AlexeyK.gif

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

У меня вопрос, при нажатие на обновление в программе выходит сообщение "невозможно соединиться с сервером" в связи с этим не могу обновить программу с чем это связано.

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

У меня вопрос, при нажатие на обновление в программе выходит сообщение "невозможно соединиться с сервером" в связи с этим не могу обновить программу с чем это связано.

в программе реализовано соединение без прокси. или экран межсетевой не пускает.

 

вот прямая ссылка на обновление http://binedit.sgh.ru/BinEdit_min.7z

  • Like 2

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

AlexeyK.gif

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

возможно ли реализовать поддержку китайских прошивок в бин формате. Как раз поиск и изменение языка в китах мы начинали именно с этой проги, только она поддерживала UTF-8 left.

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

Привет, я тут новенький..., скачал эту прогу ну и дальше по инструкции начал делать и пвозникли вопросы:

1. нет ли у кого сигнатуры на D780 (чо-то ненашел)

2. начал сканировать меню и короче оставил наночь, в итоге 16часов и сканировалось только 15%, так долго и должно быть.

3. может у кого есть сохраненный файл меню на оригинальною XEHE1, буду очень признателен...

Samsung D780 duos

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

возможно ли реализовать поддержку китайских прошивок в бин формате. Как раз поиск и изменение языка в китах мы начинали именно с этой проги, только она поддерживала UTF-8 left.

Что именно подразумевается под поддержкой, и какие именно модели китайских прошивок надо поддерживать (MTK, Spreadtrum или ещё что)?

 

На данный момент программе всё равно, от какого телефона прошивка, лишь бы она была для ARM процессора. Единственное для некоторых производителей есть сканирование стандартных ресурсов.

 

Для большинства прошивок от MTK есть определение ID прошивки, плюс есть поддержка некоторых разновидностей строковых ресурсов для этих прошивок.

 

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

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

AlexeyK.gif

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

В "подключении к телефону" поломалось сливание дампа.

Теряется самый первый байт.

 

Указываю - адрес 30000000 длинна 0000FFFF 100

В файле - 009FE50CF09FE50000A0E30080BDE8…

 

а набираю в терминале AT+CGSN=0,30000000,30

ответ - 00009FE50CF09FE50000A0E30080BDE8…

 

почему ???

 

главное раньше нормально сливал дампы и этой потери не было.

видимо какая-то опция настроек винована, но вот какая ?

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

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

Что именно подразумевается под поддержкой, и какие именно модели китайских прошивок надо поддерживать (MTK, Spreadtrum или ещё что)?

 

На данный момент программе всё равно, от какого телефона прошивка, лишь бы она была для ARM процессора. Единственное для некоторых производителей есть сканирование стандартных ресурсов.

 

Для большинства прошивок от MTK есть определение ID прошивки, плюс есть поддержка некоторых разновидностей строковых ресурсов для этих прошивок.

 

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

 

 

Хотя бы МТК хочу попробовать свои силы в создании своей таблицы шрифтов и т.д., для личных целей.

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

видимо какая-то опция настроек винована, но вот какая ?

попробуй предыдущей версией программы. Этот модуль в последнее время вроде не изменял.

 

Хотя бы МТК хочу попробовать свои силы в создании своей таблицы шрифтов и т.д., для личных целей.

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

PS. Могу подсказать если, что (в пределах возможного) :) через личку или icq

Изменено пользователем AlexeyK
  • Like 1

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

AlexeyK.gif

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

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

 

Это баг или так и надо ???

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

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

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

 

Это баг или так и надо ???

 

Лучше конечно с такими вопросами приводить код :laugh3:

 

По идее это баг и насколько помню, компилятор должен сообщать об ошибке, но после появления регионов namespace использование одинаковых меток вполне допустимо в разных регионах.

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

AlexeyK.gif

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

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

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

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

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

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

Войти

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

Войти



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