Учимся писать патчи : Патчестроение : Форум |
Страница 30 из 180: « 1 ... 26 27 28 29 [30] 31 32 33 34 ... 180 » |
den_po: |
04.07.07, 14:03 |
vetaxa-manchyk пишет: молодцы вы, ребята. сообщения компилятора кто читать будет?что я здесь не доделал? подскажите org 0x21464201 - адрес не может нечётным PUSH {LR} LDR R7, loc_21464218 - адрес метки loc_21464218 должен быть кратен 4 BLX R7 PUSH {R0-R7} MOV R1, 4 MOV R2, 2 LDR R3, =0x137D - не поддерживается такой синтаксис. переложи аргумент в другое место и укажи ссылку на него. на будущее в ida используй галку "disable pointer dereferencing" в настройках LDR R7, loc_21464214 - адрес метки loc_21464214 должен быть кратен 4 BLX R7 POP {R0-R7,PC} loc_21464214: - начиная отсюда - не исполняемый код, а данные LDMIA R4!, {R0,R2,R6} ADD SP, R11 loc_21464218: ADD R5, 1113 ADD R9, SP dword_2146421C DCD 0x137D |
-=Tanusha_SE=-: |
04.07.07, 14:10 |
Мальчики скажите пожалуйста вот сделала все по правилам include"vibra_call.inc" include "x.inc" org 0x451D4550 code32 STMFD SP!, {R1-R7,LR} _ldr R0, d_451D45F4 LDRB R0, [R0,8] CMP R0, 4 LDMNEFD SP!, {R1-R7,PC} MOV R0, 100 MOV R1,50 MOV R2, 250 MOV LR, PC _ldr PC, d_451D45F8 _ldr R0, d_451D45FC MOV R1, 1 BL sub_451D4588 LDMFD SP!, {R1-R7,PC} ; --------------- S U B R O U T I N E --------------------------------------- sub_451D4588: ; CODE XREF: ROM:451D4580p STMFD SP!, {R4-R7,LR} _ldr R3, d_451D4600 STR R0, [R3] STR R1, [R3,8] MOV R0,1 STRB R0, [R3,8] LDMFD SP!, {R4-R7,PC} ; End of function sub_451D4588 ; --------------------------------------------------------------------------- STMFD SP!, {R0-R3,LR} _ldr R8, d_451D4600 LDRB R0, [R8,8] CMP R0, 1 BNE loc_451D45CC _ldr R0, [R8,4] SUB R0, R0, 1 STR R0, [R8,4] CMP R0, 0 BEQ loc_451D45E8 loc_451D45CC: ; CODE XREF: ROM:451D45B4j ; DATA XREF: ROM:off_451D4608o LDMFD SP!, {R0-R3} MOV R2,1000 MOV R1, 4 MOV LR, PC _ldr PC, d_451D4604 LDMFD SP!, {PC} ; --------------------------------------------------------------------------- loc_451D45E8: ; CODE XREF: ROM:451D45C8j STRB R0, [R8,8] _ldr LR, off_451D4608 _ldr PC, [R8] ; --------------------------------------------------------------------------- d_451D45F4 dw 0x4C08A2C0 ; DATA XREF: ROM:451D4554r d_451D45F8 dw 0x44F8AF35 ; DATA XREF: ROM:451D4574r d_451D45FC dw 0x44F8B085 ; DATA XREF: ROM:451D4578r d_451D4600 dw 0x4C06E390 ; DATA XREF: sub_451D4588+4r ; ROM:451D45A8r d_451D4604 dw 0x44E40ADD ; DATA XREF: ROM:451D45E0r off_451D4608 dw loc_451D45CC ; DATA XREF: ROM:451D45ECr ; ROM ends на вот этом застопорилась Правило 8 Все конкретные адресса заменяем на переменые addr1, addr2 и т.д. а из значения выносим в *.inc файл. не могу понять какие конкретные адреса и где их брать? Смотрела файл inc там некоторые адреса даже не упоминаются |
svinuk: |
04.07.07, 14:44 |
absolutew800i впатче есть адреса которые ведут в прошивку....и для разных прошивок они разные....вот тебе нужно найти адреса для своей прошивки и прописать их в *.inc файл. Тоесть, допустим у нас в патче есть переход вида "B 441D45CC". Для текущей прошивки этот адрес является адресом начала подпроцедуры, для другой прошивки адрес будет другим. вот нада искать эти адреса. Затем в исходнике вместо таких адресов пишеш addr1, addr2 и т.д А в *.inc файле пишешь сами адреса addr1: 44184736 addr2: 45937С26 (к примеру) и тогда адреса с инк файла при компиляции беруться и подставляются в исходник.... Сделано так для того чтоб сделав один раз исходник можно было только находя адреса портировать патч под все прошивки данного тела. |
IronMaster: |
04.07.07, 14:48 |
Да любой адрес можно вынести в инк файл и обозвать, а в коде уже использовать не адрес, это название. Например super-puper_function = 0х44668800 А в коде уже буду писать bl super-puper_function Добавлено 4.7.07 16:53 Так... Дальше... svinuk, сразу могу сказать вариант не рабочий. Так как код вибры, который используется в патче специфичен для старых моделей (может и у вас так, но рам точно менять надо). И вообще зачем портировать мой, если для ваших телов есть от Сингла? |
svinuk: |
04.07.07, 15:18 |
IronMaster для опыта. |
Adrenalin: |
04.07.07, 17:24 |
скажите здесь есть что нить не правильное? патч сделался include "k600_r2bb001_keylock_password.inc" include "x.inc" ;------------------------------------------------------ org addr3_1 code16 ;========================================================== PUSH {LR} LDR R7, off_21464218 BLX R7 PUSH {R0-R7} MOV R1, 4 MOV R2, 2 LDR R3, d_2146421C LDR R7, off_21464214 BLX R7 POP {R0-R7,PC} ; --------------------------------------------------------------------------- off_21464214 DCD addr2+1 off_21464218 DCD addr1+1 d_2146421C DCD 0x137D Добавлено 4.7.07 17:34 а патч выглядит так: ;K600 R2bb001 ;Keylock password ;(c) IronMaster, Joker XT ;(P) vetaxa-manchyk +20020000 256724: 59622720 01424621 1444200: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00B5054FB847FFB404210222034B014F 1444210: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF B847FFBDA9EA1B20596227207D130000 |
BREND: |
04.07.07, 18:56 |
Что-то я не понимаю зачем компилировать код? Я делаю так: ищу в IDA то, что нужно, делаю vkp завливаю, включаю тел и смотрю, что произошло. Может кто знает, как сделать яркость меньше чем 50%? Я нарыл что-то на 44EAA8CA. здесь в R0 кладется процент, ставлю меньше 50, все равно ничего не изменилось. |
Adrenalin: |
04.07.07, 19:01 |
BREND svinuk Сделано так для того чтоб сделав один раз исходник можно было только находя адреса портировать патч под все прошивки данного тела. |
den_po: |
05.07.07, 10:52 |
BREND пишет: Что-то я не понимаю зачем компилировать код? Я делаю так: ищу в IDA то, что нужно, делаю vkp завливаю, включаю тел и смотрю, что произошло. попробуй сложные патчи так портировать :D |
BREND: |
05.07.07, 12:52 |
портировать не интересно, лучше "ковырять" код |
Страница 30 из 180: « 1 ... 26 27 28 29 [30] 31 32 33 34 ... 180 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=965&start=290 © 2005-2018 supertrubka.org |