2012-03-12 9 views
10

Utilicé Dotfuscator para proteger mi aplicación de ingeniería inversa Encriptamos los archivos dll en la aplicación de Windows, pero ¿cómo puedo hacerlo en OSX/MonoTouch?MonoTouch: Cómo proteger mi aplicación

Extraiga el dll de ipa, luego confunda las DLL en Windows, y vuelva a empaquetar las dlls cifradas en IPA, luego publíquelas en la tienda de aplicaciones.

¿Hay alguna solución simple?

Respuesta

16

En primer lugar debe recordar que iOS no permite JIT (justo a tiempo) compilación. Esto significa que todo debe ir a través del compilador AOT (antes de tiempo).

Esto da como resultado que todo el código IL de sus montajes se está convirtiendo en ARM nativo (v6, v7 y/o el pulgar) y las instrucciones que la IL se no requiere más.

Esto significa que, cuando esté compilando para Release|iPhone, el código IL se eliminará de sus ensamblajes. Ya que está eliminado, no estará presente (descompilarse) en la aplicación que publique.

NOTAS

  • los conjuntos todavía estarán dentro de la aplicación porque todavía se requiere los metadatos (por ejemplo System.Reflection necesita). Por lo tanto, los nombres de símbolos y los archivos de recursos no se destrozarán ni se cifrarán, como suelen hacer los ofuscadores;

  • Puede desmontar el conjunto ARM (que sería cierto incluso si ofuscado las asambleas antes de la compilación AOT) pero es mucho más difícil de entender (y volver a C#) que es IL.

  • Extraer los ensamblajes del IPA y procesarlos romperá al menos la firma de la aplicación (puede volver a firmarla). También será probable romper muchas otras cosas (ya que el código se referirá a nombres/estructuras que podrían haber cambiado). No creo que esto funcione (pero depende de las opciones que usaría de su ofuscador).

+1

gracias. reflector – BlueSky

+3

gracias. Sí, entiendo que es un compilador de AOT en monotouch. pero cometí un error, porque ayer puse los dlls (del paquete ipa) en las herramientas del reflector, vi un montón de código C#. Ahora lo reviso, es solo un código de método, ningún código de lógica de negocios. Muchas gracias, gracias al equipo de xamarin que trajo un producto tan bueno. – BlueSky

Cuestiones relacionadas