elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Como empezar a leer y analisar valores del Ollydb
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como empezar a leer y analisar valores del Ollydb  (Leído 2,333 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Como empezar a leer y analisar valores del Ollydb
« en: 11 Junio 2015, 06:26 am »

Bueno siguiendo con el tema del crack para esta aplicación https://dl.dropboxusercontent.com/u/71932290/demo.exe

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
  1. 0070E50E   . 8D85 FCFEFFFF  LEA EAX,DWORD PTR SS:[EBP-104] ; Recoge el valor de la dirección DWORD en EAX
  2.                                                           ; EAX en este momento vale EAX=0000000D
  3. 0070E514   . E8 FB46CFFF    CALL erstatto.00402C14         ; LLama la dirección 00402C14 que si busco más arriba es un PUSH a EDX
  4. 0070E519   . 85C0           TEST EAX,EAX                   ; No se que es pero lo vi con la flag Z cuando intente sacar el IsDebuggerPresent
  5. 0070E51B   . 75 07          JNZ SHORT erstatto.0070E524
  6. 0070E51D   . C745 FC 010000>MOV DWORD PTR SS:[EBP-4],1     ; No se que es pero sale Stack SS:[0012EB20]=00000000
  7. 0070E524   > BA 05000000    MOV EDX,5                      ; Mueve 5 a EDX ; EDX=00802079 (erstatto.00802079), ASCII "P15"
  8.  
  9. ; Aquí creo que empieza a evaluar el segundo grupo del número de serie
  10.  
  11. 0070E529   . 8D85 FDFDFFFF  LEA EAX,DWORD PTR SS:[EBP-203] ; Stack address=0012E921, (ASCII "12345")
  12.                                                           ; EAX=00000000
  13. 0070E52F   > 8A08           MOV CL,BYTE PTR DS:[EAX]       ; EAX es 12345
  14.                                                           ; Stack DS:[0012E921]=31 ('1')
  15.                                                           ; CL=00
  16.                                                           ; Jump from 0070E544
  17. 0070E531   . 80F9 41        CMP CL,41 ; CMP Es un condicional y evalua que CL sea 41 pero en este caso es
  18.                                                           ; CL=31 ('1')
  19. 0070E534   . 72 05          JB SHORT erstatto.0070E53B
  20. 0070E536   . 80F9 5A        CMP CL,5A
  21. 0070E539   . 76 07          JBE SHORT erstatto.0070E542
  22. 0070E53B   > C745 FC 010000>MOV DWORD PTR SS:[EBP-4],1     ; Stack SS:[0012EB20]=00000001
  23.                                                           ; Jump from 0070E534
  24. 0070E542   > 40             INC EAX ; Incrementa EAX
  25.                                                           ; EAX=0012E921, (ASCII "12345")
  26.                                                           ; Jump from 0070E539
  27. 0070E543   . 4A             DEC EDX ; Decrementa EDX
  28.                                                           ; EDX=00000005
  29. 0070E529   . 8D85 FDFDFFFF  LEA EAX,DWORD PTR SS:[EBP-203]
  30. 0070E52F   > 8A08           MOV CL,BYTE PTR DS:[EAX]
  31.                                                           ; Stack DS:[0012E922]=32 ('2')
  32.                                                           ; CL=31 ('1')
  33.                                                           ; 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?
« Última modificación: 11 Junio 2015, 07:12 am por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Como empezar a leer y analisar valores del Ollydb
« Respuesta #1 en: 11 Junio 2015, 08:57 am »

disculpa, pero si estás empezando o te cuesta hallar seriales, ¿porqué no parchar la aplicación? es más fácil y rápido, obvio que con tiempo podrás encontrar los seriales, pero también es una forma de empezar, no tengo tiempo para mirar todo el código, pero lo que viste solo compara que esten en el rango de mayúsculas, y más adelante te da el serial, parche unas partes, para que tome cualquier serial, capturé la clave correcta y listo!!!




sino sale la imagen pido perdón, nunca aprendí como se suben!
si querés avisame por privado y te envío el archivo parchado y te digo donde mirar, son como máximo 2 minutos.
« Última modificación: 11 Junio 2015, 09:00 am por tincopasan » En línea

apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: Como empezar a leer y analisar valores del Ollydb
« Respuesta #2 en: 11 Junio 2015, 19:42 pm »

normalmente cuando hacen comparaciones es para filtrar, en este caso aún sin mirar el exe diría que pide que los carácteres sean de la A a la Z

por otro  lado, si no tienes experiencia depurando, lo mejor es siempre tener un pequeño manual de assembler para orientarte con las instrucciones o bien ver la instancia en que aún sin esa clave funcione operativamente


creo que como dice ticopasan, aveces hay seriales que son fisheables, entonces basta emular toda la rutina desde la generación hasta donde aparece el serial para entenderlas...

por otro lado una vez encontré un keygenme que tenia 100 soluciones posibles, otros que segun la terminación es la cantidad de licencia, y asi suma y sigue , en lo factible te sugiero lo dicho por tincopasan

un saludo a la distancia
Apuromafo
En línea

Apuromafo
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como Interpretar estos Valores
Wireless en Linux
skynet777 1 2,445 Último mensaje 12 Mayo 2010, 10:21 am
por Garcad
Ayuda (mis primeros pasos con ollydb para intentar registrar un programa)
Ingeniería Inversa
chuky666 4 3,085 Último mensaje 30 Septiembre 2010, 23:23 pm
por LSL
Sacar valores par y valores impar
Programación C/C++
nolasco281 7 4,211 Último mensaje 6 Mayo 2014, 09:29 am
por eferion
analisar y compartir
Programación C/C++
flony 2 1,558 Último mensaje 3 Julio 2014, 15:03 pm
por Slava_TZD
Qué comprar y leer para empezar con Arduino
Noticias
wolfbcn 0 832 Último mensaje 19 Junio 2018, 14:18 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines