1. 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.rar
Despué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
Código
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 Z
Voy bien?