AYUDA CON ESTE SERIAL

Iniciado por ThunderCls, 24 Agosto 2008, 23:54 PM

0 Miembros y 1 Visitante están viendo este tema.

ThunderCls

salu2... a todos los del foro
bueno antes que nada les aviso que soy un newbie y pues.....bueno que necesito que me lleven suave. Bueno aqui esta mi problema. He estado practicando con un crackme, el blaadme, para ser exacto y he llegado a la zona caliente....sin embargo tengo que revertir el serial.....haber....que esto es lo que ocurre.
El crackme toma los bytes de mi serial falso y hace lo sgte:

07070707 xor (primeros cuatro bytes)

f2 + (primer byte)

0F0F0 and (dos primeros bytes)
_______________________________________

0CFB0707 xor (penultimos cuatro bytes)

f2 + (primer byte segundo grupo)

0F0F0 and (dos primeros bytes segundo grupo)
_______________________________________

0CF608F2 xor (ultimos cuatro bytes)

f2 + (primer byte tercer grupo)

0F0F0 and (dos primeros bytes tercer grupo)
==============================================

compara mi serial despues de estas operaciones en tres grupos de a 4 bytes
con estos:

34 35 20 D0 5E 57 30 C0 58 BD 50 40 ----- serial bueno (sin invertir)
____________________________________________________________

ahora...para revertir estos bytes necesito realizarle las operaciones inversas a las echas sobre mi serial...

xor --- xor
add --- sub
and --- ???

ahora, el and no tiene una operacion inversa, que hago????
gracias x todo
salu2.
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

...........

#1
Un enlace al crackme no estaría mal:

http://www.quequero.org/uicwiki/images/CM33.zip

_____
Si es muy sencillo. Para los 4 primeros caracteres:

Al 3º y al 4º sólo les afecta el XOR, luego sería: inv(xor 0707) = 3534 (teniendo en cuenta el little endian) resultan los bytes: 32 33

Para el 2º: (xor 07) and (F0) = 20 
Veamos el conjunto de números a los que aplicándole un AND F0 de como resultado 20: serían del tipo 0010xxxx, que en hexadecimal: 2x.
Pues a un número cualquiera del conjunto de números válido le hacemos el inv(xor 07), por ejemplo al 2F, y da como resultado: 28

Para el 1º: [(xor 07) + F2] and (F0) = D0
Haciendo lo mismo que para el 2º, nos sale que (xor 07) + F2 = Dx
Tomando por ejemplo DF, nos sale: EA

Luego los 4 primeros bytes del serial serían: EA283233

Pero el byte EA no corresponde con ninguna letra ascii ...¿?¿?¿?
También justo antes el programa lee el archivo blaad.xxx ¿?¿?¿?

bueno, sigue investigando, que de eso se trata, saludos.

karmany

La operación "and" efectivamente no tiene su inversa, tendrás que examinar más detenidamente el código o puedes crear seriales por fuerza bruta.
Como ya lo tienes todo analizado, los "and" no te tienen que resultar inconveniente a la hora de encontrar un serial. Una fuerza bruta pienso que no será muy difícil.
Seguro que lo consigues...

Un saludo y bienvenido al foro.
karmany

ThunderCls

bueno, antes que nada, muchisimas gracias por sus respuestas....ahora, teniendo en cuenta esto que me dicen de la fuerza bruta...bueno...nada, que me a pasado algo con unas operaciones en otro crackme, me refiero a : ROL, ROR, SHL, SHR.....pues nada que no le doy al blanco con ellas, pensaba que me pudieran ayudar un poco con esto de los brute forcer, y en especifico de como hacerlo, digamos que con el mismo blaadme, y si no les importa, me den una luz con estas otras operaciones que les dije......nada que me he dado cuenta que hay veces en las que hay que bruteforcear un serial....y bueno...no estoy muy bien en esto....que me he leido par de tutes al respecto pero no lo entiendo bien....por favor amigos, una ayuda para este newbie, si no les molesta..
gracias de antemano por su tiempo
salu2..
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

...........

No hace falta sacar el serial por fuerza bruta. Por fuerza bruta imagino que se refiere a que dadas una condiciones conocidas que deben complir el serial, y ser demasiado trabajaso encontrar a mano uno válido, escribir un pequeño algoritmo que nos ayude.

La función sí tiene inversa, pero no es única, como he comentado. Como nos da igual un serial que otro, pues es simplemente escoger uno cualquiera de los valores válidos. Si has leído mi respuesta anterior, salía que los primeros 4 caracteres del serial tenían los bytes: EA283233

