Resultados 1 al 3 de 3
  1. #1
    Top Sony Administrador Avatar de Cr@cShoT
    Fecha de ingreso
    24/feb/2008
    Ubicación
    Puno - Perú
    Móvil
    Lg G2 D805
    Mensajes
    4.322

    Crear tus propios archivos *.asm

    Bueno, en esta ocacion les dare una pequeña guia, facil y directa para que puedan crear sus propios archivos *.asm y asi puedan portar sus propios parches

    NOTA: Como dije, sera el metodo mas sencillo el que pondre aqui (a mi parecer), ya que ningun usuario arma un archivo *.asm de la misma forma, cada uno tiene su propio "estilo" de hacerlo...

    1.- Para empezar... deberan abrir su Firmware usando ciertos plugins que ya fue explicado aqui

    abrir raw de tu main y tu main en IDA PRO V.x

    En este tema, encontraran el Ida PRO, y los plugin, en el primer post esta los plugins para DB2020 que trabaja con Base *.raw y en el segundo post encuentran el plugin para A2, que trabaja con Base *.cxc

    2.- Una vez que este abierto su firmware, necesitaran, dos archivos *.idc en la carpeta con el mismo nombre dentro de ida (Applypatch y Undopatch) que estan adjuntados en este mensaje.

    3.- Empezemos... Usaremos este parche, creo que tiene el tamaño indicado:

    Parche VKP;W705 R1GA031
    ;Change way of showing windows "Play mode", "Visualizations", "Visualizations/Visualizations" and "Stereo widening"
    ;v. fix
    ;(c) jamesbond22
    ;(p) Cr@cShoT

    14cd1692: 2068022100F06DF82068 014B1847FFFF61C6D815
    153ba11c: 7F49A4F091FF2068 004B184777C6D815
    153ba298: 2049A4F0D3FE2868 004B184793C6D815
    153ba152: 1549A4F076FF20680221 014B1847FFFFB1C6D815

    15d8c660: 00000000000000000000000000000000 20680221204B9847206809211F4B9847
    15d8c670: 00000000000000000000000000000000 2068174B18471A491D4B984720680021
    15d8c680: 00000000000000000000000000000000 194B984720680921184B98472068114B
    15d8c690: 00000000000000000000000000000000 18471349164B984728680021124B9847
    15d8c6a0: 00000000000000000000000000000000 28680921114B98472868391C0A4B1847
    15d8c6b0: 00000000000000000000000000000000 0C490F4B9847206800210B4B98472068
    15d8c6c0: 00000000000000000000000000000000 09210A4B984720680221044B1847FFFF
    15d8c6d0: 00000000000000000000000000000000 9D16CD1425A13B15A1A23B155DA13B15
    15d8c6e0: 00000000000000000000000000000000 EF130000DD130000CDAD0B1489AE1214
    15d8c6f0: 00000000 296B4414


    Breve explicacion:

    Comentarios:

    ;W705 R1GA031
    ;Change way of showing windows "Play mode", "Visualizations", "Visualizations/Visualizations" and "Stereo widening"
    ;v. fix
    ;(c) jamesbond22
    ;(p) Cr@cShoT


    Hooks:

    14cd1692: 2068022100F06DF82068 014B1847FFFF61C6D815
    153ba11c: 7F49A4F091FF2068 004B184777C6D815
    153ba298: 2049A4F0D3FE2868 004B184793C6D815
    153ba152: 1549A4F076FF20680221 014B1847FFFFB1C6D815


    Codigo nuevo:

    15d8c660: 00000000000000000000000000000000 20680221204B9847206809211F4B9847
    15d8c670: 00000000000000000000000000000000 2068174B18471A491D4B984720680021
    15d8c680: 00000000000000000000000000000000 194B984720680921184B98472068114B
    15d8c690: 00000000000000000000000000000000 18471349164B984728680021124B9847
    15d8c6a0: 00000000000000000000000000000000 28680921114B98472868391C0A4B1847
    15d8c6b0: 00000000000000000000000000000000 0C490F4B9847206800210B4B98472068
    15d8c6c0: 00000000000000000000000000000000 09210A4B984720680221044B1847FFFF
    15d8c6d0: 00000000000000000000000000000000 9D16CD1425A13B15A1A23B155DA13B15
    15d8c6e0: 00000000000000000000000000000000 EF130000DD130000CDAD0B1489AE1214
    15d8c6f0: 00000000 296B4414


    Abrimos Ida, no dirigimos a File/IDC File, y alli buscamos el Applypatch.idc, seleccionamos y nos saldra una ventana buscando nuestro vkp a portar, lo seleccionamos y nos saldra un mensaje como este:

    Pulsa en la imagen para verla en tamaño completo

