Pergunta

Usei o Dotfuscator para proteger meu aplicativo contra engenharia reversa. Criptografei os arquivos dll no aplicativo Windows, mas como posso fazer isso no OSX/MonoTouch?

Extrair a dll do ipa, confundir as dlls no Windows, reembalar as dlls criptografadas no IPA e publicá-las no appstore?

Existe alguma solução simples?

Foi útil?

Solução

Acima de tudo, você precisa lembrar que o iOS não permite JIT (bem na hora) compilando.Isso significa que tudo precisa passar pelo AOT (antecipadamente) compilador.

Isso resulta que todo o código IL de seus assemblies está sendo convertido em instruções ARM nativas (v6, v7 e/ou polegar) e que a IL é não requerido não mais.

Isso significa que, quando você está construindo para Release|iPhone, o código IL será removido dos seus assemblies.Como foi removido, ele não estará presente (para ser descompilado) no aplicativo que você publicar.

NOTAS

  • os assemblies ainda estarão dentro do aplicativo porque os metadados ainda são necessários (por exemplo, System.Reflection precisa).Portanto, nomes de símbolos e arquivos de recursos não serão mutilados/criptografados como os ofuscadores geralmente fazem;

  • Você pode desmontar o assembly ARM (isso seria verdade mesmo se você ofuscasse os assemblies antes da compilação AOT), mas é muito mais difícil de entender (e voltar ao C#) do que IL.

  • Extrair os assemblies do IPA e processá-los irá quebrar pelo menos a assinatura do aplicativo (você pode assiná-lo novamente).Também irá provável quebrar muitas outras coisas (já que o código se referirá a nomes/estruturas que podem ter mudado).Não acho que isso funcione (mas depende das opções que você usaria no seu ofuscador).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top