Учимся писать патчи : Патчестроение : Форум

Страница 154 из 180: « 1 ... 150 151 152 153 [154] 155 156 157 158 ... 180 »

 mugen:
16.06.10, 19:07
 хо, прочитал всё, вижу тут патчи только портируют, вроде ясно, у меня w810
хочу спросить:
1. если в thumb LDR R0, адрес(кратный 4)+1 и после BLX R0, то режим в вызываемой процедуре останется thumb, а без +1 - arm, если так тогда на выходе из функи он тоже arm будет? напомните как тогда вернуть thumb на выходе из такой процедуры... и какие адреса в регистр для BLX можно ложить (диапазон есть или как, зависит от режима?)
2. как передавать параметры функциям, из либы которые (через регистры, стек, или как)
3. подскажите может, что такое лучше перехватить для исполнения своего кода (на что повесить, для тестов)
4. и ещё, ФС адресутся как-то? нельзя ли тупо положить файл, бинарник допустим, на который и передавать управление, 32Mb ведь в ARM, достанет, так нельзя?
(как там в FAT файлы себя ведут, надо слить elf-ом fs глянуть, если он на одном месте будет и адрес его начала известен, можно считай замейном обмениваться..)

и может кто знает как основные инструкции кодируются (поделитесь)
допустим инструкция BL: 00F400F8 (min=-3,99Mb) и FFF3FFFF (max=+3,99Mb), попроще B: 00E4 (min) FFE3 (max),... как смещение считается вроде знаю, т.е. можно что-то и ручками делать (+ push/pop лёгкие +копипаст других) или просвятите: может в иде можно сам код как-то писать без использования компилятора



Добавлено 17.6.10 22:50

вот естьПатч:
;W810 SW-R4EA031
;rapid Access to the functions of the telephone across the number of keys 2-9 in the way in wait
;one added the appointment of the events
;v.2
;(c) Sic
;(p) andhe7
;thanks ShadownPlayer, Edgpaez, http://www.se-developers.net, seusers.com
вот его код в прошивке: 
вобщем было:
if (клавиша_2) {берём адрес клавиши_2} else if (...) {...} else if (клавиша_9) {берём адрес клавиши_9}
а теперь вот так:
адрес клавиши_2 + (код клавиши - код клавиши_2)*4
мой исходник: 
вобще без синего (наверное и красного) не ребутит, не виснет, не тормозит, всё работает как надо, вопрос насколько это критично/неэффективно?
Как я понимаю, в функцию при нажатии не только клавиш 2-9 (ну 0 и 1 скорее всего, может и всех) передавалось бы невалидное имя ссылки (какашка), которое грузилось бы не из адресов данных (выше/ниже)
а зачем то сравнение R0-R4, и что там вызывается по BCC не знаю...

Патч:
;W810 SW-R4EA031
;rapid Access to the functions of the telephone across the number of keys 2-9 in the way in wait
;one added the appointment of the events
;v.3
;(c) Sic
;(p) andhe7
;(e) mugen
;thanks ShadownPlayer, Edgpaez, http://www.se-developers.net, seusers.com
А плюс прошлой реализации - это возможность повесить дополнительную функу для конкретной клавиши, как раз вместо того что красным, туда вписать LDR R7, addr(2-9) и BLX, и дорисовать адреса фунок в конце данных в addr(2-9), а в моём случае будет 1 функция на любую из клавиш 2-9... ну для простых пользователей это не так важно

сор за оверпост, но вы ответьте и на те вопросы, плз

[ Редактировано mugen в 19.6.10 19:25 ]

 blacklizard:
21.06.10, 14:53
 Im not sure in this is correct place to ask.

My question is, how convert MOVL instruction into MOV and logical shift instruction

Thanks in advance

 RaANdOoM:
21.06.10, 16:49
 blacklizard, MOVL is not instruction, it is macros. When you write 'movl rx, value' compiler put in rx needed value as he can.
If you ask about how to see instructions in ida - you need to disable macros in settings of ida :)

 PRO100light:
03.07.10, 00:47
 Вечер добрый =)
