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

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

 Ivanchick:
14.07.10, 15:02
 
Ооо, дошло! Спасибо! Еще вопрос: как устанавливать патч и идти в замейн, если в phone_app.cxc нет таких адресов (имеется ввиду в замейне)?

HotRabbit, я смотрю врезку Код:
117e75e6: 644A7069391CA6F230FB 014A1047FFFFE1B26A12
, вижу адрес 0x126AB2E1 , но как преобразовать остальное в код, я не знал. Везде движутся сверху вниз. Потом дошло, что сначала нужно [не знаю такого слова], вобщем 3 раза нажать на D, а потом уже на С выше всего этого.

[ Редактировано Ivanchick в 14.7.10 15:11 ]

 xGhost:
14.07.10, 15:06
 Ivanchick, фаром ставишь патч и у тебя появляются нули:
Патч: 
15D00000: 00 FF


 Ivanchick:
15.07.10, 00:28
 Скажите пожалуйста, на какие ошибки указывает этот лог:
Код: 
flat assembler for ARM  version 1.66
music.asm [4]:
LDR     R2, 0x10FEF1FA
x.inc [106] ldr [26]:
      ldr rg , [pc,(p1-($ and 0xFFFFFFFC)-4)]
error: Immediate offset not alligned.
cant open temp.bin


 KIBER-DEMON:
15.07.10, 00:31
 2Ivanchick
Адрес не кратен 4м

 -Sotik-:
15.07.10, 01:33
 Ivanchick, покажи весь код (там где ругается добавь align 4)

 Ivanchick:
15.07.10, 09:39
 Вот весь исходник, за комментарием те значения, которые были:
Код: 
include "x.inc"
; ---------------------------------------------------------------------------
org 0x10FEF1F4  ; 117e75e6
LDR     R2, 0x10FEF1FA  ; 117E75EC
BX      R2
DCB 0xFF
DCB 0xFF
off_10FEF1FA    DCD 0x12181000+1  ; 117E75EC  126AB2E0+1
; ---------------------------------------------------------------------------
addr1 = 0x10FEF1FE+1  ; 117E75F0+1
addr2 = 0x10FEF0F4  ; 117E74FD
addr3 = 0x1168F908+1  ; 1080D3A4+1
addr4 = 0x1168F980+1  ; 1080D41C+1
addr5 = 0x1171D6EC+1  ; 10DF0A04+1
addr6 = 0xBE3  ;BF3
; ---------------------------------------------------------------------------
org 0x12181000
CODE16
loc_12181000: 
        LDR    R2, off_12181034
        LDR    R0, [R6,0x14]
        ADD    R1, R7,    0
        LDR    R3, off_12181038
        BLX    R3
        LDR    R2, dword_12181044
        MOV    R1, 0
        LDR    R0, [R6,0x14]
        LDR    R3, off_1218103C
        BLX    R3
        adr    R2, sub_1218102
        ADD    R2, 1
        MOV    R1, 0
        LDR    R0, [R6,0x14]
        LDR    R3, off_12181038
        BLX    R3
        LDR    R1, off_12181030
        BX    R1

; =============== S U B    R O U T    I N E =======================================


sub_12181024:
        PUSH    {R0-R7,LR}
        MOV    R1, 0
        LDR    R7, off_12181040
        BLX    R7
        POP    {R0-R7,PC}
; End of function sub_126AB304

; ---------------------------------------------------------------------------
align 4
off_12181030    DCD addr1
off_12181034    DCD addr2
off_12181038    DCD addr3
off_1218103C    DCD addr4
off_12181040    DCD addr5
dword_12181044    DCD addr6
; ends


 MahmudS:
15.07.10, 09:50
 Код:
org 0x10FEF1F4  ; 117e75e6
LDR     R2, 0x10FEF1FA  ; 117E75EC
BX      R2
DCB 0xFF
DCB 0xFF
off_10FEF1FA    DCD 0x12181000+1  ; 117E75EC  126AB2E0+1


вместо

Код:
DCB 0xFF
DCB 0xFF


напиши align 4

 HotRabbit:
15.07.10, 10:00
 Ivanchick,
с моего скрина (пост выше) ваще трудно переписать, да?...

Тебе компилятор явно указал где у тебя ошибка
Ivanchick писал:
Код:
music.asm [4]:

в 4-й строке такая муть
Код:
LDR     R2, 0x10FEF1FA

Зачем тут вообще что-то трогать?
Оставь как было
Код: 
org 0xТвоё_значение
    LDR    R2, off_117E75EC
    BX    R2
; ---------------------------------------------------------------------------
align 4
off_117E75EC    dw loc_126AB2E0+1

; ---------------------------------------------------------------------------
org 0xТвой_замейн
loc_126AB2E0:
......

Остальное так же

Или по-русски: у тебя меняются только значения врезки, патча и адресов (addr1...6), которые ты нашёл

Код:
addr2 = 0x10FEF0F4  ; 117E74FD
И здесь "+1" потерял вроде

 Ivanchick:
15.07.10, 10:52
 
HotRabbit пишет:
Ivanchick,
с моего скрина (пост выше) ваще трудно переписать, да?...

Тебе компилятор явно указал где у тебя ошибка
Ivanchick писал:
Код:
music.asm [4]:

в 4-й строке такая муть
Код:
LDR     R2, 0x10FEF1FA

Зачем тут вообще что-то трогать?
Оставь как было
Код: 
org 0xТвоё_значение
    LDR    R2, off_117E75EC
    BX    R2
; ---------------------------------------------------------------------------
align 4
off_117E75EC    dw loc_126AB2E0+1

; ---------------------------------------------------------------------------
org 0xТвой_замейн
loc_126AB2E0:
......

Остальное так же

Или по-русски: у тебя меняются только значения врезки, патча и адресов (addr1...6), которые ты нашёл

То есть ты хочешь сказать, что в строке Код:
LDR    R2, off_117E75EC
адрес 0х117E75EC не нужно портировать??? В исходнике все адреса портированы на W910 R1FA037, закомментированы те адреса, которые были в W595. Наверное, адреса неправильно портанул, но PatsearchNT выдает эти.
А обязательно здесь нужно менять DCD на dw Код:
align 4
off_117E75EC    dw loc_126AB2E0+1
?

В 4-ой строке действительно адрес не кратен 4-ем, если его сделать кратным 4-ем, то в логе эта ошибка пропадает. (На этот адрес PatsearchNT мне выдал 2 адреса, но оба они не кратны 4-ем). После этого появляется Код:
2 passes, 104 bytes.
. Это значит, что в 2-ух местах ошибки?

 RaANdOoM:
15.07.10, 12:52
 Ivanchick,
DCD, dw - работают одинаково
2 passes, 104 bytes - не забивай голову, по крайней мере это значит что патч скомпилился
И любой dword (4 байта) должен быть расположен по адресу кратному 4-ем.
Страница 155 из 180: « 1 ... 151 152 153 154 [155] 156 157 158 159 ... 180 »

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

© 2005-2018 supertrubka.org