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

Страница 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