Karpoff Spanish Tutor

Programa: GetAccess'98 ver. 2.05


 

PROTECCION: Name/Serial Number.
Descripcion: Programa para desestablecer password de archivos .MDB & Permisos de Usuario. También muestra el password.
Dificultad: Novato, Facililla, Media, ETC.
DOWNLOAD: http://ashishsystems.com
Herramientas: Numega SmartCheck 6.03, W32Dasm v8.9, Visual Basic 6
CRACKER: +Er@ser   FECHA: 02/10/2000

 

 INTRODUCCION


Tipico programa realizado en Visual Basic, con un sistema "maravilloso" de protección, de estos programas podemos aprender de como NO se deben realizar los algoritmos de protección (forma educada y cortes de decir, vaya "mierda" de protección). Por favor, un consejo aunque sea la persona menos indicada para darlos, pero que dichos programadores se dediquen mejor a programar Lavadoras y no hacer estas protecciones.

Ya se que actúalmente estamos en una sociedad materialista, y que nos movemos por el dinero, blah, blah, ... pero sobre todo hay que ser PROFESIONALES!!!

Perdón por este pequeño arrebato de indignación y panfleto liberal.

Bueno, nos relajamos un poco. Antes de comenzar el atake, hay que tener claro, las herramientas que vamos a emplear, en esta "Victima" emplearemos el maravilloso programa de Numega - SmartCheck ver. 6.03, para obtener el ansiado "KEY NUMBER" o Número de Serie.

Pues, nada vamos al aaaaaattttttaaaaaaaakkkkkkkkeeeeee.......

 

 AL ATAKE


Cargamos SmartCheck y dentro del programa lanzaremos el programa "victima" en nuestro caso, el GetAccess'98. Voy a incorporar gráficos para mostrar mejor el funcionamiento del SmartCheck. Primero, desde la opción File/Open cargaremos nuestra "victima" una vez ya cargada, existen dos formas de lanzar la "victima" bien, desde la opción Program/Start o pulsando [F5]. Una vez dentro de él nos vamos a la opción Help/Register.

Entramos como USER NAME: ER@SER y como KEY NUMBER: 999666999

Partiendo, de nuestra intuición y sabiduría, y sobre todo, nos los muestra el SmartCheck, el KEY NUMBER es del formato siguiente: AC98-XXXXX-AB043BX ¡vamos, a la caza del KEY NUMBER!

Introducimos el texto a buscar: ER@SER e iremos traceando hasta encontrar el supuesto KEY NUMBER válido, pulsando [F3] nos posicionara en la siguiente, así hasta que observamos algo muy curioso.

Después de ir cargando caracter a caracter, nuestro USER NAME "ER@SER", vemos unas líneas más abajo, lo siguiente :

¡Aquí! nos ha generado un número al tratar el USER NAME "ER@SER" (caracter a caracter) --> "AC98-16416"

_vbaStrMove(String:"AC98-",LPBSTR:0064E898)

Long(16416) --> String

...

String("16416")

Observamos que realiza una concatenación con String("AC98"), String("-"), String("16416"). Es decir, _vbaStrCat(String:"AC98", String:"-", String:"16416")

y el resultado lo mueve a una cadena _vbaStrMove(String:"AC98-16416-AB043B")

Seguidamente, realiza un bucle "For x = 1 To LEN(KEY_NUMBER)", dependiendo del tamaño de caracteres que tenga nuestro KEY NUMBER, en mi caso 9 caracteres "999666999". Concatenando a la cadena el valor númerico de x como caracter, ( si x = 1 entoces añade "1", y así sucesivamente).

Observamos, que con la 1º concatenación realiza la comparación con el KEY NUMBER, este será nuestro ansiado KEY NUMBER Válido para nuestro USER NAME.

_vbaStrCmp(String:"AC98-16416-AB043B1", String:"999666999")

Fácil, nooo ;-)! Espero haberme explicado bien y sin enrollarme demasiado.

 

 -Realizar KeyGen en Visual Basic-


Primeramente hay que tener una serie de cosas claras, tenemos que conocer perfectamente y remarco perfectamente de que hace la rutina de generación.

Y os preguntareis, como?, pues con buenas herramientas, paciencia y sobre todo, "materia gris".

Partiendo de que disponemos de la herramienta-SmartCheck, cargaremos de nuevo nuestra "victima" e iremos introduciendo en el USER NAME, por ejemplo: "A", cuyo código Ascii es 65, es decir, Asc("A")=65, observamos que nos devuelve un número Long(2592), lo anotamos en un papel.

Repetimos el proceso anterior, pero esta vez introducinos "B", Asc("B")=66, y nos devuelve un número Long(2628), etc ...

Recapitulemos:
Asc("A") = 65 --> Long(2592)
Asc("B") = 66 --> Long(2628)
Asc("C") = 67 --> Long(2664)

para obtener el número Long, debemos sumar al valor ascii del caracter +7 y multiplicarlo por 36.
'----------------------------------------------------------------------
' Nombre : GetAccess Keygenerator
' Autor : +Er@ser'2000 {fOR tHE nEW mILLENNIUM}
' Creado : Martes, Septiembre 27,2000 @ 8:31:22 pm (Vers: 1.0.0000)
' Herramientas: Numega SmartCheck 6.03, W32Dasm 8.93, Visual Basic 6
'
' Descripción : Get Access 98 ver. 2.05
'----------------------------------------------------------------------

Private Sub Text1_Change()
 'user_name quitamos blancos y lo restringimos a 10
 user_name = Trim$(Text1.Text)
 user_name = Mid$(Text1.Text, 1, 10)
 L = Len(user_name)
 key = 0
 For x = 1 To L
    user_name = Asc(Mid$(Text1.Text, x, 1))
    key = key + user_name
 Next x
 key = key + 7
 key = key * 36
 'Muestra en la caja de texto (Text2), el KEY NUMBER correspondiente al texto en Text1
 Text2.Text = "AC98-" & key & "-AB0431B1"
End Sub

Kg-Ga98.Zip - Código Fuente del KeyGen

 

Un Saludo!

 +Er@ser'2000
fOR tHE nEW mILLENNIUM

 

Karpoff Spanish Tutor: Pagina dedicada a la divulgacion de informacion en Castellano, sobre Ingenieria Inversa y Programacion. Email "Colabora con tus Proyectos"
www.000webhost.com