it-swarm-fr.com

Quels sont les avantages du code de libération obscurci?

L'exemple spécifique que j'ai à l'esprit implique le jeu actuel-alpha Minecraft, mais il s'agit d'une question générale que je pense justifie une conversation.

Minecraft est écrit en Java et empiler des traces habituellement ressemblent à ceci (exemple réel):

Java.lang.NullPointerException
    at d.a(SourceFile:247)
    at gi.b(SourceFile:92)
    at bd.a(SourceFile:33)
    at bn.a(SourceFile:69)
    at bn.e(SourceFile:115)
    at bn.d(SourceFile:103)
    at net.minecraft.client.Minecraft.i(SourceFile:1007)
    at net.minecraft.client.Minecraft.run(SourceFile:596)
    at Java.lang.Thread.run(Unknown Source)

Évidemment, ce ne sont pas le véritable paquet et les noms de méthode que le développeur utilise lorsqu'il écrit. Depuis qu'il est dans une étape alpha, il semble que le développeur aime pouvoir donner un sens à ses traces de pile, surtout si quelqu'un est capable de fournir un pour un rapport de bogue. Comme cela se tient, il est surtout dénué de sens.

Quel avantage pourrait-on peut-être espérer gagner en obscurciément son code comme celui-ci qui surmonte les inconvénients d'une identification plus difficile de bugs?

12
StrixVaria

Nous obfusions notre Java aussi ....

L'avantage est que cela rend plus difficile la conversation ingénieur (si vous êtes inquiet de quelqu'un qui voler votre base de code et l'utilise comme base pour créer un produit concurrentiel similaire, par exemple, etc.).

Vous pouvez obtenir la trace d'original de la pile: il existe des outils d'obfuscation qui créent des fichiers de référence spéciaux que vous pouvez utiliser pour exécuter les traces de pile obscurcissées et sort avec la trace de la pile de source d'origine. Celles-ci sont générées par le processus d'obfuscation lui-même, de sorte que vous ne puissiez récupérer la trace de la pile d'origine, sauf si vous avez la main sur le fichier de référence que vous avez utilisé pour obscorer le code en premier lieu.

Cela n'a pas vraiment d'inconvénients. :)

22
Bobby Tables
  • protéger votre propriété intellectuelle

La plupart des Obfuscator également optimisez votre code, supprimez des métadonnées inutilisées ou non utilisées par code, compression, élimination du code mort ou élimination en double.

3
user2567