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


 


Tema destacado: ¿Usas Skype? Protégete de los Skype Resolver


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Desafíos - Wargames (Moderador: Kasswed)
| | | |-+  Problemas crackeando Encriptacion de un dato
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas crackeando Encriptacion de un dato  (Leído 571 veces)
Susanita10

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Problemas crackeando Encriptacion de un dato
« en: 21 Agosto 2015, 18:09 »

Muy buenas tardes, Soy nueva en el Foro y en el mundo del Cracking.

Necesito ayuda con un tema de Cryptografia de la función CryptCreateHash, CryptCreateHash, y CryptDeriveKey.

Estoy con un compañero, crakeando un .exe que genera unos archivos binarios, hasta ahora todo bien, excepto por dos de los archivos que genera el programa.

El problema resulta en que uno de los archivos me cifra una ruta de la computadors con una clave que ya descubrimos gracias al Ollydbg, sin embargo usando el seudo código del IDAPRO6.4 el programa te ayuda un poco más a ver que containers utilizó el programador fuente para realizar su cifrado.

En este sentido,según la ayuda del MSDN, dichas funciones tienen los siguientes parámetros:
BOOL WINAPI CryptCreateHash(
  _In_  HCRYPTPROV hProv,
  _In_  ALG_ID     Algid,
  _In_  HCRYPTKEY  hKey,
  _In_  DWORD      dwFlags,
  _Out_ HCRYPTHASH *phHash
);

El programa me funciona bien si coloco los valores por defecto.
CryptCreateHash(hCryptProv, 0x8003, 0, 0, &hHash)
Donde hCryptProv es el valor que me arroja otra función (CryptAcquireContext).

Si embargo, el IDA me arroja la siguiente sintaxys:
        v4 = (HCRYPTHASH *)((char *)v2 + 4);
        if (!CryptCreateHash(*(_DWORD *)v2, 0x8003u, 0, 0, (HCRYPTHASH *)v2 + 1))
   
v4 = (HCRYPTHASH *)((char *)v2 + 4);
   v5 = *(_DWORD *)(a2 - 8);
   v11 = (const BYTE *)CString::GetBuffer((CString *)&a2, v5 + 1);
   if (!CryptHashData(*v4, v11, v5, 0))
      sub_407C50(-536869115, 0, 79, (int)a_IncCkexceptio);
   CString::ReleaseBuffer((CString *)&a2, -1);
   v6 = *v4;
   v7 = *(_DWORD *)v2;
   v11 = 0;
   if (!CryptDeriveKey(v7, 0x6801u, v6, 1u, (HCRYPTKEY *)v2 + 2))
      sub_407C50(-536869113, 0, 79, (int)a_IncCkexceptio);
   v13 = 0;

Donde v2=a una plabra password que ya se descubrió en el Olly.
y a2= es la longitud en esa palabra.

Necesito generar el archivo fuente tal cual como lo hizo el programador para luego generar el archivo .bin que tiene este dato cifrado.

Sin embargo, para generar v5 creo una variable int que va a ser (strlen(Password) -8) y luego la casteo a DWORD no lo admite. (no admite los casteos de LPTSTR a string ).

No entiendo por que crea el objeto tipo hash con v4???.

Yo trato para crear v11. Generar un objeto tipo CString y a ese objeto le digo ss.Getbuffer(&a2,v5+1), y me dice que no puede ejecutar el GetBuffer

Y menos me admite como tipo parametro a v11 de CryptHashData.

Lo se estpy en tremendo KILOMBO, alguien podría ayudarme con algo adicional que no estoy tomando en cuenta, algún tipo de conversión o bien alguna pista para leer.

 :D


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problemas cifrado
Hacking Wireless
tordoman 5 1,099 Último mensaje 22 Febrero 2006, 16:24
por t321
crackeando WEP con backtrack
Hacking Wireless
ziprid 2 1,808 Último mensaje 26 Octubre 2006, 23:05
por ziprid
Crackeando problemas (yoda's protector) « 1 2 »
Ingeniería Inversa
Darksp1rit 12 2,680 Último mensaje 6 Marzo 2008, 12:34
por Darksp1rit
Problemas con Encriptacion de Pass
Hacking Básico
CloudswX 2 2,345 Último mensaje 7 Octubre 2009, 19:55
por CloudswX
¿Una variable es un dato o contiene un dato?
Programación General
theluigy13etv 6 2,363 Último mensaje 19 Agosto 2011, 23:01
por theluigy13etv
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines