elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1]
1  Programación / Ingeniería Inversa / Programa en .Net en: 20 Febrero 2012, 23:18 pm
Este programa lo consegui crackear con jump/nop, pero ahora estoy intentando crear un keygen

El programa esta compuesto por un ejecutable .net, una libreria .net y otra en ensamblador

El programa crea una license.cfg cuando te registras, compuesto de 640 caracteres que estan en el rango hexadecimal ( es decir "e4bb2..." )

donde creo que se deshace el archivo es en una funcion a la que no se como acceder

Código:
// <Module>
[SuppressUnmanagedCodeSecurity]
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig)]
public unsafe static extern AuthenticateResult DoAuth(char*);

se que extern significa que esta en otra libreria, pero donde?

otra duda que tengo es en
Código:

// <Module>
internal unsafe static License* =(License* ptr, License* ptr2)
{
   <Module>.std.basic_string<char,std::char_traits<char>,std::allocator<char> >.=(ptr, ptr2);
   <Module>.std.basic_string<char,std::char_traits<char>,std::allocator<char> >.=(ptr + 28, ptr2 + 28);
   <Module>.std.basic_string<char,std::char_traits<char>,std::allocator<char> >.=(ptr + 56, ptr2 + 56);
   <Module>.std.basic_string<char,std::char_traits<char>,std::allocator<char> >.=(ptr + 84, ptr2 + 84);
   <Module>.std.basic_string<char,std::char_traits<char>,std::allocator<char> >.=(ptr + 112, ptr2 + 112);
   <Module>.std.basic_string<char,std::char_traits<char>,std::allocator<char> >.=(ptr + 140, ptr2 + 140);
   *(ptr + 168) = *(ptr2 + 168);
   return ptr;
}
esto parece que copia los datos de license de una a otra, y lo hace de forma mas o menos directa

una de las cosas que contiene la licencia es el generate time

Código:
public static string GetLicenseGenerateTime()
{
   return new string(<Module>.std.basic_string<char,std::char_traits<char>,std::allocator<char> >.c_str(ref <Module>.g_licence + 140));
}
He creado varias licencias con los mismos datos (solo varia el generate time)
cambia a partir de la posicion 496 del archivo de licencia

Código:
f9a8828716eb09ebbc230efcad39d2a3
esto deberia ser una tipo de timestamp codificado

muchas gracias por leer y si teneis alguna ida decirmela XD
Un saludo

edit:

del 28 al 56 se guarda la hardwarekey (28 digitos)
en otra parte del programa se calcula (puede que de otra forma otra hw key) con MD5 (es decir 32 digitos)

Y tambien hay que tener en cuenta que la codificacion se tiene que poder hacer en los dos sentidos
2  Programación / Ingeniería Inversa / Programa con net reactor en: 17 Enero 2012, 23:35 pm
Buenos dias

Desde no hace mucho estoy a empezando a intentar crackear algunas programas y me he encontrado con uno enpaketado en net reactor 3.x y estoy muy perdido

he encontrado
http://foro.elhacker.net/ingenieria_inversa/problema_con_unpack_net_reactor_3980-t335893.0.html

pero no consigo debugearlo ya he cambiado las excepciones en las opciones pero me sale este error


 Message=Debugged program was unable to process exception
 Message=Module C:\Windows\syswow64\MSCTF.dll
 Message=Process terminated, exit code 4000001E (1073741854.)

y no consigo solucionarlo de ninguna manera, no se si tiene algo que ver que sea 64 bits

Aun asi consegui guardar el programa cargado desde la ram a un archivo, pero son mas de 40 mb lo que se me ha guardado (el programa original ocupa 1 mb + algunos archivos de datos) y estan bien creadas la RVA y su tamaño pero el programa no se ejecuta correctamente (se abre una terminal y me dice que el programa dejo de responder no me da ni codigo de error) y si intento debugear el nuevo programa se me termina en el mismo punto que el original.

Muchas gracias por leer y a ver si me podeis aconsejar
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines