Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Flamer en 3 Agosto 2012, 18:21 pm



Título: Reto Crackme 6 De Flamer
Publicado por: Flamer en 3 Agosto 2012, 18:21 pm
Hola amigos pues aqui esta mi nuevo crackme el sexto ya

como los demas esta hecho en vb y no esta comprimido y trae dos retos uno fasil y otro difisil para que los nobatos y avanzados no queden afuera y partisipen

Link

http://www.mediafire.com/?z66utv48iv1xb5b
 (http://foro.elhacker.net/?z66utv48iv1xb5b)

Reglas:
1-para nobatos vale parchar
2-para avanzados como Fly, Nox,apuromafo y otros que seme escapen por hay no vale parchar, solo encontrar contraseña y crear keygen para los dos retos

den gracias a tinkipinki por el pedido del crackme y a tincopasa por el codigo que me paso de la musica y como lograr un formulario asi


Lista De Logros
-----------------------------------------------------------------------------
|  Lugar|  Usuario        |                 Logro                                    |
-----------------------------------------------------------------------------
|  1       |   Thunder     | Keygen Reto1 y Serial Reto2 Mas bug      |
-----------------------------------------------------------------------------
|  2       |      Fly          |           Keygen Reto 2                             |
-----------------------------------------------------------------------------
|  3       |  apuromafo  |    Keygen   Reto1 y Reto2                       |
-----------------------------------------------------------------------------
|  4       |  yako-_-      |   Serial Reto1 y parche Reto2                  |
-----------------------------------------------------------------------------
|  5       |  jEUDi17      |   Serial Reto1 y parche Reto2                  |
-----------------------------------------------------------------------------
|  6       |   Tinkipinki   |      Parche  Reto1 y Reto2                       |
-----------------------------------------------------------------------------


saludos Flamer y gracias Por Su Partisipacion y Mis Respetos Crackers


....


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Tinkipinki en 4 Agosto 2012, 01:00 am
Gracias por este nuevo reto..... ;-)

Saludos


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Tinkipinki en 4 Agosto 2012, 12:55 pm
Hola a todos:
Para el grupo de novatos en el cual me incluyo y por hacer un poco de ambiente, parcheado el primer reto.
(http://www.mediafire.com/conv/c5a4b95062633b6fd55011bec443ac1550840008182369dfec5aa9cb4d3238286g.jpg)

Saludos


Título: Re: Reto Crackme 6 De Flamer
Publicado por: karmany en 4 Agosto 2012, 16:45 pm
Muchas gracias Flamer por tu colaboración. Lo he descargado y guardado.

A ver si algun@ más se anima...


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Flamer en 4 Agosto 2012, 17:22 pm
Felisidades tinki parchar fueron mis pininos en el cracking poreso puse esa regla para los novatos para que se animen y aprendan.

Nota: aclaro me considero novato todavía

pondre una lista de los logros

Publicado por: karmany
Citar
Insertar Cita
Muchas gracias Flamer por tu colaboración. Lo he descargado y guardado.

A ver si algun@ más se anima...
de nada karmany con muncho gusto, a y yo me encargo de ponerlo en la lista

saludos flamer


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Tinkipinki en 4 Agosto 2012, 22:21 pm
Para los que no sepan por donde atacar el crackme, yo empece en poner un BP en la funcion rtcMsgBox para detectar de donde se llama la ventana de chico malo y a partir de ahi ir analizando codigo hacia atras.

Saludos


Título: Re: Reto Crackme 6 De Flamer
Publicado por: apuromafo CLS en 5 Agosto 2012, 06:45 am
ta interesante tu programita:

primera comparacion de si es binariamente mayor al otro..(usuario serial) en la dificil trabajas denuevo con los FP... de formato o estilo
004095C8=KeygenMe.004095C8 (UNICODE "00101000000010001000")

obviamente eso no es valido ;)

0040A4D1   FF15 F0104000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaFpI2>>; msvbvm60.__vbaFpI2


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Tinkipinki en 5 Agosto 2012, 07:48 am
Hola a todos:
Parcheado el segundo reto

