Estoy tratando de conseguir que el {eyestable} .NET ofuscador funcione con mi sistema. Actualmente almaceno los datos del usuario en una serie de clases de diccionarios serializados, y luego deserializo esas clases para recuperar los datos. Ya ignoro la información de la versión de ensamblaje, solo porque de esa manera le está haciendo daño a la vida. Ese código es adapted from MSDN:¿Cómo mantengo la compatibilidad de deserialización entre las versiones ofuscadas y depuradas?
//to avoid cross-versioning problems
public sealed class CrossVersionDeserializationBinder : SerializationBinder {
public override Type BindToType(string assemblyName, string typeName) {
Type typeToDeserialize = null;
typeToDeserialize = Type.GetType(String.Format("{0}, {1}",
typeName, assemblyName));
return typeToDeserialize;
}
}
El problema es que ahora mi aplicación ofuscado ignorará la información de versión, pero no puede leer los datos guardados por la aplicación no ofuscado, y viceversa. Tendremos que tener una versión no ofuscada para depurar la aplicación, por lo que este es un gran espectáculo para nosotros. ¿Alguna forma de evitar este problema? ¿Debo simplemente no ofuscar las clases de datos? Eso parece un agujero de seguridad bastante grande.
I Es necesario que se ofusque para hacer funcionar un dongle, ya que sin ofuscación, será fácil eliminar las llamadas dongle. – mmr
Newsflash: será muy fácil eliminar las llamadas de dongle incluso con la ofuscación. – MichaelGG
Tal vez, incluso con todas las cosas específicas de la aplicación que vamos a poner en el dongle.No está destinado a detener al hacker dedicado, está destinado a detener al usuario que quita la clave y puede seguir usando el software. – mmr