Definición
¿Qué es el name obfuscation?
Cuando escribes código, das nombres a las cosas para que queden claras: ValidateLicenseKey, decryptUserData, isPremiumAccount. Esos nombres son documentación. Cuando tu aplicación se decompila, esa documentación se le entrega directamente al atacante.
El name obfuscation la elimina. Renombra cada clase, método, campo, parámetro y variable a un símbolo corto sin significado. Al compilador no le importa cómo se llamen las cosas, así que el programa se comporta exactamente igual.
Lo que cambia es el resultado decompilado. En lugar de un método legible llamado ValidateLicenseKey, un atacante ve un método llamado a que llama a otro método llamado b. La lógica está intacta, pero cualquier pista sobre lo que significa ha desaparecido.