Nombre: 33595327.jpg
Visitas: 285
Tamaño: 7,9 KB
ID: 79055


    Le daremos que SI y nuestro parche comenzara a aplicarse.

    4.- Ahora en el *.vkp iremos al full offset donde inicia nuestro codigo nuevo, en este caso 15d8c660, para ello, presionamos la tecla "G" en el Ida y ponemos ahi nuestro full offset

    5.- Comenzamos a analizar con la Tecla "C" el codigo, pero tendremos cuidado con los Entrypoint, ya que esos se analizan con "D"

    Pulsa en la imagen para verla en tamaño completo

Nombre: 73399404.jpg
Visitas: 302
Tamaño: 84,1 KB
ID: 79056


    Pulsa en la imagen para verla en tamaño completo

Nombre: 36708951.jpg
Visitas: 295
Tamaño: 101,0 KB
ID: 79057


    En las imagenes que les puse, fue solo para referencia... pues muestra de donde a donde se analizo el parche, facilmente uno se da cuenta al mirar los offsets del parche o cuando en el IDA dan solo ceros.

    5.- Una vez terminado de analizar todo el codigo nuevo, lo que hares es seleccionar toda la parte analizada, sea con mouse o con Alt+L y desplazarnos por todo el codigo, una vez seleccionado, presionamos Alt+F10 y guardemos nuestro nuestro ASM.

    Este es nuestro *.asm

    Código:
    ;
    ; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    ; º    This file is generated by The Interactive Disassembler (IDA)        º
    ; º    Copyright (c) 2006 by DataRescue sa/nv,    <ida@datarescue.com>        º
    ; º Licensed to: Paul Ashton - Blue Lane Technologies (1-user Advanced 03/2006)    º
    ; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    ;
    
    
    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
            LDR    R0, [R4]
            MOV    R1, #2
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, #9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D0
            BX    R3
    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, #0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, #9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D4
            BX    R3
    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, #0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, #9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R5]
            ADD    R1, R7,    #0
            LDR    R3, off_15D8C6D8
            BX    R3
    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
            LDR    R1, dword_15D8C6E4
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, #0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, #9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, #2
            LDR    R3, off_15D8C6DC
            BX    R3
    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
            DCB 0xFF
            DCB 0xFF
    off_15D8C6D0    DCD loc_14CD169C+1    ; DATA XREF: ROM:15D8C672r
    off_15D8C6D4    DCD loc_153BA124+1    ; DATA XREF: ROM:15D8C68Er
    off_15D8C6D8    DCD loc_153BA2A0+1    ; DATA XREF: ROM:15D8C6ACr
    off_15D8C6DC    DCD loc_153BA15C+1    ; DATA XREF: ROM:15D8C6CAr
    dword_15D8C6E0    DCD 0x13EF        ; DATA XREF: ROM:15D8C676r
                        ; ROM:15D8C692r
    dword_15D8C6E4    DCD 0x13DD        ; DATA XREF: ROM:15D8C6B0r
    off_15D8C6E8    DCD loc_140BADCC+1    ; DATA XREF: ROM:15D8C664r
                        ; ROM:15D8C680r ...
    off_15D8C6EC    DCD loc_1412AE88+1    ; DATA XREF: ROM:15D8C66Cr
                        ; ROM:15D8C688r ...
    off_15D8C6F0    DCD loc_14446B28+1    ; DATA XREF: ROM:15D8C678r
                        ; ROM:15D8C694r ...
    Para mejor comprension, es mejor quitarle los textos antecedidos de un ";" (comentarios) y de esa forma armar los hooks:

    Código:
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D4
            BX    R3
    
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R5]
            ADD    R1, R7,    0
            LDR    R3, off_15D8C6D8
            BX    R3
    
            LDR    R1, dword_15D8C6E4
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 2
            LDR    R3, off_15D8C6DC
            BX    R3
    
            align 4
    off_15D8C6D0    dw loc_14CD169C+1    
    off_15D8C6D4    dw loc_153BA124+1    
    off_15D8C6D8    dw loc_153BA2A0+1    
    off_15D8C6DC    dw loc_153BA15C+1    
    dword_15D8C6E0    dw 0x13EF        
                        
    dword_15D8C6E4    dw 0x13DD        
    off_15D8C6E8    dw loc_140BADCC+1    
                        
    off_15D8C6EC    dw loc_1412AE88+1    
                        
    off_15D8C6F0    dw loc_14446B28+1
    6.- Ahora armemos los hooks, para hacerlo facilmente, agreguemos un "Org" con el full offsets en Hexadecimal, y como nuestro Parte tiene 4 hooks, agreguemos 4 "Org", mas o menos asi:

    Código:
    include "x.inc"    ;<---------- Incluye el archivo necesario a la hora de compilar
    
    Org
    
    Org
    
    Org
    
    Org
    
    ;------------------- NEW CODE ----------------------
    
    Org
    loc_15d8c660:
            LDR    R0, [R4]
            MOV    R1, 2
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D0
            BX    R3
    
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D4
            BX    R3
    
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R5]
            ADD    R1, R7,    0
            LDR    R3, off_15D8C6D8
            BX    R3
    
            LDR    R1, dword_15D8C6E4
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 2
            LDR    R3, off_15D8C6DC
            BX    R3
    
            align 4
    off_15D8C6D0    dw loc_14CD169C+1    
    off_15D8C6D4    dw loc_153BA124+1    
    off_15D8C6D8    dw loc_153BA2A0+1    
    off_15D8C6DC    dw loc_153BA15C+1    
    dword_15D8C6E0    dw 0x13EF        
                        
    dword_15D8C6E4    dw 0x13DD        
    off_15D8C6E8    dw loc_140BADCC+1    
                        
    off_15D8C6EC    dw loc_1412AE88+1    
                        
    off_15D8C6F0    dw loc_14446B28+1
    7.- Armamos los hooks. Nos ubicamos en el primer hook, en este caso es 14cd1692, vamos al Ida, presionamos "G" nuevamente y colocamos el full offset, ahora analizamos ese codigo con la tecla "C":

    Pulsa en la imagen para verla en tamaño completo

