私が念頭に置いている具体的な例は、現在アルファ版のゲームであるMinecraftに関係していますが、これは一般的な質問であり、ある程度の会話が必要だと思います。
MinecraftはJavaで記述されており、スタックトレースは通常次のようになります(実際の例)。
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)
明らかに、これらは開発者が作成するときに使用する実際のパッケージおよびメソッド名ではありません。彼はアルファ段階にあるので、特に誰かがバグ報告のためにそれを提供できる場合、開発者は自分のスタックトレースを理解できるようにする必要があるようです。現状では、ほとんど意味がありません。
より困難なバグ識別の欠点を克服するこのような彼のコードを難読化することにより、どのような利点を得ることができるでしょうか?
1
簡単に言えば、難読化はコードのリバースエンジニアリングの経済性を変えるだけで、それ以上のものはありません。
—
マークブース