вопрос таков Патч:
;Замена графики телефона
;В папку ini (/usb/other/ini), НА ТЕЛЕФОНЕ, кладём файл GFX.ini
;В GFX.ini указываем путь к папке с заменяемой графикой
;Например: [GFX_Folder]: /usb/other/IMG
;посде пути не забываем ставить Enter
;В эту папку ложим иконки XXXX.PNG(XXXX.GIF, XXXX.JPG),
;где XXXX - номер (hex) заменяемой картинки
;Перезагружаем телефон
;Ver 1.1
;Поправлен баг с ребутом, если файл GFX.ini не был найден
;Поправлен баг с ребутом режиме передачи файлов
;(с) Joker XT
;Ver 2.0
;(c) Vertexbz
;Графика грузится теперь при первом старте телефона (в т.ч. меню запуска)
;Изображения могут быть разных разрешений

Значит создал исходник, нареканий нет. Но... не работает. Значит скомпилил на ту же прошу. нашел отличия в байтах. Но отличия только в байтах, а в иде смотрится одинаково.

оригинал Код:
ROM:45DA067C 40 0F 80 E3                 ORR     R0, R0, #0x100

порт Код:
ROM:45DA067C 01 0C 80 E3                 ORR     R0, R0, #0x100


И так во всех похожих местах ( ORR R0, R0, )... Из-за чего? Когда создавал исх, то он сам задал этому участку CODE32. Насильно я этим не занимался.

 HotRabbit:
03.07.10, 02:00
 PRO100light,
компилятор наверно тупит (принимает за логическое "или")
макросы включи в ИДЕ, увидишь 8-байтные значения =)

Код:
MOVL    Rx, 0x.....


 PRO100light:
03.07.10, 02:23
 HotRabbit, Ну да... так отображается. Ток когда-то den_po, в этой же теме сказал мне, что эта галочка - лишние =)


Добавлено 3.7.10 01:25

Вот только что ручками перебил все байты в теле патча, теперь работает. И все же) Как побороть такие косяки?

 den_po:
03.07.10, 03:56
 PRO100light, я, скорее, говорил, что лишнее - трогать эту галочку.
что касается movl, то использование этого макроса с одним и тем же значением может реализовываться большим количеством вариантов. например MOVL R0,0x100:

mov r0,1
add r0,0xFF

mov r0,2
add r0,0xFE

mov r0,10
add r0,0xF0

mov r0,1
lsl r0,r0,8

mov r0,2
lsl r0,r0,7

mov r0,4
lsl r0,r0,6

все эти пары команд в результате дают 0x100 в R0

теперь об orr. оба этих варианта, опять же, выполняют абсолютно одно и то же. если у тебя не работало, то не из-за orr.

 Ivanchick:
14.07.10, 08:39
 Вопрос таков. Вот патч:
Патч:
;W595 SW-R3EF001
;Add left softkey "Minim. for playing music in FileManager
;To stop playing you must go to book "File Options" from Activity Menu
;(!) Need to use patch BookManager + Minimalize books
;v.1
;(c) jamesbond22
;Oryginal idea by yener90


Меня интересует эта врезка:
Код:
117e75e6: 644A7069391CA6F230FB 014A1047FFFFE1B26A12


Вот она в IDA:
Дизассемблироваться не хочет... Я вижу адрес 0x126AB2E1, но остальное как "расшифровать"? Ведь такого адреса нет 0x47104A01 !

(учусь по этому факу "F.A.Q по портированию замэйновых патчей")

 xGhost:
14.07.10, 08:46
 Ivanchick, http://supertrubka.org/newbb_plus/viewtopic.php?topic_id=4507

 HotRabbit:
14.07.10, 13:40
 xGhost писал:

ты в каком месте там RAM-адрес нашёл? :-o

Ivanchick писал:
Дизассемблироваться не хочет...
Может кому-то 1-й пост в ломы читать?

учусь по этому факу "F.A.Q по портированию замэйновых патчей"
Нихрена не верится ;-)

Было бы так, видел бы это:


и код соответственно, типа этого:


Страница 154 из 180: « 1 ... 150 151 152 153 [154] 155 156 157 158 ... 180 »

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=965&start=1530

© 2005-2018 supertrubka.org