Nombre: 13577493.jpg
Visitas: 281
Tamaño: 22,4 KB
ID: 79058


    Copiamos las instrucciones para que nos quede asi:

    Código:
    Org 0x14CD1692 ; <--- Offset en Hexa, es decir con el 0x por delante
                           LDR     R3, off_14CD1698
                           BX      R3
                              DCB 0xFF
                              DCB 0xFF
     off_14CD1698    DCD loc_15D8C660+1 ;<---- Enlace con el Codigo nuevo
    Haremos lo mismo con los demas hooks hasta que nos quede asi el *.asm:

    Código:
    include "x.inc"    ;<---------- Incluye el archivo necesario a la hora de compilar
    
    Org 0x14CD1692
                           LDR     R3, off_14CD1698
                           BX      R3
                              DCB 0xFF
                              DCB 0xFF
     off_14CD1698    DCD loc_15D8C660+1 ;<---- Enlace al inicio del codigo nuevo
    
    
    Org 0x153BA11C
                           LDR     R3, off_153BA120
                           BX      R3
     off_153BA120    DCD loc_15D8C676+1 ;<---- Enlace al codigo nuevo 
    
    
    Org 0x153BA298
                           LDR     R3, off_153BA29C
                           BX      R3
     off_153BA29C    DCD loc_15D8C692+1 ;<---- Enlace al codigo nuevo
    
    
    Org 0x153BA152
                           LDR     R3, off_153BA158
                           BX      R3
                              DCB 0xFF
                              DCB 0xFF
     off_153BA158    DCD loc_15D8C6B0+1 ;Enlace al codigo nuevo
    
    
    ;------------------- NEW CODE ----------------------
    
    Org 0x15d8c660  ;<--- Aqui deberan poner en donde se iniciara el codigo nuevo
    loc_15d8c660:
            LDR    R0, [R4]
            MOV    R1, 2
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D0
            BX    R3
    loc_15D8C676: ; Enlace del 2º Hook
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D4
            BX    R3
    loc_15D8C692: ; Enlace del 3º Hook
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R5]
            ADD    R1, R7,    0
            LDR    R3, off_15D8C6D8
            BX    R3
    loc_15D8C6B0: ; Enlace del 4º Hook
            LDR    R1, dword_15D8C6E4
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 2
            LDR    R3, off_15D8C6DC
            BX    R3
    
            align 4
    off_15D8C6D0    dw loc_14CD169C+1    
    off_15D8C6D4    dw loc_153BA124+1    
    off_15D8C6D8    dw loc_153BA2A0+1    
    off_15D8C6DC    dw loc_153BA15C+1    
    dword_15D8C6E0    dw 0x13EF        
                        
    dword_15D8C6E4    dw 0x13DD        
    off_15D8C6E8    dw loc_140BADCC+1    
                        
    off_15D8C6EC    dw loc_1412AE88+1    
                        
    off_15D8C6F0    dw loc_14446B28+1
    8.- Ahora solo cambiamos los loc_ o sub_ o unk_ por "0x" para compilar y que son los full offsets a portar, asi:

    Código:
    include "x.inc"    ;<---------- Incluye el archivo necesario a la hora de compilar
    
    Org 0x14CD1692 ; <--- Para portar
                           LDR     R3, off_14CD1698
                           BX      R3
                              DCB 0xFF
                              DCB 0xFF
     off_14CD1698    DCD loc_15D8C660+1 ;<---- Enlace al inicio del codigo nuevo
    
    
    Org 0x153BA11C ; <--- Para portar
                           LDR     R3, off_153BA120
                           BX      R3
     off_153BA120    DCD loc_15D8C676+1 ;<---- Enlace al codigo nuevo 
    
    
    Org 0x153BA298 ; <--- Para portar
                           LDR     R3, off_153BA29C
                           BX      R3
     off_153BA29C    DCD loc_15D8C692+1 ;<---- Enlace al codigo nuevo
    
    
    Org 0x153BA152 ; <--- Para portar
                           LDR     R3, off_153BA158
                           BX      R3
                              DCB 0xFF
                              DCB 0xFF
     off_153BA158    DCD loc_15D8C6B0+1 ;Enlace al codigo nuevo
    
    
    ;------------------- NEW CODE ----------------------
    
    Org 0x15d8c660  ;<--- Aqui deberan poner en donde se iniciara el codigo nuevo
    loc_15d8c660:
            LDR    R0, [R4]
            MOV    R1, 2
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D0
            BX    R3
    loc_15D8C676: ; Enlace del 2º Hook
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            LDR    R3, off_15D8C6D4
            BX    R3
    loc_15D8C692: ; Enlace del 3º Hook
            LDR    R1, dword_15D8C6E0
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R5]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R5]
            ADD    R1, R7,    0
            LDR    R3, off_15D8C6D8
            BX    R3
    loc_15D8C6B0: ; Enlace del 4º Hook
            LDR    R1, dword_15D8C6E4
            LDR    R3, off_15D8C6F0
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 0
            LDR    R3, off_15D8C6E8
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 9
            LDR    R3, off_15D8C6EC
            BLX    R3
            LDR    R0, [R4]
            MOV    R1, 2
            LDR    R3, off_15D8C6DC
            BX    R3
    
            align 4
    off_15D8C6D0    dw 0x14CD169C+1    ; <--- Para portar
    off_15D8C6D4    dw 0x153BA124+1    ; <--- Para portar
    off_15D8C6D8    dw 0x153BA2A0+1    ; <--- Para portar
    off_15D8C6DC    dw 0x153BA15C+1    ; <--- Para portar
    dword_15D8C6E0    dw 0x13EF        
                        
    dword_15D8C6E4    dw 0x13DD        
    off_15D8C6E8    dw 0x140BADCC+1    ; <--- Para portar
                        
    off_15D8C6EC    dw 0x1412AE88+1    ; <--- Para portar
                        
    off_15D8C6F0    dw 0x14446B28+1    ; <--- Para portar
    Cosas a cambiar antes de la compilacion:

    - Remover los # cuando aparezcan
    - ADDS por ADD
    - MOVS por MOV
    - MOVLS por MOVL
    - ADR por adr
    - LSRS por LSR
    - LSLS por LSL
    - 0xFF(x2) por Align 4, Ejemplo:

    En el primer hook:

    Código:
    Org 0x14CD1692 ; <--- Para portar
                           LDR     R3, off_14CD1698
                           BX      R3
                              DCB 0xFF
                              DCB 0xFF
     off_14CD1698    DCD loc_15D8C660+1 ;<---- Enlace al inicio del codigo nuevo
    Debe quedar asi:

    Código:
    Org 0x14CD1692 ; <--- Para portar
                           LDR     R3, off_14CD1698
                           BX      R3
    align 4
     off_14CD1698    DCD loc_15D8C660+1 ;<---- Enlace al inicio del codigo nuevo
    Listo!!, ya tenemos el primero paso para comenzar a portar parches.

    - Recuerden que trate de hacerlo lo mas sencillo posible, asi que se aceptan criticas o mejores metodos de otros portadores que tenemos en el foro.

    Dudas en este tema:

    [Discusión] Archivos Assembling (ASM)

    Saludos!
    Archivos adjuntados
    Última edición por DaRkMaN; 13/11/2010 a las 03:27:51

  2. #2
    Developer Avatar de albertnet3
    Fecha de ingreso
    02/dic/2008
    Ubicación
    bs as argentina
    Móvil
    W705 R1GA031/w5
    Mensajes
    1.187

    Respuesta: Crear tus propios archivos *.asm

    Y esto seria:
    Como poner Nuevo código a un Parche y Como se redirecciona un Parche:
    también ahí dos formas de poner el nuevo código a un parche vkp:
    1- La mas fácil diría yo fijarse en algún patch addres( ósea donde se ponen que espacio fueron usados para no repetir el mismo espacio usado por otro parche para no generar miss match) y al ultimo espacio usado sumarle en hex. +10.
    Ejemplo:
    si el ultimo Offset usado en un parche es este:
    15d8c660 le sumamos +10 y ya tenemos nuestro espacio sin usar para usarlo en nuestro parche ya sea Port o creado por nosotros mismos y daría como resultado este Offset teniendo en cuenta que ya le sumamos +10 en hex. 15d8c670
    2-
    la otra manera es redireccionando a que me refiero con redireccionar pues es simple se usa como base el Offset del nuevo código y se ase una simple cuenta para obtener nuestro Offset libre para usar en nuestro parche ejemplo:
    si el parche del w610-R1CA001 orange
    uso como nuevo código este Offset
    44298380 y lo queremos redireccionar a nuestro nuevo código ya que ese Offset que se uso en w610 ya esta usado en nuestro w580 R8BE001 y en nuestro teléfono el disponible es este Offset 45C5C700
    tenemos que hacer esto si nuestro nuevo código es mayor al nuevo código usado en el parche original (original me refiero al vkp del cual armaron el ASM) se hace la siguiente cuenta con la calculadora de Windows en hex. 45C5C700 -44298380 =19C4380 y a es a este resultado lo pasamos a decimal
    HEX=
    19C4380
    DEC=27018112
    y se lo sumamos al Offset original del parche quedando así de esta forma:
    org 0x
    44298380+27018112
    y al compilar el vkp ya portado saldrá ya redireccionado y saldrá con el
    nuevo código nuestro

    Parche VKP45C5C700: 000000000 topsonytopsony


    y si el parche del w610-R1CA001 orange
    uso como nuevo código este Offset
    45C5C700 y lo queremos redireccionar a nuestro nuevo código ya que ese Offset que se uso en w610 ya esta usado en nuestro w580 R8BE001 y en nuestro teléfono el disponible es este Offset 44298380
    tenemos que hacer esto si nuestro nuevo código es mayor al nuevo código usado en el parche original (original me refiero al vkp del cual armaron el ASM) se hace la siguiente cuenta con la calculadora de Windows en hex. 45C5C700 -44298380 =19C4380 y a es a este resultado lo pasamos a decimal
    HEX=
    19C4380
    DEC=27018112
    y se lo sumamos al Offset original del parche quedando así de esta forma:
    org 0x
    45C5C700 -27018112
    y al compilar el vkp ya portado saldrá ya redireccionado y saldrá con el
    nuevo código nuestro
    Parche VKP44298380: 000000000 topsonytopsony
    Última edición por albertnet3; 26/10/2010 a las 16:04:15

  3. #3
    Developer Avatar de albertnet3
    Fecha de ingreso
    02/dic/2008
    Ubicación
    bs as argentina
    Móvil
    W705 R1GA031/w5
    Mensajes
    1.187

    Respuesta: Crear tus propios archivos *.asm

    como analizar textos en IDA Codificación ASCII y Unicode
    Bueno les voy a explicar como analizar los textos en el IDA mayor mente los parches que contienen textos se les dicen strings y pues se analizan donde comienza el texto no se analiza con la tecla "c" ni "D" sino con la tecla "A":
    ejemplo así esta en el IDA:


    Código:
    ROM:45CFCF04 4D                          DCB 0x4D ; M
    ROM:45CFCF05 79                          DCB 0x79 ; y
    ROM:45CFCF06 20                          DCB 0x20
    ROM:45CFCF07 53                          DCB 0x53 ; S
    ROM:45CFCF08 68                          DCB 0x68 ; h
    ROM:45CFCF09 6F                          DCB 0x6F ; o
    ROM:45CFCF0A 72                          DCB 0x72 ; r
    ROM:45CFCF0B 74                          DCB 0x74 ; t
    ROM:45CFCF0C 63                          DCB 0x63 ; c
    ROM:45CFCF0D 75                          DCB 0x75 ; u
    ROM:45CFCF0E 74                          DCB 0x74 ; t
    ROM:45CFCF0F 73                          DCB 0x73 ; s
    ROM:45CFCF10 20                          DCB 0x20
    ROM:45CFCF11 76                          DCB 0x76 ; v
    ROM:45CFCF12 31                          DCB 0x31 ; 1
    ROM:45CFCF13 2E                          DCB 0x2E ; .
    ROM:45CFCF14 31                          DCB 0x31 ; 1
    ROM:45CFCF15 0A                          DCB  0xA
    ROM:45CFCF16 A9                          DCB 0xA9 ; ®
    ROM:45CFCF17 20                          DCB 0x20
    ROM:45CFCF18 61                          DCB 0x61 ; a
    ROM:45CFCF19 6C                          DCB 0x6C ; l
    ROM:45CFCF1A 62                          DCB 0x62 ; b
    ROM:45CFCF1B 65                          DCB 0x65 ; e
    ROM:45CFCF1C 72                          DCB 0x72 ; r
    ROM:45CFCF1D 74                          DCB 0x74 ; t
    ROM:45CFCF1E 6E                          DCB 0x6E ; n
    ROM:45CFCF1F 65                          DCB 0x65 ; e
    ROM:45CFCF20 74                          DCB 0x74 ; t
    ROM:45CFCF21 33                          DCB 0x33 ; 3
    ROM:45CFCF22 0A                          DCB  0xA
    ROM:45CFCF23 77                          DCB 0x77 ; w
    ROM:45CFCF24 77                          DCB 0x77 ; w
    ROM:45CFCF25 77                          DCB 0x77 ; w
    ROM:45CFCF26 2E                          DCB 0x2E ; .
    ROM:45CFCF27 74                          DCB 0x74 ; t
    ROM:45CFCF28 6F                          DCB 0x6F ; o
    ROM:45CFCF29 70                          DCB 0x70 ; p
    ROM:45CFCF2A 73                          DCB 0x73 ; s
    ROM:45CFCF2B 6F                          DCB 0x6F ; o
    ROM:45CFCF2C 6E                          DCB 0x6E ; n
    ROM:45CFCF2D 79                          DCB 0x79 ; y
    ROM:45CFCF2E 2E                          DCB 0x2E ; .
    ROM:45CFCF2F 63                          DCB 0x63 ; c
    ROM:45CFCF30 6F                          DCB 0x6F ; o
    ROM:45CFCF31 6D                          DCB 0x6D ; m

    Y analizado con la tecla "A" quedaría así:
    Código:
    ROM:45CFCF04 4D 79 20 53+aMyShortcutsV1_ DCB "My Shortcuts v1.1",0xA
    ROM:45CFCF04 68 6F 72 74+                DCB "® albertnet3",0xA
    ROM:45CFCF04 63 75 74 73+                DCB "www.topsony.com",0
    ROM:45CFCF33 FF                          DCB 0xFF


    Esta codificación se llama ASCII
    y también puede reemplazar el DCB por db quedando así:

    Código:
    aMyShortcutsV1_ db "My Shortcuts v1.1",0xA
                    db "® albertnet3",0xA
                    db "www.topsony.com",0
                    db 0xFF

    Después también puede estar así el texto en codificación unicode:

    Código:
    ROM:45CFCEA8 4D  unk_45CFCEA8    DCB 0x4D ; M            
    ROM:45CFCEA9 00                          DCB    0
    ROM:45CFCEAA 79                          DCB 0x79 ; y
    ROM:45CFCEAB 00                          DCB    0
    ROM:45CFCEAC 20                          DCB 0x20
    ROM:45CFCEAD 00                          DCB    0
    ROM:45CFCEAE 45                          DCB 0x45 ; E
    ROM:45CFCEAF 00                          DCB    0
    ROM:45CFCEB0 6C                          DCB 0x6C ; l
    ROM:45CFCEB1 00                          DCB    0
    ROM:45CFCEB2 66                          DCB 0x66 ; f
    ROM:45CFCEB3 00                          DCB    0
    ROM:45CFCEB4 73                          DCB 0x73 ; s
    También se puede analizar con la tecla "A" y les quedaría así:
    Código:
    ROM:45CFCEA8 4D 00       aM_0            DCB "M",0              
    ROM:45CFCEAA 79 00       aY              DCB "y",0
    ROM:45CFCEAC 20 00                       DCB " ",0
    ROM:45CFCEAE 45 00       aE              DCB "E",0
    ROM:45CFCEB0 6C 00       aL              DCB "l",0
    ROM:45CFCEB2 66 00       aF_0            DCB "f",0
    ROM:45CFCEB4 73 00       aS_0            DCB "s",0
    Y también pueden reemplazar el DCB por db quedando así:

    Código:
           aM_0       db "M",0              
           aY             db "y",0
                         db " ",0
           aE             db "E",0
           aL             db "l",0
           aF_0       db "f",0
           aS_0       db "s",0
    pero para este tipo de codificación es mejor analizarlo como el tipo de code que es y no con la tecla "A" ya que "A" es para la codificación ASCII y en este caso el tipo de string es unicode entonces deben de analizarlo como unicode parra ello tienen que ir a la opción que esta en su IDA arriba a su izquierda que es una opción de una S entre comillas así "S" dan clic ahí y les dará las opciones que trae el ida para las codificaciones de las strings entonces una ves que están en donde empieza la string en este caso comienza en la M se van a esa opción que les nombre de la "S" y tildan la opción unicode y les analizara el texto de la siguiente forma:




    Código:
    ROM:45CFCEA8 4D 00 79 00+aMyElfs         unicode 0, <My Elfs>,0
    Una ves que les quedo así deben de limpiarlo para que luego el compilador lo reconozco como texto y les compile reemplazando el unicode por du y reemplazando el 0, < por un " y el > por un " quedándoles así:

    Código:
    aMyElfs         du "My Elfs",0

    Última edición por albertnet3; 23/11/2010 a las 18:27:44

Información de tema

Usuarios viendo este tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas similares

  1. Respuestas: 1
    Último mensaje: 21/03/2009, 05:28:04
  2. Como crear tus propios imy's
    Por D-Saztrozo en el foro Ringtones
    Respuestas: 0
    Último mensaje: 08/02/2009, 02:47:44
  3. como puedo crear yo mis propios iconos del menu!!
    Por machinpist en el foro Iconos del Menú
    Respuestas: 3
    Último mensaje: 15/01/2009, 14:25:37
  4. como crear mis propios parches
    Por xfocox en el foro Parches & Scripts
    Respuestas: 1
    Último mensaje: 16/12/2008, 07:29:34
  5. Respuestas: 0
    Último mensaje: 08/05/2007, 22:21:02

Etiquetas para este tema

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •