Ademas de lo que ya ha dicho MCKSys (valores aleatorios como valores de comprobación mmmmm...no, a ver, es impensable usar eso en un sistema de registro en la vida real, así que por lo de innovador...mmm como que no, sin que te lo tomes a mal)
Luego esta el tema de que ademas cometes un error muy grande en el código para generar los cinco valores aleatorios, a ver, usas:
Lo que siempre te dará cinco valores "aleatorios" idénticos, pues estas usando cinco clases Random que daran el mismo numero inicial . La cosa deberia ser algo como:
Debido a ese error, la fuerza bruta se hace mas que sencilla, pues solo deberemos probar 10 combinaciones idénticas en los controles hasta dar con la correcta, y ya que recortas la cantidad de intentos a 10, pues en el peor de los casos (valores 9-9-9-9-9), lo solucionaríamos en el ultimo intento
Resumiendo, debes pensar bien cuando desees hacer un sistema de registro, el algoritmo o método que utilizas, pues al final puede que crees algo "inviable". Todo repito, con buen rollo, no te tomes a mal las criticas
Igual en este caso, aun si se quiere una solución al reto, solo puede crearse un selfkey, no hay mas opciones. En mi caso dejo una versión parchada de tu binario
Saludos y espero que sigas practicando
http://www.mediafire.com/download/2m4edpk8sv88h99/SafeBox_Crackme.SelfKey.rar
Luego esta el tema de que ademas cometes un error muy grande en el código para generar los cinco valores aleatorios, a ver, usas:
Código (csharp) [Seleccionar]
this.numAleatorio1 = new Random();
this.valor1 = this.numAleatorio1.Next(0, 9);
this.numAleatorio2 = new Random();
this.valor2 = this.numAleatorio2.Next(0, 9);
this.numAleatorio3 = new Random();
this.valor3 = this.numAleatorio3.Next(0, 9);
this.numAleatorio4 = new Random();
this.valor4 = this.numAleatorio4.Next(0, 9);
this.numAleatorio5 = new Random();
this.valor5 = this.numAleatorio5.Next(0, 9);
Lo que siempre te dará cinco valores "aleatorios" idénticos, pues estas usando cinco clases Random que daran el mismo numero inicial . La cosa deberia ser algo como:
Código (csharp) [Seleccionar]
int valor1, valor2, valor3, valor4, valor5;
Random numAleatorio;
numAleatorio = new Random();
valor1 = numAleatorio.Next(0, 9);
//numAleatorio2 = new Random();
valor2 = numAleatorio.Next(0, 9);
//numAleatorio3 = new Random();
valor3 = numAleatorio.Next(0, 9);
//numAleatorio4 = new Random();
valor4 = numAleatorio.Next(0, 9);
//numAleatorio5 = new Random();
valor5 = numAleatorio.Next(0, 9);
Debido a ese error, la fuerza bruta se hace mas que sencilla, pues solo deberemos probar 10 combinaciones idénticas en los controles hasta dar con la correcta, y ya que recortas la cantidad de intentos a 10, pues en el peor de los casos (valores 9-9-9-9-9), lo solucionaríamos en el ultimo intento
Resumiendo, debes pensar bien cuando desees hacer un sistema de registro, el algoritmo o método que utilizas, pues al final puede que crees algo "inviable". Todo repito, con buen rollo, no te tomes a mal las criticas
Igual en este caso, aun si se quiere una solución al reto, solo puede crearse un selfkey, no hay mas opciones. En mi caso dejo una versión parchada de tu binario
Saludos y espero que sigas practicando
http://www.mediafire.com/download/2m4edpk8sv88h99/SafeBox_Crackme.SelfKey.rar