(http://www.mediafire.com/conv/2ea75848b445061f33c4abdc024ce265a465fb65829319b5fa448b2ac8286f926g.jpg)

Se que no tiene mucha importancia el parchear un programa y que el reto esta realmente en generar los keygens correspondientes pero esto ya es harina de otro costal. Voy a probarlo pero aqui si que me voy a tomar mi tiempo en resolverlo y si consigo hacerlo ya nadie se va a acordar del crackme o sea que solo va a ser un reto personal y por cabezonaria de novato.

Saludos


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Flamer en 5 Agosto 2012, 18:31 pm
ta interesante tu programita:

primera comparacion de si es binariamente mayor al otro..(usuario serial) en la dificil trabajas denuevo con los FP... de formato o estilo
004095C8=KeygenMe.004095C8 (UNICODE "00101000000010001000")

obviamente eso no es valido ;)

0040A4D1   FF15 F0104000    CALL DWORD PTR DS:[<&MSVBVM60.__vbaFpI2>>; msvbvm60.__vbaFpI2


hola apuromafo leyendo rapidamente no te entendi eso que dises que eso no es valido; si te refieres aque no hay contraseña pues si la hay yo tengo una de ellas aguardada y sele puede hacer keygen

saludos flamer


Título: Re: Reto Crackme 6 De Flamer
Publicado por: apuromafo CLS en 6 Agosto 2012, 04:27 am
que se le puede se puede, simplemente digo que esta interesante la rutina donde pongas un serial tipo y luego compara, realmente por tiempo a lo mas veo que son cadenas no tan cotidianas  ^^


Título: Re: Reto Crackme 6 De Flamer
Publicado por: MCKSys Argentina en 6 Agosto 2012, 07:44 am
Keygen (en VB6)

Suponiendo que en un form hay un boton (Command1) y un textbox (Text1):
Código:
Function getForcedChar(testInt As Integer) As String
Dim hallado As Boolean
Dim car As Integer
Dim valor As Integer

hallado = False
Do While (Not hallado)
    car = Int((91 * Rnd) + 32)
    valor = ((((((car + &H6B - 4) * 5) / 2) * 3) Xor &H19C) And 1)
    hallado = (valor = testInt)
Loop
getForcedChar = Chr(car)
End Function


Private Sub Command1_Click()
Dim serial As String
Dim i As Integer

For i = 1 To 20
    serial = serial + getForcedChar(IIf((i = 3) Or (i = 5) Or (i = 13) Or (i = 17), 1, 0))
Next i
Text1.Text = serial
End Sub

Analisis:

len serial=20 chars
str((((((chr(serial) + 6Bh - 4) * 5) / 2) * 3) xor 19Ch) & 1) = "00101000000010001000"


Saludos!


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Tinkipinki en 6 Agosto 2012, 17:20 pm
Gracias MCKSys, con el codigo que has posteado se puede ver claramente como trabaja el algoritmo de calculo del serial a parte que nos brinda la oportunidad de adentrarnos un poco mas sobre la programacion en VB para los que no dominamos este entorno ;-)

Saludos


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Flamer en 6 Agosto 2012, 19:13 pm
Balla fly eres buenisimo para esto felisidades
para la otra tela pondre mas difisil

saludos flamer ya te anote en la lista


Título: Re: Reto Crackme 6 De Flamer
Publicado por: ThunderCls en 6 Agosto 2012, 20:33 pm
Hola
Ya veo que MCKSys lo resolvio, felicidades amigo  ;-)
Igual solo hare unos apuntes de mi parte.

Serial Facil
========

Código
  1. for(int i = 0; i < strlen(serial); i++)
  2. {
  3.   val = serial[i] + 0xE0;
  4.   strcat(serialfinal, val);
  5. }

Name: Thunder
Serial: 13414815514E144145152

Nota: En esta parte del crackme hay un bug(al no ser que se haya echo conscientemente), cada vez que insertas un serial incorrecto, se acumulan las cadenas del serial correcto una a continuacion de la otra, ej: Serial correcto para nuestro name: 123
Si ponemos 4 veces un serial incorrecto el serial correcto ya no seria 123, sino 123123123123123, por lo que creo que se ha olvidado de limpiar la variable en cada intento y de ahi el bug.

Serial Dificil
=========

length = 20
Bit = ((((serial + 0x67 * 5) / 2) * 3) xor 0x19C) and 1

Tomando solo numeros por flojera podemos crearnos una tabla:
Tabla de Bits
==========

1234567890
0010001000

Ahora solo ubicamos los numeros para lograr la serie de bits correctos
Bits correctos = 00101000000010001000
Serial: 12343668901234567890

