44 votes

Décompilation des bibliothèques Objective-C

Je viens de terminer une bibliothèque en Objective-C que j'ai compilée comme une bibliothèque statique pour la distribution.

Je voulais savoir quelles étaient les chances d'obtenir cette décompilation.

  • Connaissez-vous un logiciel qui peut faire cela ?
  • Si oui, comment pourrais-je mieux me protéger ?

EDITAR: Ma librairie statique est faite pour iPhone / ARM

J'ai créé un algorithme qui, en fonction de certains paramètres de l'application, peut fonctionner comme démo ou comme code complet. Vous initiez l'objet avec X variables et déverrouillez la version complète. Je me demandais s'ils pourront voir cet algorithme afin de créer un générateur de clés.

83voto

Chuck Points 138930

S'il s'exécute, il peut être décompilé. Objective-C est particulièrement facile à décompiler en code lisible grâce à ses fonctionnalités dynamiques. Si vous voulez vous compliquer un peu la vie, vous pouvez écrire la majeure partie de votre code en C et dépouiller l'exécutable - ce qui a bien sûr pour contrepartie de rendre la conception de votre application plus difficile à gérer. Mais soyez honnête avec vous-même : Si quelqu'un veut craquer votre code, vous ne serez pas en mesure de l'en empêcher. Les pirates disposent d'un temps et d'un enthousiasme pratiquement illimités et seront en fait enthousiasmés par tous les nouveaux efforts que vous ferez pour les arrêter. Personne n'a encore créé de logiciel inviolable, et les plus grandes entreprises du monde ont essayé. Vous ne ferez pas mieux qu'eux, surtout si vous devez poser des questions à ce sujet sur Stack Overflow.

Prenez le temps que vous auriez consacré à contrecarrer la décompilation et utilisez-le pour améliorer votre produit - le retour sur investissement sera bien meilleur.

59voto

Rob Napier Points 92148

Ce que vous essayez de protéger n'est pas clair. de . Oui, on peut faire de l'ingénierie inverse. L'outil le plus simple est otool qui fait partie de la distribution standard des développeurs :

otool -tV <library>

A partir de là, ils passent à des choses comme IDA Pro qui est compatible avec l'iPhone et qui est très utile pour ce type de travail. Entre les deux, je suis vraiment surpris de ne pas avoir vu une version retravaillée de otx pour iPhone/ARM encore. Je ne serais pas surpris d'en voir un apparaître un jour. Et bien sûr, il y a gdb si vous essayez de comprendre comment les choses se passent et quelles sont les données à différents moments.

Si vous avez plus de détails sur ce dont vous essayez de vous protéger, il y a peut-être des réponses ciblées. En dehors de cela, lisez les commentaires de Chuck.

5voto

jamone Points 6458

ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled / PopularityOfLibrary

Si vous voulez VRAIMENT savoir, j'essaierais de le décompiler vous-même. Vous ne dites pas si c'est pour PPC, Intel, ou ARM ce qui fait une différence. Voici un décompilateur pour Intel Décompilateur i386

Je ne sais pas ce que vous pourriez faire (je ne pense pas qu'il y ait grand-chose) pour limiter cela. Le code peut toujours faire l'objet d'une ingénierie inverse. Soyez heureux que vous n'utilisiez pas Java ou .Net. Leur décompilation est si agréable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X