Phenom-Team
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Desemsamblado emms. asesina

Ir abajo

Desemsamblado emms. asesina Empty Desemsamblado emms. asesina

Mensaje  SHARK III Sáb Jul 04, 2009 2:53 pm

Desemblado de una emms, asesina para su xoreo, yo ya la he xoreado y no tiene key, a demas de llevar dos subrrutinas que le ordena la eliminación y otra subrutina la busqueda del módulo I, para buscar el byt 2, un abrazo.
$000000: C14001 CP A,($4001) ; Compara el byte de la direccion $4001 con A
$000003: 007000 BTJT ($70),#00,$0006 ; Si el bit 00 del byte en $70 vale 1 salta a $0006
$000006: 4F CLR A ; Borra A (A=0)
$000007: 095EE7 BTJF ($5E),#04,$FFF1 ; Si el bit 04 del byte en $5E vale 0 salta a $FFF1
$00000A: 55 db.b 55
$00000B: F6 LD A,(X) ; Carga en A el valor del byte de la direccion que hay en X
$00000C: 9B SIM ; Activa el bit I
$00000D: E76A LD ($6A,X),A ; Guarda el valor de A en la direccion ($6A+X)
$00000F: 1CBF BSET ($BF),#06 ; Activa el bit 06 del byte en $BF
$000011: D4C06E AND A,($C06E,X) ; Hace el AND del byte de la direccion ($C06E+X) con A
$000014: 17B2 BRES ($B2),#03 ; Desactiva el bit 03 del byte en $B2
$000016: 35 db.b 35
$000017: 84 POP A ; Recupera un byte del stack y lo pone en A
$000018: B9CD ADC A,($CD) ; Suma con acarreo el byte de la direccion $CD con A
$00001A: 9C RSP ; Resetea el stack pointer
$00001B: 50 NEG X ; Complemento a 2 del registro X (cambiar de signo)
$00001C: FC JMP (X) ; Salta a la direccion que hay en X
$00001D: 95 LD S,A ; Guarda en el stack el valor de A
$00001E: F2 SBC A,(X) ; Resta con acarreo el byte de la direccion que hay en X de A
$00001F: B5F5 BCP A,($F5) ; Comparacion de Bit del byte de la direccion $F5 con A
$000021: D45A99 AND A,($5A99,X) ; Hace el AND del byte de la direccion ($5A99+X) con A
$000024: DB6F2E ADD A,($6F2E,X) ; Suma el byte de la direccion ($6F2E+X) con A
$000027: 44 SRL A ; Desplaza un bit a la derecha el registro A (dividir entre 2)
$000028: 3C00 INC ($00) ; Suma 1 al byte que esta en $00
$00002A: 48 SLL A ; Desplaza un bit a la izquierda el registro A (multiplicar por 2)
$00002B: 9C RSP ; Resetea el stack pointer
$00002C: 57 SRA X ; Desplaza hacia la derecha todos los bits de X menos el 7(signo)
$00002D: 7D TNZ (X) ; Comprueba si el byte de la direccion que hay en X es negativo o Cero
$00002E: B3C1 CP X,($C1) ; Compara el byte de la direccion $C1 con X
$000030: 7E SWAP (X) ; Da la vuelta a los nibbles del byte de la direccion X
$000031: 3943 RLC ($43) ; Rota un bit hacia la izquierda el byte que esta en $43
$000033: D21CA3 SBC A,($1CA3,X) ; Resta con acarreo el byte de la direccion ($1CA3+X) de A
$000036: 87 ERET ; Vuelve de una Subrutina

$000037: 70 NEG (X) ; Complemento a 2 del byte de la direccion que hay en X
$000038: B273 SBC A,($73) ; Resta con acarreo el byte de la direccion $73 de A
$00003A: 29F2 JRH $002E ; Si H = 1 salta a $002E
$00003C: 2B37 JRMI $0075 ; Si N = 1 salta a $0075
$00003E: 62 db.b 62
$00003F: ECC6 JMP $C6,X ; Salta a la direccion ($C6+X)
$000041: 96 LD X,S ; Guarda en X el valor del stack
$000042: 9C RSP ; Resetea el stack pointer
$000043: 2ED0 JRIL $0015 ; Si la linea de Intrrrupcion es baja salta a $0015
$000045: D2A1E8 SBC A,($A1E8,X) ; Resta con acarreo el byte de la direccion ($A1E8+X) de A
$000048: 27B9 JREQ $0003 ; Si Z = 1 salta a $0003
$00004A: 13D0 BRES ($D0),#01 ; Desactiva el bit 01 del byte en $D0
$00004C: 0C94DC BTJT ($94),#06,$002B ; Si el bit 06 del byte en $94 vale 1 salta a $002B
$00004F: 3FBB CLR ($BB) ; Borra el byte que esta en $BB
$000051: 45 db.b 45
$000052: 21CA JRF $001E ; No Saltes a $001E (lo mismo que NOP NOP)
$000054: 1557 BRES ($57),#02 ; Desactiva el bit 02 del byte en $57
$000056: F3 CP X,(X) ; Compara el byte de la direccion que hay en X con X
$000057: CE0AF9 LD X,($0AF9) ; Carga en X el valor del byte de la direccion $0AF9
$00005A: 2EA8 JRIL $0004 ; Si la linea de Intrrrupcion es baja salta a $0004
$00005C: 93 LD X,Y ; Guarda en X el valor de Y
$00005D: B521 BCP A,($21) ; Comparacion de Bit del byte de la direccion $21 con A
$00005F: B58E BCP A,($8E) ; Comparacion de Bit del byte de la direccion $8E con A
$000061: FD CALL (X) ; Ejecuta la subrutina de la direccion que hay en X
$000062: 42 MUL X,A ; Multiplica X por A
$000063: 263D JRNE $00A2 ; Si Z = 0 salta a $00A2
$000065: 6D15 TNZ ($15,X) ; Comprueba si el byte que hay en ($15+X) es negativo o Cero
$000067: B112 CP A,($12) ; Compara el byte de la direccion $12 con A
$000069: 9A RIM ; Desactiva el bit I
$00006A: 70 NEG (X) ; Complemento a 2 del byte de la direccion que hay en X
$00006B: B62E LD A,($2E) ; Carga en A el valor del byte de la direccion $2E
$00006D: 6D07 TNZ ($07,X) ; Comprueba si el byte que hay en ($07+X) es negativo o Cero
$00006F: 62 db.b 62
$000070: FB ADD A,(X) ; Suma el byte de la direccion que hay en X con A
$000071: C99C99 ADC A,($9C99) ; Suma con acarreo el byte de la direccion $9C99 con A
$000074: 78 SLL (X) ; Desplaza un bit a la izquierda el byte de la direccion que hay en X
SHARK III
SHARK III
Admin

Cantidad de envíos : 14
Puntos : 32
Reputación : 6
Fecha de inscripción : 29/06/2009

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.