Pues sabiendo programar en el lenguaje que más coraje te dé.
La complejidad para vulnerar tu protección, radicará en tus conocimientos, tu creatividad y lo buen cracker que seas.
Así, para empezar, un primer crackme para los que se meten en este mundo por primera vez, puede ser el siguiente ejemplo en C, el cual simula el mismo comportamiento que el crackme que has puesto al principio de este hilo:
Código:
#include <stdio.h>
#include <string.h>
void main (void){
char nombre[256];
char clave[256];
printf("Introduce tu nombre -> ");
gets (nombre);
printf("Introduce tu clave -> ");
gets(clave);
if ((strcmp(nombre, "admin")==0) && (strcmp(clave, "0000")==0)){
printf("Correcto\n");
}else{
printf("Incorrecto\n");
}
}
En donde se puede observar que los datos que validarán el login son:
Usuario: admin
clave: 0000
Que por supuesto,
no tienen por qué tener nada que ver con el crackme original que has posteado al principio. De hecho, ni siquiera lo he visto.
Así, te animo a que compiles en C el código que he puesto, para que te vayas iniciando y aprendiendo, y tú mismo logres a partir del ejecutable, obtener los datos de acceso correctos (el par: admin, 0000), o en su defecto, conseguir que se muestre en pantalla el mensaje "Correcto", se introduzcan los datos que se introduzcan (hacer un patch del ejecutable).
A medida que aprendas, te darás cuenta que el código que he puesto es "mantequilla" y para nada seguro, y como el 99% de software existente, no hay recetas concretas... se puede vulnerar de tantas maneras como dé tu imaginación y conocimientos. En esto radica la diversión de "vulnerar" sistemas, en que no hay recetas.
Como apunte final, un cracker buscaría el par admin, 0000, que lograra satisfacer el login correcto, consiguiendo así, haber vulnerado la seguridad del sistema o de la aplicación. Un hacker por el contrario, buscaría un fallo en las funciones gets y strcmp que lograra desbordar los vectores (hacer un overflow), consiguiendo así lanzar una excepción, para por ejemplo escalar privilegios en el sistema. Ambos, utilizarían las mismas técnicas y conocimientos para su fin.
A mi, personalmente no me gusta hacer separaciones entre cracker y hacker relacionadas con temas conceptuales, para mi, son la misma persona.
Me refiero con esto, a que queda mucho camino por delante por aprender, y queda demostrado como un simple código de unas 10 líneas más o menos, tiene mucho jugo y da mucho juego.
Te animo a que empieces a hacer modificaciones a ese código para irlo "protegiendo" y hacer que tanto hackers como crackers empiecen a sudar para lograr sus objetivos.
Animo también al resto de HH a que propongan ideas de macabras formas de vulnerar ese código. Yo me pido 2º en contestar.
Un saludo.
Marcadores