Pour quelles fins voudriez-vous obscurcir votre code? Je n'ai pas coulé à des fins réelles autres que participer à des concours , mais je suis sûr qu'il doit Soyez des raisons intelligentes et utiles pour obscurcir le code source. P>
Pourquoi, en général, voulez-vous ou avez-vous besoin d'obscurcir votre code? p>
quelles applications réelles ont obfuscation? P>
15 Réponses :
Il ralentit (mais n'arrête pas ceux qui sont déterminés) de l'ingénierie inverse de votre code. P>
Il peut ralentir des pirates malveillants essayant de pirater ou de modifier votre logiciel de manière non autorisée ou indésirable. Pas par beaucoup, mais si vous êtes inquiet pour une date de sortie de la rue, quelques jours ou quelques heures peuvent compter. P> li>
Ce n'est pas éthique, mais qu'il s'agisse d'un code critique que vous comprenez que vous comprenez d'une manière que certains programmeurs garantissent leur sécurité d'emploi. P> LI> ol>
Algorithme de réduction des caractères.
Disons que vous avez un contrat avec une entreprise pour produire des logiciels. Ils ont une douleur à travailler avec et ont essentiellement fait vie à votre vie un enfer vivant. Une partie du contrat indique qu'après le projet, vous devez retourner tout code source ...: D P>
Allez à la prison, ne passez pas aller, ne collectionnez pas une carte communautaire.
Hey! Si la source fournie compile, j'ai terminé ma fin de la négociation. Bien sûr, je ne m'attendrais pas à faire des travaux futurs avec cette société.
Je m'attendrais à ce qu'ils facturent le coût de la réécriture et de le maintenir jusqu'à ce que les dommages soient rectifiés cependant: p
... pas que vous aurait i> y travailliez à nouveau pour eux.
@Brad, je ne sais pas, il pourrait stipuler des contrats futurs dans sa note de rançon!
Cette approche couvre cependant votre cul dans l'événement probable qu'ils retardent le paiement ou commencent à contester la facture ou à la liberté de paiement (j'ai vu cela arriver trop souvent une fois ces types obtiennent le code source) ... -R
Ceci est intéressant, qui remettrait dans le code source obscurci soit illégal? Des avocats ici?
@Junier - (Ianal, mais) Cela dépend de la manière dont votre contrat est libellé. Il est possible que votre contrat indique spécifiquement que vous ne pouvez pas, mais ce n'est pas un scénario terriblement commun, il pourrait donc ne pas être dans le contrat du tout, étant donc parfaitement légal.
Si vous lancez une application dont la logique est en clair, alors l'obfuscation peut Lorsque vous êtes un nouveau site, battez la foule «moi aussi» peut être important. p>
Mais la prévention
Code Obfuscation est généralement appliqué aux langues interprétées telles que PHP où le code source n'est pas compilé et doit être distribué à l'utilisateur final. En réalité, l'obfuscation est cassée et je l'utilise seulement pour que les gens honnêtes soient honnêtes. Vous savez, il est plus facile d'obtenir quelque chose de craquelé que d'atteindre réellement la carte de crédit. P>
obfuscation de code est devenu populaire autour des perl de temps a été publié. Il était vraiment un artefact de rendre le code plus efficace. Dans les premiers jours d'autrefois il y avait une guerre de flamme de toutes sortes entre la communauté programmation « c » mis en place et les défenseurs perl « renégats ». Les gars de la vieille école c évidemment forgées de toutes pièces les gars perl par la performance implantation. Les perlers (?) En réponse ont commencé à venir avec hacks de performance sans tenir compte de la lisibilité. Par conséquent, l'obscurcissement. Bien sûr, cela n'est plus nécessaire puisque les perlers (?) Les performances concédées il y a le c'ers les longtemps (bien hein de piun?). Obscurcissement n'a jamais été utilisé à des fins de sécurité que je l'ai vu. En fait, si vous proposeriez comme une sorte de gens de mesure de sécurité ne vous rire de la salle. Les pirates tentent de contourner la sécurité sont en général très bien informé des langues et des jeux d'outils qu'ils ciblent. Cest ce qui les rend si bien réussi. Obscurcissement est en aucune façon une défense contre eux. P>
lire ici P>
L'objectif de l'obfuscation est de créer confusion. Comme la confusion construit, le capacité de l'esprit humain à Comprendre intellectuel multi-facettes les concepts se détériorent. Notez que cela précepte dit rien de la modification la logique à terme (exécutable) - seulement le représentant incompréhensiblement. Lorsque Un outil d'obfuscensateur bien écrit va à Travailler sur des instructions de programme lisibles, un effet secondaire probable est que le la sortie ne confondra pas seulement un humain interprète, ça va briser un Décompiler. P> blockQuote>
L'utilisation la plus importante consiste à réduire la taille. Je l'utilise toujours sur JavaScript et sur les applications Java pour téléphones mobiles (J2ME). P>
Certains obfuscators peuvent également faire quelques petites optimisations. P>
comme exemple concret, jetez un coup d'œil au scénario derrière Gmail. Ceci est principalement obscurci d'empêcher de mettre en place un pirate informatique en créant une alternative front-end qui parle aux serveurs Gmail. P>
Un secondaire - mais important - la prestation est la réduction de la taille du script. P>
J'ai utilisé le code Obfuscation dans un projet réel. J'ai développé des logiciels d'entreprise (Java Servlets). Avec des servlets, les classes compilées doivent résider sur le serveur afin de fonctionner (fichiers WAR / JAR). Dans la plupart des cas, ils résident sur des serveurs que je peux soit a) le contrôle, soit b) faire confiance aux opérateurs. P>
Cependant, un client a insisté sur l'application réside sur son serveur pour une utilisation "intranet". Étant donné que le client avait des antécédents d'éthique "moins que stellaire", j'ai pris la précaution d'exécuter le Java compilé à travers un Obfuscator d'abord. J'ai également testé le résultat assez bien pour que le code décompilé était à peu près inutilisable.
p>
Vous pouvez demander "pourquoi traiter avec un tel client?", mais la commercialisation globale de cette application particulière était en dehors de mon contrôle, bien que toute préoccupation de sécurité n'était pas. C'était une meilleure solution de compromis pour le cas particulier p>
acclamations, p>
-r p>
Obfuscation ne va pas battre un pirate informatique déterminé ou protéger votre algorithme secret, mais dans la plupart des cas, ce n'est pas le point. Traditionnellement, il n'a besoin que d'être suffisamment bons pour faire payer une entreprise pour un support logiciel et des mises à jour plutôt que de prendre les efforts nécessaires pour désélectionner et maintenir les logiciels eux-mêmes. P>
Je suis d'abord rencontré l'obfuscation au début de Unix lorsque la plupart des programmes C devaient être livrés sous forme de source en raison de la pléthore de différentes architectures de la CPU et du manque de liens intelligents ou de formats de fichiers d'objet courants. P>
Avec la montée des langues interprétées, l'obfuscation est maintenant probablement utilisée plus que jamais pour les logiciels commerciaux. P>
Nous vendons des obducteurs aux personnes conçues des circuits dans VHDL et Verilog. Parce que de telles conceptions sont généralement assez grandes, il y a beaucoup à obscurcir (souvent des dizaines de milliers de lignes) et d'essayer d'inverser l'ingénieur est extrêmement difficile. P>
Code Obfuscation a une application commerciale limitée. Il peut toutefois aider à aiguiser une boîte à outils de développeurs de manière unique. Le code obscurciable sert de contrepoint extrême pour nettoyer la conception de code bien documentée. P>