Question

J'ai utilisé Dotfuscator pour protéger mon application contre l'ingénierie inverse. J'ai chiffré les fichiers dll dans l'application Windows, mais comment puis-je le faire sous OSX/MonoTouch ?

Extraire la DLL de l'IPA, puis confondre les DLL dans Windows, reconditionner les DLL cryptées dans IPA, puis les publier sur l'Appstore ?

Existe-t-il une solution simple ?

Était-ce utile?

La solution

Avant tout, vous devez vous rappeler qu'iOS ne permet pas JIT (juste à temps) compilation.Cela signifie que tout doit passer par le AOT (à l'avance) compilateur.

Il en résulte que tout le code IL de vos assemblys est converti en instructions ARM natives (v6, v7 et/ou Thumb). et que l'IL est non requis plus.

Cela signifie que, lorsque vous construisez pour Release|iPhone, le code IL sera supprimé de vos assemblys.Puisqu'il est supprimé, il ne sera pas présent (pour être décompilé) dans l'application que vous publiez.

REMARQUES

  • les assemblys seront toujours à l’intérieur de l’application parce que les métadonnées sont toujours requises (par ex. System.Reflection en a besoin).Ainsi, les noms de symboles et les fichiers de ressources ne seront pas mutilés/chiffrés comme le font généralement les obfuscateurs ;

  • Vous pouvez démonter l'assembly ARM (ce serait vrai même si vous aviez obscurci les assemblys avant la compilation AOT) mais c'est beaucoup plus difficile à comprendre (et à revenir au C#) qu'IL.

  • L’extraction des assemblys de l’IPA et leur traitement seront interrompus au moins la signature de la candidature (vous pouvez la re-signer).Ce sera également probable casser beaucoup d'autres choses (puisque le code fera référence à des noms/structures qui auraient pu changer).Je ne pense pas que cela fonctionnera (mais cela dépend des options que vous utiliserez depuis votre obfuscateur).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top