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

Страница 118 из 180: « 1 ... 114 115 116 117 [118] 119 120 121 122 ... 180 »

 jamesbond22:
11.06.09, 15:18
 Xamid писал:
Runtime patcher can't patch db3210

How do you know?

 Xamid:
11.06.09, 16:11
 jamesbond22, you can ask that from den_po =)

 jamesbond22:
11.06.09, 16:33
 Xamid, so you asked den_po about patchable db3210. Hence you know that is db3210 is not patchable.

 MiFa:
11.06.09, 21:28
 Huh i need help, sorry for english but i dont know rus, im translating all to pol/eng.
Im trying port

Патч:
;W595 SW-R3EA037 LT
;Add in information about a file to display the file size in bytes.
;v2
;Now works with photos
;© Tartes
;(p) jamesbond22


to my c902 (FW-R3EA038) after port addrs, hooks etc finished asm compiled to vkp but patch dont work :/
My asm for this patch looks that, i think its correctly becouse for test im copiled this asm to phon_app w595 and looks exactlly like oryginal posted for james.

Код: 

include "x.inc"

patchbody = 0x126cdcf0
addr1 = 0x126CDCF0+1
addr2 = 0x126CDD08+1
addr3 = 0x117F7450+1
addr4 = 0x10F61DFC+1
addr5 = 0x10F61C28+1
addr6 = 0x117E2512+1
addr7 = 0x117E54D2+1

org 0x117e2506

        LDR    R1, off_117E250C
        BX    R1
align 4

off_117E250C    DCD     addr1


org 0x117e54c8

        LDR    R1, off_117E54CC
        BX    R1
off_117E54CC    DCD     addr2
        NOP


org patchbody

loc_126CDCF0:                
                    
        LDR    R0, [R0,0x1C]
        ADD    R6, R0,    0
        MOV    R1, 0
        LDR    R2, off_126CDD4C
        BLX    R2
        ADD    R1, R6,    0
        BL    sub_126CDD1C
        STR    R0, [R5,0x28]
        MOV    R6, 0xB
        LDR    R2, off_126CDD58
        BX    R2


loc_126CDD08:                
                    
        ADD    R2, R6,    0
        MOV    R1, 5
        ADD    R0, SP,    0xC
        LDR    R4, off_126CDD50
        BLX    R4
        LDR    R1, [SP,8]
        BL    sub_126CDD1C
        LDR    R4, off_126CDD5C
        BX    R4




sub_126CDD1C:                
                    

var_2C        = -0x2C
var_28        = -0x28
var_24        = -0x24
var_20        = -0x20
var_1C        = -0x1C
var_18        = -0x18
var_14        = -0x14

        PUSH    {R1-R3,LR}
        SUB    SP, SP,    0x1C
        STR    R0, [SP,0x2C+var_2C]
        LDR    R0, dword_126CDD68
        STR    R0, [SP,0x2C+var_28]
        LDR    R0, dword_126CDD60
        STR    R0, [SP,0x2C+var_24]
        ADD    R0, R1,    0
        LDR    R2, off_126CDD54
        BLX    R2
        STR    R0, [SP,0x2C+var_20]
        LDR    R0, dword_126CDD68
        STR    R0, [SP,0x2C+var_1C]
        LDR    R0, dword_126CDD6C
        STR    R0, [SP,0x2C+var_18]
        LDR    R0, dword_126CDD64
        STR    R0, [SP,0x2C+var_14]
        ADD    R0, SP,    0x2C+var_2C
        MOV    R1, 5
        MOV    R2, 7
        LDR    R3, off_126CDD50
        BLX    R3
        ADD    SP, SP,    0x1C
        POP    {R1-R3,PC}


off_126CDD4C    DCD addr3    
off_126CDD50    DCD addr4    
                    
off_126CDD54    DCD addr5    
off_126CDD58    DCD addr6    
off_126CDD5C    DCD addr7    
dword_126CDD60    DCD 0x78000028        
dword_126CDD64    DCD 0x78000029        
dword_126CDD68    DCD 0x780000A0        
                    
dword_126CDD6C    DCD 0x665        


Thx for help.

 ndt:
12.06.09, 15:16
 :-o

i disassembled patch on k770 R8BA024. here is the result (gnu style)

1st hook place
Код:
ROM:44FF2CC8
ROM:44FF2CC8 hook0:
ROM:44FF2CC8                 LDR     R1, _hook0_sub
ROM:44FF2CCA                 BX      R1
ROM:44FF2CCA @ ---------------------------------------------------------------------------
ROM:44FF2CCC _hook0_sub:     .long hook0_sub+1


2nd hook place
Код: 
ROM:44FF5836
ROM:44FF5836 hook1:
ROM:44FF5836                 LDR     R1, _hook1_sub
ROM:44FF5838                 BX      R1
ROM:44FF583A                 NOP
ROM:44FF583A @ ---------------------------------------------------------------------------
ROM:44FF583C _hook1_sub:     .long hook1_sub+1


