Codigo en C# Criptografia por favor ayuda

Iniciado por festina73, 28 Octubre 2019, 21:29 PM

0 Miembros y 1 Visitante están viendo este tema.

festina73

Hola alguien sabe
que significa y que hace este codigo


ZeroMemory(gch.AddrOfPinnedObject(), sSecretKey.Length * 2);
gch.Free();


gracias


ThunderCls

-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

kub0x

Bueno tu pregunta poco tiene que ver con criptografía, estás dando un código que forma parte de alguna implementación criptográfica.

En este caso, las dos líneas son pertenecientes a la API de windows y son normalmente llamadas desde procesos nativos codificados por ejemplo en C++. Por lo tanto al estar tu en C# tienes que hacer uso de Marshalling o P/Invoke para llamar código unmanaged desde managed.

Zeromemory es una función que setea la porción de memoria que tu le dices a 0. En este caso gch.AddressOfPinnedObject() es el puntero de memoria a gch, y sSecretKey.Length * 2 es el número de 0 que va a setear desde el inicio del puntero de gch.

Después gch.Free() es el equivalente a llamar desde C++ a Free(gch); por lo tanto lo que hace es desreferenciar el puntero gch para que el heap lo libere, ten en cuenta que esto hace que gch no contenga nada útil porque pudo haber sido sobreescrito al ser liberado en heap.

Si te suena a chino vas a tener que estudiar mucho :D

Saludos.
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate