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

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

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

Задаем вопросы по теме "Создание патчей, для начинающих"


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

Позитрон,

 

SUB SP, 0x20

PUSH {R0-R2}

 

MOV R2, #0x1

STR R2, [sP, #0x4]

STR R2, [sP, #0x8]

STR R2, [sP, #0xC]

STR R2, [sP]

...

...

ADD R0, SP, 0xD4+0x20

BL Draw_Box

 

POP {R0-R2}

ADD SP, 0x20

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

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

  • Ответов 1,4 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Позитрон,

 

SUB SP, 0x20

PUSH {R0-R2}

 

MOV R2, #0x1

STR R2, [sP, #0x4]

STR R2, [sP, #0x8]

STR R2, [sP, #0xC]

STR R2, [sP]

...

...

ADD R0, SP, 0xD4+0x20

BL Draw_Box

 

POP {R0-R2}

ADD SP, 0x20

 

не совсем правильно вроде.

так лучше

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}

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

AlexeyK.gif

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

я логгер пишу, уже вобщем все отправки перехватываю, а вот с приёмом сложность:

 

куда (имя функции или адрес) врезатся чтобы перехватывать все входящие смски ?

 

.sym от E740 уже два дня читаю, перепробовал почти всё где упомянуто «sms», пока безупешно…

 

sms3_50ReceiveNewMsg_sim1 и sms3_50ReceiveNewMsg_sim2 - на первый взгляд то что надо, вызывается при получении новых смсок.

но, облом - FlashSMS его не вызывает!!!

можно конечно тупо в MCC её перехватывать, но это некрасиво.

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

 

хочу на более глубоком уровне, чтобы записывать в лог вообще все возможные сообщения (PushSMS, и т.д.) пришедшие с GSM (ну кроме BMS)

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

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

куда (имя функции или адрес) врезатся чтобы перехватывать все входящие смски ?

Не знаю конечно принципа работы твоего патча (в смысле откуда брать инфу про смс), но про входящее смс/ммс могут идею подкинуть. Можно например в процедуру воспроизведения мелодии на смс (вроде бы там еще и на ммс) (в проце не только само воспроизведение mp3 и т.д., а и проверка на режим без звука, т.е. проца работает при всех смс).

sms2_47CtrlSmsAlert

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

[AlaSToR],

Ну музыка то не всегда срабатывает, например если чёрный список… тогда уж где-то около sms2_90IsFilteringNumber врезатся.

мне однако хочется найти место где можно получить сразу сырой дамп смски…

ещё проблема в том что номера отправителя разных классов смсок (push, flash, sms) оказываются в разных местах ОЗУ.

единого первоначального места в ОЗУ не сохраняется. т.е. если врезатся в музыку - то видимо ещё придётся разбиратся по какому поводу была музыка вызвана и где искать данные.

 

в результате надо либо в каждое конечное место отдельно врезатся (что проблематично ввиду неопределённости полного перечня конечных мест) и по разному выдирать номер и данные, либо надо искать самое начальное место…

 

 

вобщем вроде нашёл то что надо… sms0_3ip

там в начале case стоит, и вот case_0a - вызывается при получении любого типа смс на сим2, а case_02 при сим1.

Изменено пользователем f2065

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

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

Или, как вариант загрузки произвольного 32 разрядного адреса:

...

Label_1:

LDR R1, =Label_1; здесь R1 := адресу Label_1 (адрес тоже Число)

...

Применяя эти формы команды, надо всегда помнить о том, что мы используем не свойство процессора, адресовать данные таким образом, а свойство программы - ассемблера разворачивать эти упрощенные вызовы в конструкции вида

 

LDR Rd, [PC, #offsetDataStore];

...

DataStore: DD 123456789;

 

так вот, у меня проблема:

в прошивке уже есть есть необходимые мне данные

 

21A29BF4: 1A26D920 DCD 0x20D9261A

 

как мне реализовать загрузку этих данных в регистр?

 

например, по адресу 21A29B80 мне нужно загрузить в регистр R0 эти данные, как это реализовать? Обязательное условие - команда должна быть двухбайтная!

Если я пишу в компиляторе

 

.start 0x21A29B80

ldr r0,=0x20D9261A

 

то компилятор размещает эти данные после команды, а как мне заставить его отказаться от автоматической адресации и составить мнемонику, которая бы позволяла прочесть данные именно отсюда: 0x21A29BF4?

 

на сколько я понял мне нужно вопользоваться командой из верхней цитаты:

 

LDR Rd, [PC, #offsetDataStore]

 

но тогда... как мне посчитать это смещение #offsetDataStore ? Есть какие-то нюансы при этом или можно просто отнять от адреса расположения данных адрес текущей команды?

 

Надеюсь кто-ниить поймет, что я тут написал... хотя я сам не особо понял... %)

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

FRAER,

а что если...

ADR r0, =0x21A29BF4			;вычисляем смещение до 0x21A29BF4 
SUB \ ADD r0, 2					   ;отнимаем\прибавляем от смещения 2, т.к. у команды LDR регистр РС будет больше на 2
LDR r0, [PC , r0]					  ;загружаем

Тормозит Gravity Defiended? Тебе

сюда. Любишь музыку, но не влазит новый альбом? Тебе сюда.

Хочешь смотреть качественное видео на мобильном? Тебе

СЮДА!

Кризис?! Нету денег на хорошие наушники? Тебе СЮДА!

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

ZhekSooN,

2 байта, не больше!

 

разобрался сам уже...

 

сделал так:

 

.start 0x21A29AC4

ldr r1,[pc,0x12E] ; 0x21A29BF4 - 0x21A29AC4 - 2 = 0x12E

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

FRAER,

неужели компилер не понимает команды типа?

 

org 0x21A29B80

ldr r1, 0x20D9261A

 

если нет, то считаю нужно написать макрос который будет преобразовывать такие команды в вид ldr rx, [PC,y]

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

FRAER,

неужели компилер не понимает команды типа?

 

org 0x21A29B80

ldr r1, 0x20D9261A

 

если нет, то считаю нужно написать макрос который будет преобразовывать такие команды в вид ldr rx, [PC,y]

 

только наверное так

 

org 0x21A29B80

ldr r1, 0x21A29BF4

 

можно и так

 

org 0x21A29B80

ldr r1, =0x20D9261A

 

но в настройках компилятора надо включить опцию "Поиск данных в прошивке"

  • Like 2

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

AlexeyK.gif

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

На D780XEHE1 я без проблем скидываю дамп всей памяти за один раз в файл:

 

ADR R0, ="/e/filename.bin"

MOV R1, O_RDWR + O_CREAT

BL tfs4_open

MOV R7, R0

MOV R2, 0x02000000

MOV R1, 0x30000000

;MOV R0, R7

BL tfs4_write

MOV R0, R7

BL tfs4_close

 

На C5212XEIB5 однако так не получается — при попытках записать более 0x00080000 — мобила вешается. Причём, с любого стартового адреса. Если сделать tfs4_write циклом по кускам вообще всего 0x00001000 — мобила вешаеся всё равно, но по достижении в сумме от 100кб до 3мб (всегда по разному, обычно на 200-500кб).

 

Есть идеи почему так происходит ?

Вероятно, tfs4_write парализует работу каких-то фоновых процессов ? Но вот как с этим боротся ? Даже вот в цикле мелкими кусками - не получается…

Может, есть тут что-то вроде как в win32 - Sleep(0) ?

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

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

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

У меня такой вопрос у моего Sam X100 не работают кнопки разблокировки, может мне кто-нибудь помочь найти патч который заменяет кнопки разблокировки на: right soft key + *

Заранее благодарю!

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

Есть куча lk_AddFocus, типа checkbox.

Хочу сделать между ними зависимости.

Регистрирую соответственно lk_RegFocusChangeCheckFunc, он вызвается как надо.

 

Но, как мне в этой процедуре узнать состояние чекбокса ???

lk_GetFocusCheckboxState выдаёт ноль.

 

Смотрю вообще у других почему-то вместо lk_GetFocusCheckboxState какая-то малопонятная процедура - hfd2_30ReadBlockNameInRamImage lk_GetFocusPtr lk_GetFocusScrollboxScrollText

 

 

и ещё вопрос.

lk_AddFocus, типа checkbox. Высота 0x25. Всё отлично, lk_AddFocusItem его нормально заполняет.

Но если высота 0x25*2 - то чекбокс получается в два раза выше - всё правильно, но lk_AddFocusItem его заполнять не хочет!

А я хотел понаделать многострочных чекбоксов…

Есть идеи как эту проблему решать ?

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

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

Есть куча lk_AddFocus, типа checkbox.

Хочу сделать между ними зависимости.

Регистрирую соответственно lk_RegFocusChangeCheckFunc, он вызвается как надо.

Но, как мне в этой процедуре узнать состояние чекбокса ???

lk_GetFocusCheckboxState выдаёт ноль.

В R0 передавай не указатель,полученный из lk_GetFocusPtr, а gs_DspFocus

Смотрю вообще у других почему-то вместо lk_GetFocusCheckboxState какая-то малопонятная процедура - hfd2_30ReadBlockNameInRamImage lk_GetFocusPtr lk_GetFocusScrollboxScrollText

Где именно? В исходнике? Нжуно смотреть конкретный пример...

lk_GetFocusPtr - выдает указатель на фокус, значение появляется в R0. и его нужно использовать при сохранении настроек (при получении состояний фокусов)

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

[AlaSToR],

 

Всё равно с lk_GetFocusCheckboxState облом :)

 

LDR R2, =p_autoreset+1 ; p_Func

MOV R1, 2 ; v_FocusIndex

MOV R0, R4 ; p_DspFocus

BL lk_RegFocusChangeCheckFunc

p_autoreset:

PUSH {R0-R7,LR}

SUB SP, 0x10

LDR R4, =gs_DspFocus

 

MOV R1, 2 ; v_FocusIndex

MOV R0, R4 ; p_DspFocus

BL lk_GetFocusCheckboxState

CMP R0, 0

BEQ p_ar1

 

MOV R2, 1 ; v_CheckState

MOV R1, 3 ; v_FocusIndex

MOV R0, R4 ; p_DspFocus

BL lk_SetFocusCheckboxState

 

p_ar1:

ADD SP, 0x10

POP {R0-R7,PC}

 

lk_GetFocusCheckboxState всегда выдаёт 0, независимо от состяние галки.

Хотя lk_SetFocusCheckboxState в этом же месте работает верно (если BEQ пропустить)

Нумерация v_FocusIndex верная, тщательно всё проверил.

А что ещё смотреть - уже на знаю…

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

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

[AlaSToR],

 

Всё равно с lk_GetFocusCheckboxState облом :)

lk_GetFocusCheckboxState всегда выдаёт 0, независимо от состяние галки.

Хотя lk_SetFocusCheckboxState в этом же месте работает верно (если BEQ пропустить)

Нумерация v_FocusIndex верная, тщательно всё проверил.

А что ещё смотреть - уже на знаю…

Вот даже сейчас поднял свой древние исхи:

ldr r2,=MinuteReminder_CheckFog+1

mov r1,0

mov r0,r4 ;gs_DspFocus

bl lk_RegFocusChangeCheckFunc

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

MinuteReminder_CheckFog:

push {r4-r7,lr}

 

ldr r0,=gs_DspFocus

mov r1,0

bl lk_GetFocusCheckboxState

 

ldr r1,=gv_MinuteReminder

strb r0,[r1]

 

pop {r4-r7,pc}

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

Такое чувство, будто экв у тебя GetFocusCheckboxState неверен...

Потому что если ты говоришь, что работает - то сравнивая с моим кодом - остается только 1 вариант - о неверном экве...

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

Очень хочется создать чтото свое,но нада научится делать патчы,которые уже были сделаны.Верно?

Так вот по хелпу написано:

ММС 91-MCFN_MCC_REPORT, отвечает за вывод окошек. Вот ее описание:

91 01 0002 0005 EEEE 00000000 0000 0000

и написано что ЕЕЕЕ ет индекс текста.Так как я не знаю ни 01 ни 005.Ставлю знаки вопроса.И индекс замисть ЕЕЕЕ 03F6(формат файла не подерж)

в ИТОГЕ 910?000?00??03F6 .Вставляю в поиск хекс кода,но ничего програка не ишет.Вчем проблема?Как искать?

И еще .Как найти адрес кнопки на гарнитуре.Очень нада.

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

Очень хочется создать чтото свое,но нада научится делать патчы,которые уже были сделаны.Верно?

Так вот по хелпу написано:

ММС 91-MCFN_MCC_REPORT, отвечает за вывод окошек. Вот ее описание:

91 01 0002 0005 EEEE 00000000 0000 0000

и написано что ЕЕЕЕ ет индекс текста.Так как я не знаю ни 01 ни 005.Ставлю знаки вопроса.И индекс замисть ЕЕЕЕ 03F6(формат файла не подерж)

в ИТОГЕ 910?000?00??03F6 .Вставляю в поиск хекс кода,но ничего програка не ишет.Вчем проблема?Как искать?

И еще .Как найти адрес кнопки на гарнитуре.Очень нада.

Быть может,что такого окна нет (помню замучался искать когда- то, оказалось, что в телефоне 2 одинаковых текста с разными индексами). ПРосто нашел другой индекс,и тогда все нормально нашел.

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

сиспсон,

в разных прошивках - разные коды MCC-команд.

например в D780XEHE1 - MCC_REPORT это 0x48 а не 0x91

байты пишутся наоборот. т.е. индекс текста в частности - не 03F6, а F603.

Искать лучше такой маской - 48??????????F60300000000

  • Like 1

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

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

В самсунге е590 MCC_REPORT это 0x47.Только посмотрел патчы вижу что 47.Вот и нашло.Все спасибо огромное

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

Хочу сделать патч.Убрать окно неподержываемый файл

Все нашол все зделал.Адрес .Сигнатуру.Проверяю патч.Никакого окна не выскакивает,а сразу попадаю на рабочий стол.А мне нужно чтобы и дальше оставался я в просмотр картинок(тость росмоторщик мог попытаться просмотреть папку или другой файл, при этом выскакивало сообщение "Содержимое не поддерживается", и для продолжения просмотра надо было выходить из просмоторщика и запускать его заново.Я хочу чтобы в такой ситуации вы не увидите никаких сообщенй и сможете листать файлы дальше не выходя из просмоторщика(Идея автора на х700)

Как сделать так чтобы оставатся в просмотрщику??

Во кстати файлык

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

сиспсон,

так я же уже делал такой патч, фикс к просмотрщику картинок на карте памяти

Siemens A50 -> Samsung C100 -> Samsung X100 -> LG 1800 -> Samsung E590 -> Nokia 6220c

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

p_autoreset:

PUSH {R0-R7,LR}

SUB SP, 0x10

LDR R4, =gs_DspFocus

 

MOV R1, 2 ; v_FocusIndex

MOV R0, R4 ; p_DspFocus

BL lk_GetFocusCheckboxState

надо так:

p_autoreset:

PUSH {R0-R7,LR}

SUB SP, 0x10

MOV R4, R0 ; в R0 передается нужный указатель

 

MOV R1, 2 ; v_FocusIndex

MOV R0, R4

BL lk_GetFocusCheckboxState

и т.д.

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

сиспсон,

так я же уже делал такой патч, фикс к просмотрщику картинок на карте памяти

Нет.Ты не понял.Патч который убирает окно формат файла не подержывается.Когда листаешь картинки,то можна "натрапыть на какойто другой файл,и после етого выскакивает ет окошко.Мож в теме про патчы я не заметил.

Суть не в том создан он иль нет,суть у том что я учусь.как сделать его самому.

1)Как узнать адреса кнопок?(Гарнитура)

Как портировать патч по исходнику?

3)Кто может поделится исх Java_Voodoo_ex_Machina_для E200XEGD6(ет так глянуть с чего он складывается)

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

сиспсон,

так я же уже делал такой патч, фикс к просмотрщику картинок на карте памяти

Нет, это я делал!.. :ak::132:

И кстати, делал его с нуля, когда в первый раз имел секас с CGSN-патчем ..заснимал адресса окошек всяких, искал, откуда они вызываются, и там, видя ситуацию, подправлял всё на месте.

И тебе, сиспсон, советую пользоваться CGSN-патчем для начального освоения патчинга. Тот патч, который ты хотел (переключение треков качелькой) очень легко организовать имея только идею, и всё с помощью CGSN.

  • Like 1

Тормозит Gravity Defiended? Тебе

сюда. Любишь музыку, но не влазит новый альбом? Тебе сюда.

Хочешь смотреть качественное видео на мобильном? Тебе

СЮДА!

Кризис?! Нету денег на хорошие наушники? Тебе СЮДА!

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

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

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

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

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

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

Войти

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

Войти



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