El ejemplo específico que tengo en mente involucra al actual juego alfa Minecraft, pero esta es una pregunta general que creo que merece alguna conversación.
Minecraft está escrito en Java, y los rastros de la pila generalmente se ven así (ejemplo real):
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)
Obviamente, estos no son los nombres reales de paquetes y métodos que utiliza el desarrollador cuando escribe. Dado que se encuentra en una etapa alfa, parece que al desarrollador le gustaría poder dar sentido a sus rastros de pila, especialmente si alguien puede proporcionar uno para un informe de error. Tal como está, en su mayoría no tiene sentido.
¿Qué ventaja se podría esperar al ofuscar su código como este que supera los inconvenientes de la identificación de errores más difícil?
obfuscation
StrixVaria
fuente
fuente
Respuestas:
También ofuscamos nuestro código Java ...
La ventaja es que dificulta la ingeniería inversa (si le preocupa que alguien robe su base de código y la use como base para crear un producto similar de la competencia, por ejemplo, etc.).
Puede recuperar el seguimiento de la pila original: existen herramientas de ofuscación que crean archivos de referencia especiales que puede utilizar para ejecutar los seguimientos de la pila ofuscada, y sale con el seguimiento de la pila de origen original. Estos son generados por el proceso de ofuscación en sí mismo, por lo que no puede recuperar el seguimiento de la pila original a menos que tenga en sus manos el archivo de referencia que utilizó para ofuscar el código en primer lugar.
Esto no tiene desventajas realmente. :)
fuente
La mayoría de los ofuscadores también optimizan su código , eliminan metadatos inútiles o códigos no utilizados, compresión, eliminación de código muerto o eliminación de duplicados.
fuente