PD: Una ultima acotacion, pal cuida el idioma si?, muchas faltas de ortografia en los textos...(critica constructiva :P). Por lo demas no ha estado mal, sigue por ese camino.
Un saludo a todos y...Tinkipinki te invito a que revises bien la parte facil para que veas que no era dificil sacar un serial valido para tu nick.


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Flamer en 6 Agosto 2012, 21:38 pm
Hola Thunder si es error mio lo del bug orita biendo el codigo fuente me falto limpiar la variable pero en fin felisidades sebe que eres bueno como fly

boy a notarte en la lista

a mi ortografia no puedo mejorar, boy a tener que buscar una pagina de autocorrecion

saludos Flamer


Título: Re: Reto Crackme 6 De Flamer
Publicado por: MCKSys Argentina en 6 Agosto 2012, 21:59 pm
a mi ortografia no puedo mejorar, boy a tener que buscar una pagina de autocorrecion

SIEMPRE se puede mejorar. Es cuestión de perseverar...  ;)

Saludos!


Título: Re: Reto Crackme 6 De Flamer
Publicado por: apuromafo CLS en 7 Agosto 2012, 02:41 am
felicidades a thunder
bueno, a lo mas tengo un mini tiempo y comento:

mi kg para tu primera instancia de ejecución, aunque intente hacerlo mejor, siempre me crasheo..asi que adjunto lo unico que me resulto:
tu programa y mi kg para el primer nivel, hecho en c++
http://www.mediafire.com/?pvvx5vyu4b8odld


detalles normales_ que habia tenido para el 1, pero que a la hora por no ser buen coder obviamente no habia pensado en keygen


para usuario serial /nivel 1 tomas los valores:
DS:[0040102C]=7348B48B (msvbvm60.rtcAnsiValueBstr)
pero vemos una comprobacion

00409C53   . 83F8 04        CMP EAX,4
00409C56   . 0F9FC2         SETG DL

por ende el primer usuario debe ser igual o mayor a 4 carácteres
como hay un detenimiento no puede ser mayor a 15

mas adelante se ve (integrer) (smartcheck) el cual confirma los valores,

mientras revisaba hoy mi codigo vi que  thunder posteó su solucion y descubrimiento del bug, eso me confirmo el tema ,


 val = serial + 0xE0;
el + E0 viene de aqui

00409DF3   . 8D95 74FFFFFF  LEA EDX,DWORD PTR SS:[EBP-8C]
00409DF9   . 66:81C1 E000   ADD CX,0E0
00409DFE   . 8D45 B4        LEA EAX,DWORD PTR SS:[EBP-4C]

pero a diferencia de otros lenguajes, termina en 00 y este es descartado del serial (00+E0)

yo de primera preferia este el lugar para fishear  con Bp condicional en ECX==0 y el valor a loguear CX
00409E09   . 66:890F        MOV WORD PTR DS:[EDI],CX                 ;  fish

Name:apuromafo
serial:14115015515214F14D14114614F


la concatenacion
00409E2E   . FF15 B0104000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarCa>;  msvbvm60.__vbaVarCat

^^
ahora bien portando la idea en C
codigo keygen tipo en C++ codeblock mingw
el que use yo fue

http://prdownload.berlios.de/codeblocks/codeblocks-10.05mingw-setup.exe



Código:
#include <conio.h>
#include <iostream>
#include <windows.h>
#include <string>
#include <stdio.h>
    using namespace std;

int  main()
{
char palabra[20],c=' ';

printf(" Keygen Sakura by Apuromafo 06-8-12 \n");
printf(" Nivel user-serial nivel 1 de 2 niveles \n");
printf(" para Crackme 6 de Flamer   \n");
printf(" OBS:serial valido solo para la primera ejecucion, x bug del bufer\n");
printf(" Uso:Ingresa usuario y te dira el serial (osea +0xE0) \n");
printf(" favor mas de 4 letras el nombre  y menos de 15 \n\n ");
printf(" hecho solo por un mini tiempo libre  \n\n ");

printf("Usuario = ");
scanf("%s",palabra);
printf("Serial  = ");
int cont=0,mayor=0,tam=strlen(palabra);
for(int i=0;i<=tam;i++)
{
if(c!=palabra[i])
{
if(cont>mayor)
mayor=cont;
c=palabra[i];
cont=1;
}
else

cont++;

      int opc1;

     opc1 = (palabra[i] + 0xE0);
 if(opc1!=0xE0)
      printf("%X", opc1);
      }
      getch();




Título: Re: Reto Crackme 6 De Flamer
Publicado por: apuromafo CLS en 7 Agosto 2012, 05:42 am
flamer, para que no te enojes, te edito el post anterior y te agrego el keygen del nivel 1 en c++
, obviamente por tema de tiempo no fixeo los tamaños de largo y porque mi nivel de programación es bajo en esos temas sobre todo porque siempre c++ me tiende a explotar los exes jiji

saludos Apuromafo

pd:
normalmente para la primera vez es
Nombre:apuromafo
serial:14115015515214F14D14114614F
para la segunda  vez que ejecutas (es como si fuera apuromafoapuromafo)
usuario:apuromafo
serial:14115015515214F14D14114614F14115015515214F14D14114614F

esta considera apuromafoapuromafo para la validacion, pero uno simplemente coloco apuromafo en la 2da vez...esop, animo en todo


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Flamer en 7 Agosto 2012, 06:15 am
hola apuromafo no te molestes no me enojo esta bien solo que boy a tener que modificar la tabla de tus logros donde dise serial boy aponer keygen pero te informo te quedas en terser lugar

nose si queden conformes con los lugares que lesdi, pero aclaro todos son buenos Crackers;-) ;-) ;-)

