Código:
include "x.inc"
;hook's
org 0x450A71F4; hook 1
LDR R3, off_450A71F8
BX R3
off_450A71F8 dw loc_456C9200+1
org 0x450A8718; hook2
LDR R3, off_450A871C
BX R3
off_450A871C dw loc_456C9264+1
org 0x450A723A; hook 3
LDR R2, off_450A7240
BX R2
align 4
off_450A7240 dw loc_456C9222+1
;Estructura del Parche
org 0x456C9200; Nuevo Codigo
loc_456C9200:
PUSH {R4,R5,LR}
ADD R4, R1, 0
MOV R0, 0
BL sub_456C9286
CMP R0, 0
BEQ loc_456C921C
adr R0, loc_456C937C
MOV R1, 6
MOV R2, 0xC
BL sub_456C9336
loc_456C9218:
LDR R3, off_456C9320
BX R3
loc_456C921C:
BL sub_456C9350
B loc_456C9218
loc_456C9222:
LDR R0, [R4,0x18]
ADD R2, R5, 0
LDR R1, dword_456C925C
BL sub_456C9354
LDR R1, dword_456C9258
LDR R0, [R4,0x18]
LDR R2, off_456C9260
BL sub_456C9354
LDR R2, dword_456C930C
LDR R0, [R4,0x18]
LDR R1, dword_456C9258
BL sub_456C9358
MOV R0, 0
BL sub_456C9286
CMP R0, 0
BEQ loc_456C924E
loc_456C924A:
LDR R2, off_456C9254
BX R2
loc_456C924E:
MOV R0, 1
B loc_456C924A
align 4
off_456C9254 dw 0x450A7244+1
dword_456C9258 dw 0xFB9
dword_456C925C dw 0xFAF
off_456C9260 dw 0x456C92CE+1
loc_456C9264:
ADD R4, R1, 0
MOV R7, 0
MOV R0, 0
BL sub_456C9286
CMP R0, 0
BEQ loc_456C9280
adr R0, loc_456C937C
MOV R5, 6
MOV R2, 0xC
BL sub_456C9336
loc_456C927C:
LDR R3, off_456C9324
BX R3
loc_456C9280:
BL sub_456C9350
B loc_456C927C
sub_456C9286:
PUSH {R4,R5,LR}
LDR R4, loc_456C931C
adr R5, loc_456C9328
CMP R0, 1
BEQ loc_456C92A8
CMP R0, 2
BEQ loc_456C92C2
ADD R0, R4, 0
ADD R1, R5, 0
MOV R2, 0
BL sub_456C934C
BMI loc_456C92A4
MOV R0, 1
POP {R4,R5,PC}
loc_456C92A4:
MOV R0, 0
POP {R4,R5,PC}
loc_456C92A8:
MOV R0, 0
PUSH {R0}
ADD R0, R4, 0
ADD R1, R5, 0
MOV R2, 4
MOV R3, 0xFF
ADD R3, 0x81
BL sub_456C933A
BL sub_456C9344
ADD SP, SP, 4
POP {R4,R5,PC}
loc_456C92C2:
ADD R0, R4, 0
ADD R1, R5, 0
MOV R2, 0
BL sub_456C9348
POP {R4,R5,PC}
loc_456C92CE:
PUSH {R0-R4,LR}
MOV R0, 0
LDR R2, dword_456C9310
PUSH {R0,R1}
MOV R0, 0
BL sub_456C9286
ADD R7, R0, 0
CMP R7, 1
BEQ loc_456C9304
adr R0, loc_456C9398
loc_456C92E4:
MOV R1, 6
MOV R2, 0xC
BL sub_456C9336
ADD R1, R0, 0
LDR R0, dword_456C9314
MOV R3, 1
LDR R4, off_456C9318
BLX R4
CMP R7, 0
BEQ loc_456C9308
MOV R0, 2
loc_456C92FC:
BL sub_456C9286
ADD SP, SP, 8
POP {R0-R4,PC}
loc_456C9304:
adr R0, loc_456C93A8
B loc_456C92E4
loc_456C9308:
MOV R0, 1
B loc_456C92FC
dword_456C930C dw 0x140
dword_456C9310 dw 0xE837
dword_456C9314 dw 0x6FFFFFFF
off_456C9318 dw loc_45533C94+1
loc_456C931C:
ADD R4, R1, R1
ADD R2, R9
off_456C9320 dw loc_450A71FC+1
off_456C9324 dw loc_450A8720+1
loc_456C9328:
LSL R6, R5, 1
LSL R7, R5, 1
LSL R1, R1, 1
LSL R5, R1, 1
LSL R5, R0, 1
LSL R1, R1, 1
LSL R0, R0, 0
sub_456C9336:
LDR R3, off_456C935C
BX R3
sub_456C933A:
var_24 = -0x24
var_20 = -0x20
var_1C = -0x1C
var_18 = -0x18
arg_0 = 0
PUSH {R3}
LDR R3, off_456C9360
MOV R12, R3
POP {R3}
BX R12
sub_456C9344:
LDR R3, off_456C9364
BX R3
sub_456C9348:
LDR R3, off_456C9368
BX R3
sub_456C934C:
LDR R3, off_456C936C
BX R3
sub_456C9350:
var_60 = -0x60
var_5C = -0x5C
var_58 = -0x58
var_48 = -0x48
var_30 = -0x30
LDR R3, off_456C9370
BX R3
sub_456C9354:
LDR R3, off_456C9374
BX R3
sub_456C9358:
LDR R3, off_456C9378
BX R3
off_456C935C dw 0x452FE69C+1
off_456C9360 dw 0x455B4268+1
off_456C9364 dw 0x455B54A0+1
off_456C9368 dw 0x455B4BF4+1
off_456C936C dw 0x455B4ADC+1
off_456C9370 dw 0x450A88C0+1
off_456C9374 dw 0x4519B824+1
off_456C9378 dw 0x4519B90C+1
loc_456C937C:
STRB R0, [R2,9]
STRB R1, [R5,0x19]
STRB R1, [R4,0x11]
MOV R0, 0x65
LDR R5, dword_456C94AC
LDR R1, dword_456C949C
STRB R0, [R2,9]
STRB R7, [R5,0x11]
STR R5, [R4,0x34]
SUB R2, 0x74
LDR R7, dword_456C9414
LSL R6, R5, 1
db 0
align 4
db 0xFF
loc_456C9398:
STRB R0, [R2,9]
STRB R7, [R5,0x11]
STR R5, [R4,0x34]
SUB R2, 0x74
LDR R7, dword_456C9424
LSL R6, R5, 1
db 0
align 4
db 0xFF
loc_456C93A8:
STRB R0, [R2,9]
STRB R7, [R5,0x11]
STR R5, [R4,0x34]
SUB R2, 0x74
LDR R7, dword_456C9434
STR R6, [R4,0x64]
LSL R0, R0, 0
Eso es lo mas que llego a hacer en el asm, me podrian decir cual es el error y Cuales son las Rutas que tengo que portar, Espero que lo demas este Bien Gracias de antemano.
Marcadores