El código ascii tiene 128 caracteres y EA (234) lo sobrepasada. Pero windows no sólo usa 128 caracteres. Windows, en sus ventanas de diálogo, usa o bien unicode o bien un ascii extendido de 256 caracteres que depende del idioma; si no recuerdo mal, para castellano, era muy similar al ISO 8859-1. De todas forams, puedes crear con algún editor hexadecimal un archivo con el byte EA y con extensión .txt y abrirlo con el bloc de notas. A mí me resulta el carácter "ê". Luego los cuatro primeros caracteres del serial serían: "ê(23".

Además, como también te comenté, ese crackme juega también con el archivo blaad.xxx Sería cuestión también de que veas para qué sirve/qué hace/si influye en algo.

______________________

ROL es una instrucción que rota los bits hacia la izquierda un determinado número de veces. Por ejemplo: ROL EAX, 2
Si EAX vale: 1001.0001.1110.0010.1111.0000.1111.0000 (91E2F0F0)
Si rotamos una vez hacia la izquierda: (el bit más significativo para a ser el menos significativo [además de guardarse en el flag de Carry]):
001.0001.1110.0010.1111.0000.1111.00001 (23C5E1E1)
Y la segunda rotación:
01.0001.1110.0010.1111.0000.1111.000010 (478BC3C2)
luego ROL 91E2F0F0,2 = 478BC3C2

ROR es igual que ROL, pero rotando hacia la derecha: en cada rotación, el bit menos significativo pasa a ser el más significativo y se guarda en C, el resto se desplaza hacia la derecha una posición.

SHL es muy similar a ROL, excepto en una cosa; el bit menos significativo tomará el valor 0, no el del más significativo. Para el ejemplo anterior:
EAX = 1001.0001.1110.0010.1111.0000.1111.0000
SHL EAX,2 = 01.0001.1110.0010.1111.0000.1111.000000
(el bit más significativo se pierde en cada movimiento de los bits; aunque se va guardando en C.)

Finalmente, para SHR aplicas lo mismo que para SHL, pero hacia la derecha.

____________

Te recomendaría que antes de ponerte a crackear algo, hagas una serie de cosas:
- aprender inglés
- aprender un poco de estructura de computadores, ensamblador, programar en C, saberte manejar con la API de windows.

y luego ya, con lo aprendido, pues crackear será más sencillo, y sobre todo, útil.

apuromafo CLS

y otro consejo, comienza con ejemplos hechos por otros,
para que vayas comparando si tienes igual o similar conocimiento al que te plantean

la unica forma de entender los arlgoritmos y codigos planteados es tener una buena base en assembler y saber como hacerlos cumplir

tu bien decias que eras novato y todo, pero igual debes lograr cosas posibles y concretas
y no aprender algoritmos que al final de al cabo no terminas mas que en desiluciones

revisa los tutoriales y escritos que hay en el foro y todo

si realmente eres novato, creeme que te ayudara

yo llevo mas de 3 años en esto y no tengo nada que ver en computacion, y creeme que la unica forma de aprender es en escala..

forma las bases, busqueda de info y todo lo demas como sale en la biblia es Añadidura

saludos Apuromafo
pd:susalinic espectacular como vas explicando, jej ya supongo que pronto terminas resolviendolo..como bien lo hiciste con el crackme 5 de x4uth

ThunderCls

salu2..
pues nada amigos.....que por poco me vuelvo loco.... :-X...hasta que al FINNNN!!!!  ;D ;D
he encontrado un serial verdadero, o al menos uno de los tantos que admite el crackme.....
agradecido, susanalic(muy buena explicacion, gracias a ella lo resolvi, gracias) y demas amigos, por su tiempo y dedicacion con este novato....de verdad, gracias.....tomare en cuenta todos sus consejos....de hecho, ya los estoy poniendo en practica... ;)
bueno....espero que esten aqui cuando los vuelva a necesitar..............que no sera muy lejano...jajaja  ;D ;D ;D ;D ;D ;D ;D ;D ;D
salu2 a to2
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

apuromafo CLS

Cita de: ThUnDeR_07 en 27 Agosto 2008, 16:53 PM
salu2..
pues nada amigos.....que por poco me vuelvo loco.... :-X...hasta que al FINNNN!!!!  ;D ;D
he encontrado un serial verdadero, o al menos uno de los tantos que admite el crackme.....
agradecido, susanalic(muy buena explicacion, gracias a ella lo resolvi, gracias) y demas amigos, por su tiempo y dedicacion con este novato....de verdad, gracias.....tomare en cuenta todos sus consejos....de hecho, ya los estoy poniendo en practica... ;)
bueno....espero que esten aqui cuando los vuelva a necesitar..............que no sera muy lejano...jajaja  ;D ;D ;D ;D ;D ;D ;D ;D ;D
salu2 a to2

jej mejor escribe un tutorial de lo que aprendiste y creeme que sera util para quien algun dia le expliques, pues le sirva para aprender del mismo nivel,

saludos y animo y felicidades por el logro..