¿Qué es un ofuscador?

3732 vistas

¿Qué es y cual es su función?
Para asegurar la independencia de la plataforma, los programas Java se distribuyen en forma de bytecode, algo bastante cercano al código original. Por lo tanto, el bytecode es fácilmente descompilable, lo que aumenta el riesgo de un ataque para analizar el código fuente (ingenierÃa inversa).
Para protegernos de estos ataques, podemos recurrir a un ofuscador, es decir, una utilidad que transforma el bytecode, en otro bytecode más difÃcil de descompilar.

Cómo funciona:
Existen varias técnicas para dificultar la descompilación del bytecode. La primera se basa en los principios de optimización de código, reordenando las microinstrucciones. Otras técnicas, más radicales, cambian la organización de la memoria, el nombre de los identificadores, adjuntan código parásito o "gotos": el bytecode suele ser ligeramente más lento pero sobre todo, muy difÃcil de comprender.

Algún ofuscador

  • RetroGuard: uno de los mejores ofuscadores Open Source