Re: [DISCUSION] Archivos Assembling (ASM)
que tal amigos
estoy iniciandome en esto de portar parches y quiero portar este:
Código:
;C510 SW-R1HA035
;Vibra en una llamada saliente cuando el receptor contesta
;(c) IronMaster
;(p) Ax
;pAtChFiLe=/boot/phone_app.cxc
1504B490: 24342078 27488047
1504B530: 180A0000 A154D215
15D254A0: 00000000000000000000000000000000 24342078FFB581B06846064988470098
15D254B0: 00000000000000000000000000000000 7D21C90032220B1C0668D4003659B047
15D254C0: 0000000000000000 01B0FFBD1DA3DB14
lo tengo en mi c510 y funciona bien pero lo quiero para mi c905 ya cree el asm pero porfavor diganme si esta bien o que estoy haciendo mal, este es el ams:
Código:
include "x.inc" ;<---------- Incluye el archivo necesario a la hora de compilar
org 0x1504B490
STRMI R4, [R0,R7,LSR#16]
ANDNV R7, R0, R1,ROR#16
STMVCDA R1!, {R0,R1,R5,R6,R11-PC}
ANDNV R1, R0, R8,LSR#24
STMCSDA R0, {R0,R1,R3,R4,R6,R11-PC}
ANDCS SP, R1, R1,LSL#2
SBCCSS R11, R10, #0x3C00
STMNEIA LR!, {R1,R4,R6}
STRCSH R6, [R0],-R1
ADDMI R4, R1, #3
ANDCS SP, R2, R2
STMNVDA R4, {R12-PC}^
LDMNVDA R2, {R12-PC}^
TSTLE R0, R0,LSL#16
STRNVB R1, [R6,#-0xC28]
STMCSDA R0, {R0,R2,R11-PC}
STCNE p0, c13, [R8],#-0x2C!
LDMNVDA R0, {R12-PC}^
LDMNVDA R2, {R12-PC}^
TSTLE R1, R2,LSL#16
AND R2, R0, R2
BICNV R2, R12, #1
ANDCS PC, R0, #0x114000
ANDCS R1, R1, R1,LSL R12
LDMNVDA R6, {R12-PC}^
STRNVB R1, [R4,#-0xC28]!
org 0x1504B530
LDRNEB R5, [R2,#0x4A1]
ANDEQ R0, R0, LR,ASR#29
SWIVS 0xFFFFFF
STRNE R12, [R3,#0x504]!
LDRMI R4, [R8,-R0,LSL#22]
LDRNE R9, [R2],#-0x3FD
LDRMI R4, [R8,-R0,LSL#22]
LDRNE R4, [PC],#-0x64D
LDRMI R4, [R8,-R0,LSL#22]
LDRNE R10, [R7],#-0x7F1
LDRMI R4, [R8,-R0,LSL#22]
STRNET R7, [R1],#-0xEA1
LDRMI R4, [R8,-R0,LSL#22]
STRNET R7, [R1],#-0xE6D
LDRMI R4, [R8,-R0,LSL#22]
STRNE R10, [R11],#-0xF95
LDRMI R4, [R8,-R0,LSL#22]
LDRNEB R1, [R9],#0x4D9
LDRMI R4, [R8,-R0,LSL#22]
STRNEB R10, [R6],#-0x7E1
LDRMI R4, [R8,-R0,LSL#22]
STRNE R7, [R10],#-0xD45
LDRMI R4, [R8,-R0,LSL#22]
STRNEB R7, [R1,#-0x775]
LDRMI R4, [R8,-R0,LSL#22]
LDRNEB PC, [R10],#0x6F9
LDRMI R4, [R8,-R0,LSL#22]
STRNEB R8, [R3],#-0x185
STCNE p5, c11, [SP],#-0x1C0
LDCNE p9, c4, [R6],#-0x38
STCNE p10, c4, [R4],#-0x40
UMULLEQ R2, R0, R12, R0
STRLT R1, [R3],#-0x810
ANDCS R2, R1, #off_14000000
ANDCS R2, R0, R4,LSL#2
STRNV R4, [R12,#0x3C0]!
STCNE p13, c15, [R1],#-0x114
ANDLE R11, R8, R2
STMMIDA R7, {R1,R2,R9,R11,LR}
SUBVC R7, SP, R12
ANDNV R8, R0, LR,ASR#32
ANDCS PC, R1, SP,LSL#16
ANDCS R11, R0, R0,ROR SP
;------------------- NEW CODE ----------------------
Org 0x15D254A0
STMVCDA R0!, {R2,R5,R10,R12,SP}
STRLTD R11, [R1],PC
STMMIDB R6, {R3,R5,R6,R9,R10,LR}
STMLSDA R0, {R3,R7-R10,LR}
SBCEQ R2, R9, SP,ROR R1
STCNE p2, c2, [R11],#-0xC8
SBCEQS R6, R4, R6,LSL#16
LDCLTL p0, c11, [PC,#4]!
LDRNEB R10, [R11],#0x31D
y perdonen si tiene muchos errores pero es mi primer ams
saludossssss
Re: [DISCUSION] Archivos Assembling (ASM)
Se me hace muy raro tu asm amigo:
- Según parece esta en CODE32, oprime ALT+G o CTRL+G (No recuerdo) y cambias lo de ROM por un 1.
- Parece que copiaste demaciado codigo en los dos primeros hooks, deveria ser algo asi los primeros dos hooks
Código:
org 0x1504B490:
LDR off_xxxxxxx
BX RX ; <--- La X deberia ser un numero
org 0x1504B530
off_xxxxxxx DCD 0x15D254A0+1
Tambien lo del codigo nuevo esta en CODE32 esa parte se me hace un poco más dificil decirte como sería por que no tengo IDA u_u.
Que bueno que se siguen preocupando por estos temas :D
Re: [DISCUSION] Archivos Assembling (ASM)
gracias a al amigo anarkes por su ayuda volvi a crear el asm y ahora me salio asi:
Código:
include "x.inc"
org 0x1504B490
LDR R0, off_1504B530
BLX R0
LDRB R1, [R4,1]
BL sub_1504B560
LDRB R1, [R4]
ADD R0, R5, 0
BL sub_1504B558
CMP R0, 0
BNE loc_1504B4AA
loc_1504B4A6
MOV R0, 1
POP {R4-R7,PC}
org 0x1504B530
loc_1504B530
STRB R1, [R4,R2]
ASR R2, R2, 0x17
dword_1504B534 dw 0xECE
dword_1504B538 dw 0x6FFFFFFF
org 0x15D254A0
ADD R4, 0x24
LDRB R0, [R4]
PUSH {R0-R7,LR}
SUB SP, SP, 4
MOV R0, SP
LDR R1, off_15D254C4
BLX R1
LDR R0, [SP]
MOVL R1, 0x3E8
MOV R2, 0x32
ADD R3, R1, 0
LDR R6, [R0]
LSL R4, R2, 3
LDR R6, [R6,R4]
BLX R6
ADD SP, SP, 4
POP {R0-R7,PC}
off_15D254C4 dw loc_14DBA31C+1
me pueden decir que estoy haciendo mal por que trate de compilarlo con el arm patch Compiler pero me da este error
Código:
loc_1504B4A6
error: illegal instruction
ademas en el arm patch compiler hay que poner la base addresss y no se cual es ya que estoy creando el asm de un c510 para portarlo a un c905 y ojala los patch porter , los patch master y todos los que tengan conocimiento en el tema se decidieran a crear un nuevo tuto para portar desde cero seria de graan ayuda y mejor si hacen el tuto portando para a2 por que hasta ahorita solo he visto tutoriales para crear el asm pero no para portar
solo es una sugerencia
saludos a todos!!!!!
Re: [DISCUSION] Archivos Assembling (ASM)
Eso ya se ve un poco mejor :D
En el primer hook copiaste código de más deberías de haber copiado hasta 1504B493 debería quedar así
Código:
org 0x1504B490
LDR R0, off_1504B530
BLX R0
¿Como lo se?
Es facil solo debes de ver el parche compilado y te lo dira
1504B490: 24342078 27488047
En la parte izquierda después de los dos puntos esta el código original, y en la derecha esta el código nuevo. Ahora, supe que es hasta el 1504B493 por que solo hice la suma de 4 bytes (creo que son cuatro XD) así
1504B490: 24 27
1504B491: 34 48
1504B492 : 20 80
1504B493: 78 47
Ese codigo debería hacer exactamente lo mismo que en una sola linea
En el segundo hook analizaste mal, en lugar de analizar eso con la tecla C analizalo con la tecla D para que te quede así
Código:
org 0x1504B530
loc_1504B530 DCD 0x15D254A0+1
Hecho eso, el asm debe quedar algo así
Código:
include "x.inc"org 0x1504B490
LDR R0, off_1504B530 ;Carga en R0 lo que exista en off_1504B530
BLX R0 ; Ve, ejecuta lo que esta en R0, y regresa el contador de programa a la siguiente instruccion
org 0x1504B530
loc_1504B530 DCD 0x15D254A0+1 ;Salto hacia codigo nuevo
;Codigo nuevo
org 0x15D254A0: ;Aqui le agregue dos puntos (:) por que se trata de una función
ADD R4, 0x24
LDRB R0, [R4]
PUSH {R0-R7,LR}
SUB SP, SP, 4
MOV R0, SP
LDR R1, off_15D254C4
BLX R1
LDR R0, [SP]
MOVL R1, 0x3E8
MOV R2, 0x32
ADD R3, R1, 0
LDR R6, [R0]
LSL R4, R2, 3
LDR R6, [R6,R4]
BLX R6
ADD SP, SP, 4
POP {R0-R7,PC}
off_15D254C4 dw 0x14DBA31C+1
Sobre la base creo que es 0x14000000 :D
Saludos.
Re: [DISCUSION] Archivos Assembling (ASM)
de nuevo gracias amigo anarkes por ayudarme :a01:
ya volvi a hacer otro asm y me quedo asi:
Código:
include "x.inc"
Org 0x1504B490
LDR R0, off_1504B530
BLX R0
Org 0x1504B530
loc_1504B530 DCD 0x15D254A0+1
Org 0x15D254A0
ADD R4, 0x24
LDRB R0, [R4]
PUSH {R0-R7,LR}
SUB SP, SP, 4
MOV R0, SP
LDR R1, off_15D254C4
BLX R1
LDR R0, [SP]
MOVL R1, 0x3E8
MOV R2, 0x32
ADD R3, R1, 0
LDR R6, [R0]
LSL R4, R2, 3
LDR R6, [R6,R4]
BLX R6
ADD SP, SP, 4
POP {R0-R7,PC}
off_15D254C4 dw loc_14DBA31C+1
pero me sigue dando error al compilar:a19:
me podrian decir por fa en que estoy mal o si me falta algo:a11:
saludos a todos y en especial a anarkes por tomarse la molestia en ayudarme:a12:
Re: [DISCUSION] Archivos Assembling (ASM)
Que tal :D
Si me dijeras que errores te da sería mas fácil, pero según veo el error puede que te lo de en
Código:
off_15D254C4 dw loc_14DBA31C+1
Y eso es por que loc_14DBA31C+1 esta fuera de rango y eso lo se por que es mucho menor a la dirección del código nuevo. En estos casos lo que se debe de hacer es poner la dirección de memoria
Código:
off_15D254C4 dw 0x14DBA31C+1
Re: [DISCUSION] Archivos Assembling (ASM)
Si mal no recuerdo deberia quedar asi:
Cita:
Org 0x1504B490
LDR R0, off_1504B530
BLX R0
Org 0x1504B530
off_1504B530 DCD Newcode+1;<--Este es el codigo nuevo, deberia tener un nombre
Org 0x15D254A0
Newcode:
ADD R4, 0x24
LDB R0, [R4]
Lo marcado en rojo es lo que te faltaba aparte de lo que ya te dijo anarkes pues ese "off_" no estaba nombrado o por asi decirlo, no tenia valor pues le quitaste el enlace, y lo del codigo nuevo deberia estar asi como te lo deje no necesariamente tiene que llamarse "Newcode" pero si necesita un texto, pues ese hook te lleva al cuerpo del parche
Re: [DISCUSION] Archivos Assembling (ASM)
Que tal crac :D
Pues no es que sea TAN necesario, es recomendable eso de newcode cuando la dirección pueda variar.
Esta tan correcto poner una etiqueta, como poner la dirección de memoria, eso depende de gustos :D
newcode+1 = 0x15D254A0+1
Saludos.
Re: [DISCUSION] Archivos Assembling (ASM)
aqui dando lata de nuevo
gracias a anarkes y a cracshot por ayudarme :a32:
gracias a sus consejos el asm me quedo asi
Código:
include "x.inc"
Org 0x1504B490
LDR R0, off_1504B530
BLX R0
Org 0x1504B530
off_1504B530 DCD 0x15D254A0+1
Org 0x15D254A0
ADD R4, 0x24
LDRB R0, [R4]
PUSH {R0-R7,LR}
SUB SP, SP, 4
MOV R0, SP
LDR R1, off_15D254C4
BLX R1
LDR R0, [SP]
MOVL R1, 0x3E8
MOV R2, 0x32
ADD R3, R1, 0
LDR R6, [R0]
LSL R4, R2, 3
LDR R6, [R6,R4]
BLX R6
ADD SP, SP, 4
POP {R0-R7,PC}
off_15D254C4 dw 0x14DBA31C+1
al compilarlo me sale asi:
Código:
1504b490: FF235433 27488047
1504b530: 1DF80028 A154D215
15d254a0: 00000000000000000000000000000000 24342078FFB581B06846064988470098
15d254b0: 00000000000000000000000000000000 7D21C90032220B1C0668D4003659B047
15d254c0: 0000000000000000 01B0FFBD1DA3DB14
y el parche original es asi:
Código:
1504B490: 24342078 27488047
1504B530: 180A0000 A154D215
15D254A0: 00000000000000000000000000000000 24342078FFB581B06846064988470098
15D254B0: 00000000000000000000000000000000 7D21C90032220B1C0668D4003659B047
15D254C0: 0000000000000000 01B0FFBD1DA3DB14
hay unas diferencias por que sera? o asi esta bien? pero no me deberia quedar igualito? o en que falle
gracias por su ayuda amigos
saludosssss:a04:
Re: [DISCUSION] Archivos Assembling (ASM)
Cita:
Iniciado por
zyonyluc
aqui dando lata de nuevo
gracias a anarkes y a cracshot por ayudarme :a32:
gracias a sus consejos el asm me quedo asi
Código:
include "x.inc"
Org 0x1504B490
LDR R0, off_1504B530
BLX R0
Org 0x1504B530
off_1504B530 DCD 0x15D254A0+1
Org 0x15D254A0
ADD R4, 0x24
LDRB R0, [R4]
PUSH {R0-R7,LR}
SUB SP, SP, 4
MOV R0, SP
LDR R1, off_15D254C4
BLX R1
LDR R0, [SP]
MOVL R1, 0x3E8
MOV R2, 0x32
ADD R3, R1, 0
LDR R6, [R0]
LSL R4, R2, 3
LDR R6, [R6,R4]
BLX R6
ADD SP, SP, 4
POP {R0-R7,PC}
off_15D254C4 dw 0x14DBA31C+1
al compilarlo me sale asi:
Código:
1504b490: FF235433 27488047
1504b530: 1DF80028 A154D215
15d254a0: 00000000000000000000000000000000 24342078FFB581B06846064988470098
15d254b0: 00000000000000000000000000000000 7D21C90032220B1C0668D4003659B047
15d254c0: 0000000000000000 01B0FFBD1DA3DB14
y el parche original es asi:
Código:
1504B490: 24342078 27488047
1504B530: 180A0000 A154D215
15D254A0: 00000000000000000000000000000000 24342078FFB581B06846064988470098
15D254B0: 00000000000000000000000000000000 7D21C90032220B1C0668D4003659B047
15D254C0: 0000000000000000 01B0FFBD1DA3DB14
hay unas diferencias por que sera? o asi esta bien? pero no me deberia quedar igualito? o en que falle
gracias por su ayuda amigos
saludosssss:a04:
Aparentemente el parche esta bien pues las lineas que te dan diferencia son los hooks pero no del asm que armaste sino de los que estan en el CXC, a la hora de compilar... usaste un CXC en blanco?? o del mismo modelo??