saludos Flamer


Título: Re: Reto Crackme 6 De Flamer
Publicado por: apuromafo CLS en 7 Agosto 2012, 06:39 am
no hay lio, igual fue un gran crackme para confirmar :D

, no tengo el tiempo como todos, pero apesar de estar oxidado algo se logra.-


respecto al numero 2 bajo la idea de los bytes por thunder:
mediante array los 20 numeros (en c++) y arrays
adjunto como keygen para el LV 2
http://www.mediafire.com/?fjnjjw0pxxgoin2


Código:
#include <iostream>
#include <algorithm>
#include<stdlib.h>
#include<iostream>
#include<time.h>
using namespace std;

int main(void)
{
    int num,c;
    srand(time(NULL)); //00101000000010001000

    for(c=1;c<=2;c++)   //XX101000000010001000
    {
         int array[] = { 1,2,4,5,6,8,9,0 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(array, array+8);
         for(int i=0; i<1; i++)
        cout << array[i] <<"";// << endl;
       // num=1+rand()%(11-1);
    //    cout<<num<<"";
    }
          int array[] = { 3,7 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(array, array+1);
        for(int i=0; i<1; i++)
        cout << array[i]<<"";// << endl;


    //    cout<<"3"; //00X01000000010001000

     for(c=4;c<=4;c++)//001x1000000010001000
    {
      //  num=1+rand()%(11-1);
        //cout<<num<<"";
        int array[] = { 1,2,4,5,6,8,9,0 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(array, array+7);
        for(int i=0; i<1; i++)
        cout << array[i]<<"";// << endl;
    }
      int Array1[] = { 3,7 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(Array1, Array1+1);
        for(int i=0; i<1; i++)
        cout << array[i]<<"";// << endl;


    //        cout<<"3"; //0010X000000010001000
     for(c=6;c<=12;c++) //00101X00000010001000
    {
      //  num=1+rand()%(11-1);
        //cout<<num<<"";
        int array[] = { 1,2,4,5,6,8,9,0 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(array, array+6);
        for(int i=0; i<1; i++)
        cout << array[i] <<"";// << endl;
    }
//          int Array1[] = { 3,7 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(Array1, Array1+1);
        for(int i=0; i<1; i++)
        cout << array[i]<<"";// << endl;
    //       cout<<"3"; //0010X000000010001000
     for(c=14;c<=16;c++) //00101X00000010001000
       {
      //  num=1+rand()%(11-1);
        //cout<<num<<"";
        int array[] = { 1,2,4,5,6,8,9,0 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(array, array+5);
        for(int i=0; i<1; i++)
        cout << array[i] <<"";// << endl;
    }
       //   int Array1[] = { 3,7 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(Array1, Array1+1);
        for(int i=0; i<1; i++)
        cout << array[i]<<"";// << endl;

    //   cout<<"3"; //0010X000000010001000
      for(c=18;c<=20;c++) //00101X00000010001000
   {
      //  num=1+rand()%(11-1);
        //cout<<num<<"";
        int array[] = { 1,2,4,5,6,8,9,0 };
        srand( unsigned( time(NULL) ) );
        random_shuffle(array, array+4);
        for(int i=0; i<1; i++)
        cout << array[i] <<"";// << endl;
    }

    cin.get();
}


Título: Re: Reto Crackme 6 De Flamer
Publicado por: yako-_- en 7 Agosto 2012, 08:23 am
Buenas!!

 Yako-_-
 
15914114B14F10D13F10D

El facil. Sacado con un BP en vbaVarTsEq.

El dificil lo parche, pero bueno a ver si con un poco mas de tiempo le saco el serial, si no ando mal hace una comprobación de longitud del serial introducido EBX,13(aun tego que trastearlo un poco mas).  

El tema del keygen es arina de otro costal (por ahora). Da envidia sana ver como la gente hace keygens.

Un saludo!!

PD: Gracias por este crackme esta entretenido.



Título: Re: Reto Crackme 6 De Flamer
Publicado por: Flamer en 7 Agosto 2012, 16:11 pm
Hola yako llegastes tarde
con los nuevas respuestas boy a tener que actualizar la lista apuromafo queda donde mismo solo tinkipinki baja al ultimo lugar y yako ocupa el lugar de tinkipinki

saludos Flamer


Título: Re: Reto Crackme 6 De Flamer
Publicado por: apuromafo CLS en 7 Agosto 2012, 19:34 pm
se agradece flamer, yo estas instancias siempre lo intento cuando hay tiempo, y clarmaente es lo que menos tengo, por otro lado buscaba hoy manejo y conversion a ascii o int, y encontre otra  forma de hacerlo en c++ pero no pude jugar mas con las cadenas en char obvio que por falta de experiencia
esto dara el serial del nombre apuromafo (el ultimo byte es 00)

Código:
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
    char szCadena[10] = "apuromafo";
    int i;

    for (i=0; i < 9; i++)
    {
        printf("%X", (int)szCadena[i]+0xE0) ;

    }
   cin.get();
    //  getch();
    return 0;
}

el resultado en pantalla será de
14115015515214F14D14114614F

saludos Apuromafo


Título: Re: Reto Crackme 6 De Flamer
Publicado por: jEUDi17 en 3 Septiembre 2012, 11:01 am
Hola Flamer, estuve analizando tu programa..

A mi el vb me cuesta bastante, pero digamos que logre hacer algo.

Reto 1 :

Consegui el serial :

Name : Jeudy

Key    : 12A145155144159

Reto 2 :

No consegui el serial :

0012F428  |004095C8  UNICODE "00101000000010001000"


0012F29C   004095C8  UNICODE "00101000000010001000"
0012F2A0   02C4314C  UNICODE "00000000000000000000000"
0012F2A4   0012F2C4
0012F2A8   75FDF8F7  OLEAUT32.75FDF8F7
0012F2AC   02C4314C  UNICODE "00000000000000000000000"
0012F2B0   004095C8  UNICODE "00101000000010001000"


Lo unico que consegui pero no sirve para nada!


Ah, se me olvido aqui esta parcheado :P
 
(http://www.jb2.com.ar/forojb/chevereto/images/img01.jpg)

Saludos!


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Flamer en 3 Septiembre 2012, 17:22 pm
Felisidades jEUDi17 el reto 2 si sirve parchar si calificas para la lista.

lo que me entristese es tinkipinki  no a conseguido el serial para el reto 1 solo logro parchar el 1 y 2

animo tinki tu puedes

actualisare la lista

saludos Flamer y cuando quieran otro reto les hago otro Crackme


Título: Re: Reto Crackme 6 De Flamer
Publicado por: jEUDi17 en 3 Septiembre 2012, 19:44 pm
Felisidades jEUDi17 el reto 2 si sirve parchar si calificas para la lista.

lo que me entristese es tinkipinki  no a conseguido el serial para el reto 1 solo logro parchar el 1 y 2

animo tinki tu puedes

actualisare la lista

saludos Flamer y cuando quieran otro reto les hago otro Crackme

Vamos animate, otro CrackMe o KeygenMe :P si se puede!!


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Flamer en 3 Septiembre 2012, 19:54 pm
Claro que se puede ;-) ;-)

dame tiempo nomas para hacerlo>:D

y un trabajo que tengo que hacer aa estara hecho en vb6


Título: Re: Reto Crackme 6 De Flamer
Publicado por: jEUDi17 en 3 Septiembre 2012, 20:24 pm
Claro que se puede ;-) ;-)

dame tiempo nomas para hacerlo>:D

y un trabajo que tengo que hacer aa estara hecho en vb6

 :) :) Gracias flamer