and finally hook code
Код: 
ROM:45D18CB0 @ =============== S U B R O U T I N E =======================================
ROM:45D18CB0
ROM:45D18CB0 hook0_sub:
ROM:45D18CB0                 LDR     R0, [R0,#0x1C]
ROM:45D18CB2                 MOV     R6, R0
ROM:45D18CB4                 MOV     R1, #0
ROM:45D18CB6                 LDR     R2, _sub_unk0
ROM:45D18CB8                 BLX     R2
ROM:45D18CBA                 MOV     R1, R6
ROM:45D18CBC                 BL      make_fsize_str
ROM:45D18CC0                 STR     R0, [R5,#0x28]
ROM:45D18CC2                 MOV     R6, #0xB
ROM:45D18CC4                 LDR     R2, _hook0_retn
ROM:45D18CC6                 BX      R2
ROM:45D18CC6 @ End of function hook0_sub


ROM:45D18CC8 @ =============== S U B R O U T I N E =======================================
ROM:45D18CC8
ROM:45D18CC8 hook1_sub:                              @ CODE XREF: ROM:44FF5838j
ROM:45D18CC8                 MOV     R2, R6
ROM:45D18CCA                 MOV     R1, #5
ROM:45D18CCC                 ADD     R0, SP, #0xC
ROM:45D18CCE                 LDR     R4, _Str2ID
ROM:45D18CD0                 BLX     R4
ROM:45D18CD2                 LDR     R1, [SP,#8]
ROM:45D18CD4                 BL      make_fsize_str
ROM:45D18CD8                 LDR     R4, _hook1_retn
ROM:45D18CDA                 BX      R4
ROM:45D18CDA @ End of function hook1_sub


ROM:45D18CDC @ =============== S U B R O U T I N E =======================================
ROM:45D18CDC
ROM:45D18CDC make_fsize_str:                         @ CODE XREF: hook0_sub+Cp
ROM:45D18CDC                                         @ hook1_sub+Cp
ROM:45D18CDC                 PUSH    {R1-R3,LR}
ROM:45D18CDE                 SUB     SP, SP, #0x1C
ROM:45D18CE0                 STR     R0, [SP]
ROM:45D18CE2                 LDR     R0, dw_780000A0
ROM:45D18CE4                 STR     R0, [SP,#4]
ROM:45D18CE6                 LDR     R0, _left_par
ROM:45D18CE8                 STR     R0, [SP,#8]
ROM:45D18CEA                 MOV     R0, R1
ROM:45D18CEC                 LDR     R2, _int2strID
ROM:45D18CEE                 BLX     R2
ROM:45D18CF0                 STR     R0, [SP,#0xC]
ROM:45D18CF2                 LDR     R0, dw_780000A0
ROM:45D18CF4                 STR     R0, [SP,#0x10]
ROM:45D18CF6                 LDR     R0, _str_B
ROM:45D18CF8                 STR     R0, [SP,#0x14]
ROM:45D18CFA                 LDR     R0, _right_par
ROM:45D18CFC                 STR     R0, [SP,#0x18]
ROM:45D18CFE                 ADD     R0, SP, #0
ROM:45D18D00                 MOV     R1, #5
ROM:45D18D02                 MOV     R2, #7
ROM:45D18D04                 LDR     R3, _Str2ID
ROM:45D18D06                 BLX     R3
ROM:45D18D08                 ADD     SP, SP, #0x1C
ROM:45D18D0A                 POP     {R1-R3,PC}
ROM:45D18D0A @ End of function make_fsize_str
ROM:45D18D0A @ ---------------------------------------------------------------------------

ROM:45D18D0C _sub_unk0:      .long sub_unk0+1
ROM:45D18D10 _Str2ID:        .long Str2ID+1
ROM:45D18D14 _int2strID:     .long int2strID+1

ROM:45D18D18 _hook0_retn:    .long hook0_retn+1
ROM:45D18D1C _hook1_retn:    .long hook1_retn+1

ROM:45D18D20 _left_par:      .long 0x78000028
ROM:45D18D24 _right_par:     .long 0x78000029
ROM:45D18D28 dw_780000A0:    .long 0x780000A0

ROM:45D18D2C _str_B:         .long str_B

as you can see you need to locate "B" string ID in lng file

 PRO100light:
25.06.09, 15:11
 Объясните мне что такое ХипШифт? И какие премудрости при портире патчей которые пользуются ХипШифтом?


Добавлено 25.6.09 14:51

Я значит сделал исходник патча, но не могу его скомпилить. Вот в этом куске есть всякие LSL16, LSR16, LSL4, и он именно на них ругается. Говорит типо: невозможная операция... Как быть?
Код: 
loc_45DA0638:

        ORR    R3, R3,    0xFF00
        ADD    R2, R3,    R2
        MOV    R2, R2,LSL16
        MOV    R2, R2,LSR16

loc_45DA0648:

        ORR    R1, R2,    R1,LSL4
        LDRH    R2, [R0]
        CMP    R2, 0x2E
        BNE    loc_45DA05F8


 den_po:
25.06.09, 15:55
 PRO100light,
во-первых, учись отделять данные от исполняемого кода.
во-вторых, скачай доку по ассемблеру арм и погляди там синтаксис команд.

 jamesbond22:
25.06.09, 21:23
 I tried port patch SysGfx to A2. It is not hard to port it. But from 2 to 4 functions used is in a different way in the A2. And patch SysGfx to work must be patched in main?

 PRO100light:
27.06.09, 15:20
 ...объясните пожалуйста как правильно портировать heepshift адреса в патче...

 Va_st:
27.06.09, 15:30
 PRO100light, просто берешь адрес рамы из интервала патча heapshift,кратно 4,и чтоб не занят был другим патчем
Страница 118 из 180: « 1 ... 114 115 116 117 [118] 119 120 121 122 ... 180 »

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

© 2005-2018 supertrubka.org