Pregunta

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

¿Extraer el dll de ipa, luego confundir los dll en Windows, volver a empaquetar los dll cifrados en IPA y luego publicarlo en la tienda de aplicaciones?

¿Existe alguna solución sencilla?

¿Fue útil?

Solución

Lo más importante es recordar que iOS no permite JIT (justo a tiempo) compilando.Esto significa que todo debe pasar por el AOT (antes de tiempo) compilador.

Esto da como resultado que todo el código IL de sus ensamblajes se convierta en instrucciones ARM nativas (v6, v7 y/o pulgar). y que el IL es no requerido ya no.

Esto significa que, cuando estás construyendo para Release|iPhone, el código IL se eliminará de sus ensamblajes.Dado que se eliminó, no estará presente (para ser descompilado) en la aplicación que publique.

NOTAS

  • los ensamblados seguirán estando dentro de la aplicación porque los metadatos aún son necesarios (p. ej. System.Reflection lo necesita).Por lo tanto, los nombres de símbolos y los archivos de recursos no se alterarán ni cifrarán como lo hacen generalmente los ofuscadores;

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

  • Extraer los ensamblajes de la IPA y procesarlos se romperá al menos la firma de la solicitud (puede volver a firmarla).También lo hará 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ías en tu ofuscador).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top