Hola:
Hay "ofuscadores" de código. No hacen nada especial, salvo cambiar los nombres de clase y variables del código compilado. El código sigue siendo accesible con un descompilador, pero no es lo mismo interpretar una linea que diga persona.setSueldo(nuevoSueldo); que si la misma línea dice afiafsjd.aresijfa(ñajfse)
Aquí tienes algo sobre
ofuscadores de código
Se bueno.