
Iniciado por
bill_kevin
**me dice al compilar
C:\Armpc>make test.asm w300.raw 44140000
No se encuentra C:\Armpc\test.asm.vkp
flat assembler for ARM version 1.67.22 (1045585 kilobytes memory)
test.asm [10]:
dw loc_456D1ED0+1 ;<---- Es el enlace al codigo nuevo
error: undefined symbol.
Es porque en tu asm no lo tines identificado de esa manera tu pusiste "newcode:" pero tambien pudiste poner "loc_456D1ED0:" y de esa manera no te marcaria ese error

Iniciado por
bill_kevin
**y cuando lo hago haci
dw 0x456D1ED0+1 ;<---- Es el enlace al codigo nuevo
me lo compila el parche haci
441421a6: 5522228006806B469E882E802F80011C D11E6D45D11E6D45FFFF00B50A20084E
441421b6: 00F01DFB211C201C00F019FB291C281C B0474620084EB0470549C820074EB047
441421c6: 00F015FB03B0F0BDC046900400426004 00BD00B50020034EB04700BDFFFFE41E
441421d6: 0042A029004C00C0FFFF550502000280 7D45103E2545B887D644BCEA3945FF00
441421e6: 0000 0000
Eso sucedio porque sustituiste el "org 0x456D1ED0" por "dw 0x456D1ED0+1" y no debias hacer eso, ya que ese org indica en que offset va ir el newcode.

Iniciado por
bill_kevin
** y cuando lo hago haci
org 0x457D1ECB+1 ;<---- Es el enlace al codigo nuevo
me lo compila haci
441421a6: 55222280 D11E6D45
457d1ecc: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00B50A20084EB0474620084EB0470549
457d1edc: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF C820074EB04700BD00B50020034EB047
457d1eec: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00BDFFFFE41E7D45103E2545B887D644
457d1efc: FFFFFFFFFFFFFFFF BCEA3945FF000000
La diferencia es:
456D1F00: FFFFFFFFFFFFFFFF C1EA2945FF000000-----Original
457d1efc: FFFFFFFFFFFFFFFF BCEA3945FF000000-----Port
Esa diferencia es porque cambiaste los offsets originales, como son Entrypoint esos offset estan invertidos. si lo pones normal estarian de esta manera:
4529EAC1 ;---Ese offset esta en tu primer asm
4539EABC ;---No se porque sustituiste el offset anterior por este
Ahora, tu me entendiste mal cuando yo dije que el Hook se analiza con "D" quise decir esta parte:
Código:
;---hook---
org 0x441421A6
SUB R1, R2, 3
CMP R5, SP
La forma correcta seria asi:
Código:
;---hook---
org 0x441421A6
dw loc_456D1ED0+1
Aunque como tu sustituiste el "loc_456D1ECB:" por "newcode:" en tu asm, te marcaria un error al compilar, entonces para arreglarlo ponlo de esta manera:
Código:
;---hook---
org 0x441421A6
dw newcode+1
Veo que en tu asm cambiaste varios offsets incluyendo el hook, talvez los portaste (eso pienso).
Te dejo la manera como deberia estar tu asm ANTES de empesar a portar los offsets
Código:
include "x.inc"
;---hook---
org 0x444F6158
dw newcode+1
;---Estructura del Parche---
org 0x456D1ED0 ; <---Offset (espacio libre en el main)
newcode:
PUSH {LR}
MOV R0, 0xA
LDR R6, off_456D1EF8
BLX R6
MOV R0, 0x46
LDR R6, off_456D1EFC
BLX R6
LDR R1, dword_456D1EF4
MOV R0, 0xC8
LDR R6, off_456D1F00
BLX R6
POP {PC}
PUSH {LR}
MOV R0, 0
LDR R6, off_456D1EFC
BLX R6
POP {PC}
align 4
dword_456D1EF4 dw 0x456D1EE9
off_456D1EF8 dw 0x45153E14+1
off_456D1EFC dw 0x44C687BC+1
off_456D1F00 dw 0x4529EAC0+1
db 0xFF
db 0
db 0
db 0
Ahora solo te faltaria portar los offsets 
Saludos ..
Marcadores