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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Ayuda con un Crackme
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un Crackme  (Leído 2,821 veces)
w0nt0n

Desconectado Desconectado

Mensajes: 124



Ver Perfil
Ayuda con un Crackme
« en: 18 Julio 2010, 14:10 pm »

Buenas,

Estoy jugando un poco con unos crackmes y estoy con uno que no sé resolver. Me explico:

Llego a la rutina que calcula el serial y es como sigue:
Código:
004013C0  /$ 60             PUSHAD
004013C1  |. C1C0 02          ROL EAX,2
004013C4  |. A3 6D314000   MOV DWORD PTR DS:[40316D],EAX
004013C9  |. 05 79740000    ADD EAX,7479
004013CE  |. 35 33323100    XOR EAX,313233
004013D3  |. C1E0 06         SHL EAX,6
004013D6  |. A3 72314000    MOV DWORD PTR DS:[403172],EAX
004013DB  |. 61             POPAD

Hasta donde entiendo, lo que hace es (en decimal):

Multiplico por 4 (en realidad se añaden al final del número en binario dos ceros lo que es lo mismo que multiplicar por 4)
Le sumo 29.817
Hago un XOR con 3.224.115
Multiplico por 64 (técnicamente no es esto pero el resultado que obtengo es el mismo, no?)

Cuando acaba la rutina, lo compara con 3.272.071.856 y en función de eso decide si es válido o no. Por lo que entiendo, la solución a este problema es:

Código:
x = {XOR [(3.272.071.856/64) , 3.224.115] - 29.817}/4

El resultado que obtengo de esto es 13.577.784 (o 13.577.783 si hago las operaciones en hexadecimal). En cualquier caso cuando introduzco el serial, el resultado después de las operaciones el 3.272.071.691.

Haciendo todas las operaciones en hexadecimal el número con el que se compara es el C307DA80 y el que obtengo usando mi serial C307DA0B, siendo la diferencia entre estos dos números en hexadecimal de 75 (117 en decimal), que es distinto de la diferencia si hago todos los cálculos en decimal.

No tengo muy claro el porqué de esto y quería saber si alguien me lo podría explicar.

Un saludo
En línea

No quisiera parecer marica, pero los unicornios son una *****.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Ayuda con un Crackme
« Respuesta #1 en: 19 Julio 2010, 14:35 pm »

No confundas ROL con SHL.

La multiplicacion es la emulación (?) de SHL. Pero ROL ROTA los bytes, osea, los bytes que "salen" por la izquierda se van agregando por la derecha.

Al menos, me parece que ese es el error... :P

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Ayuda con un Crackme
« Respuesta #2 en: 19 Julio 2010, 17:19 pm »

Cierto lo que dice MCKSys

ROL hace un desplazamiento de manera logica, y como dice "Los que se salen por la izquierda", entran por la derecha.

y sobre SHL y su contrapartida ellos hacen un desplazamiento de manera aritmetica, en particular SHL hace lo mismo que ROL con la diferencia que los bytes "que salen por la izquierda, se pierden", y no entran por la derecha como en ROL
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con CrackMe
Ingeniería Inversa
Nobody12 0 1,825 Último mensaje 19 Diciembre 2010, 14:41 pm
por Nobody12
Ayuda, crackme
WarZone
CAR3S? 0 1,731 Último mensaje 8 Febrero 2011, 09:52 am
por CAR3S?
AYUDA CON UN CRACKME « 1 2 »
Ingeniería Inversa
pags2 10 4,397 Último mensaje 26 Noviembre 2011, 09:21 am
por .:UND3R:.
Ayuda con un crackme
Ingeniería Inversa
negux 1 2,117 Último mensaje 9 Enero 2012, 16:35 pm
por .:UND3R:.
ty's 123 crackme easy.. ayuda
Ingeniería Inversa
Error 404: 5 2,626 Último mensaje 27 Febrero 2013, 22:28 pm
por Error 404:
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines