Bueno siguiendo con el tema del crack para esta aplicación
https://dl.dropboxusercontent.com/u/71932290/demo.exe1. Inicialmente tenia el problema de empezar a debuggear porque tenia la función
IsDebuggerPresent, este logre pasarlo mediante analisis de código y con el Olly que me paso
tincopasan que fue esté
http://www.mediafire.com/download/n4cfbfhzgnalmks/temp.rarDespués empece a buscar el punto donde se ingresa el seria que se compone de la siguiente estructura:
Numero de Serie: 123 - 12345 - 12345
Identificador: 9482F5FEA75B983E
Clave: Indefinido
Llegue al punto donde se empieza a evaluar los grupos del número de serie
De ahí pues imagino que tengo que empezar a pasar con F8 a ver los valores, pero no tengo idea, aclaro que lo que puse fue meramente empirico. Me ayudan? Por lo menos lo intente jejeje
0070E50E . 8D85 FCFEFFFF LEA EAX,DWORD PTR SS:[EBP-104] ; Recoge el valor de la dirección DWORD en EAX
; EAX en este momento vale EAX=0000000D
0070E514 . E8 FB46CFFF CALL erstatto.00402C14 ; LLama la dirección 00402C14 que si busco más arriba es un PUSH a EDX
0070E519 . 85C0 TEST EAX,EAX ; No se que es pero lo vi con la flag Z cuando intente sacar el IsDebuggerPresent
0070E51B . 75 07 JNZ SHORT erstatto.0070E524
0070E51D . C745 FC 010000>MOV DWORD PTR SS:[EBP-4],1 ; No se que es pero sale Stack SS:[0012EB20]=00000000
0070E524 > BA 05000000 MOV EDX,5 ; Mueve 5 a EDX ; EDX=00802079 (erstatto.00802079), ASCII "P15"
; Aquí creo que empieza a evaluar el segundo grupo del número de serie
0070E529 . 8D85 FDFDFFFF LEA EAX,DWORD PTR SS:[EBP-203] ; Stack address=0012E921, (ASCII "12345")
; EAX=00000000
0070E52F > 8A08 MOV CL,BYTE PTR DS:[EAX] ; EAX es 12345
; Stack DS:[0012E921]=31 ('1')
; CL=00
; Jump from 0070E544
0070E531 . 80F9 41 CMP CL,41 ; CMP Es un condicional y evalua que CL sea 41 pero en este caso es
; CL=31 ('1')
0070E534 . 72 05 JB SHORT erstatto.0070E53B
0070E536 . 80F9 5A CMP CL,5A
0070E539 . 76 07 JBE SHORT erstatto.0070E542
0070E53B > C745 FC 010000>MOV DWORD PTR SS:[EBP-4],1 ; Stack SS:[0012EB20]=00000001
; Jump from 0070E534
0070E542 > 40 INC EAX ; Incrementa EAX
; EAX=0012E921, (ASCII "12345")
; Jump from 0070E539
0070E543 . 4A DEC EDX ; Decrementa EDX
; EDX=00000005
0070E529 . 8D85 FDFDFFFF LEA EAX,DWORD PTR SS:[EBP-203]
0070E52F > 8A08 MOV CL,BYTE PTR DS:[EAX]
; Stack DS:[0012E922]=32 ('2')
; CL=31 ('1')
; Jump from 0070E544
Hasta aqui medio lei... No entendi nada, pero puedo decir que:
P15 es el primer grupo del número de serie
Después el segundo grupo sería,
- El primer caracter se evalue en la linea #17 que tiene que ser
41 en HEX es
A - El segundo caracter se evalue en la linea #20 que tiene que ser
5A en HEX es
ZVoy bien?