Título: Re: Keygen [Explicacion]
Publicado por: jEUDi17 en 5 Septiembre 2012, 03:14 am
Apuromafo y los demas crackers Mostraron su gran trabajo.
Yo como no pude hacer un keygen solo lo comente. Para decirles lo que entendi de ese codigo.


 Esto es lo que entendi de el algoritmo.  

Código
  1. #include <windows.h>
  2. #include <string>
  3. #include <conio.h>
  4. #include <conio2.h>
  5. #include <stdio.h>
  6.  
  7. // Recuerda que si me criticas por esto, saber que soy c++ nivel 1.
  8. // Todo lo que se , me lo enseño mi hermano que estudio esto. Estudia ingenieria civil.
  9.  
  10. /*************************************************
  11.   * Author : Apuromafo                           *
  12.   * Compilador : Dev-c++ (Apuromafo uso otro).   *
  13.   * PD : Lo edito para decirles lo que entendi.  *
  14.   ************************************************/
  15.  
  16. int main()
  17. {
  18.    SetConsoleTitle ("KEYGEN"); //Establece el titulo de la consola.
  19.    char szName [ 20 ], szSerial = ' '; // El nombre tiene que tener maxi 20 caracteres.
  20.    /* El espacio entre las comillas es para que el compilador no nos diga : "Empty character constant".
  21.     * Para que no nos de error. Agregamos ese espacio.*/
  22.  
  23.  
  24.     gotoxy (2, 2); printf(" Keygen Sakura by Apuromafo 06-8-12 \n");
  25.     gotoxy (2, 4); printf(" Nivel user-serial nivel 1 de 2 niveles \n");
  26.     gotoxy (2, 6); printf(" para Crackme 6 de Flamer   \n");
  27.     gotoxy (2, 8); printf(" OBS:serial valido solo para la primera ejecucion, x bug del bufer\n\n");
  28.     gotoxy (2, 10);printf(" Uso:Ingresa usuario y te dira el serial (osea +0xE0)\n");
  29.     gotoxy (2, 12);printf(" favor mas de 4 letras el nombre  y menos de 15.");
  30.    textcolor (WHITE);
  31.    gotoxy (2, 14); printf(" Ingrese su nombre : ");
  32.    scanf("%s", &szName); //Guarda lo maximo de caracteres en la variable szName.
  33.                          // &szName -> Es para indicar que se va a guardar algo en esa variable.
  34.  
  35.    system("CLS");
  36.  
  37.    textcolor (LIGHTGRAY);
  38.    gotoxy (2, 2);
  39.  
  40.    int i = 0, my = 0, ecx = 0, iLen = strlen(szName);
  41.    /* strlen (*CHAR) -> Sirve para contar la cantidad de caracteres de una variable. */
  42.  
  43.    for (i = 0; i < iLen; i++) //Si i es igual a 0, i es menor que iLen . entonces i se aumentara.
  44.    {
  45.        if (szSerial != szName[i]) //szSerial tiene que ser diferente o igual a szName[i] -> en el vector "i".
  46.        {
  47.             if (ecx > my)  // ecx tiene que ser mayor que "my" para q se cumpla la siguiente instruccion.
  48.             my = ecx;      // "my" ahora tiene el valor de ecx.
  49.             szSerial = szName[i]; //szSerial va a ser igual a szName en el vector "i".
  50.             ecx = 1; // Si se cumple todo esto, entonces el contador "ecx" se aumentara a 1.
  51.        }else
  52.  
  53.        ecx++; // ecx se aumenta.
  54.  
  55.  
  56.        int opc; //Una operacion.
  57.  
  58.        opc = (szName[i] + 0xE0); // Generamos el serial.
  59.        if (opc != 0xE0)
  60.             printf("%X", opc); //Obtenemos nuestro serial.
  61.    }
  62.  
  63.    getch(); // PAUSAMOS EL PROGRAMA.
  64.    return 0;
  65. }
  66.  

 Descargar Keygen Compilado : http://www.2shared.com/file/7eKB_7u_/Apuromafo.html (http://www.2shared.com/file/7eKB_7u_/Apuromafo.html)


Título: Re: Reto Crackme 6 De Flamer
Publicado por: Иōҳ en 5 Septiembre 2012, 05:26 am
Felicitaciones  ;-)


Título: Re: Reto Crackme 6 De Flamer
Publicado por: apuromafo CLS en 19 Enero 2013, 06:21 am
a pesar que pasa el tiempo, me alegro que los keygens o mini codigo hayan sido utiles

realmente nunca administro tanto tiempo para comentar los codigos, pero me ha parecido muy buenos

felicidades jEUDi17

y como no el autor del crackme

saludos Apuromafo