Ocultar el código de java

Solange
03 de Enero del 2004
Hola a todos!
Alguien sabe como ocultar o encriptar el código de java (no javascript) cosa de hacer despistar a los descompiladores de .class ???.

cualquier cosa porfa escribanme al correo. Grax ;)

Roger
03 de Enero del 2004
Bueno, esto es algo que a muchisimos programadores, no solo de java, sino de c, c++, etc nos gustaria hacer. Antes era realmente sencillo, pues el propio programa regeneraba su codigo directamente en la memoria, es decir, ese codigo no estaba escrito, porque en msdos se podia acceder directamente al bloque de la ram donde se ejecuta el codigo. Actualemente, ventanitas no nos lo permite (mejor...), por lo que tenemos que aguantarnos y hacer frente a los desensambladores y descompiladores... de igual forma, como partidario del freeware y la licencia libre, siempre anexo el fuente a mis programas, por lo que esto no me preocupa especialmente. Para cualquier otra cosa me escribes al correo. Roger.

Heihachi
03 de Enero del 2004
Se pueden encriptar los .class y usar un classLoader propio para desencriptarlos. Eso previene en principio que descompilen los .class.

Aquí explican como se puede hacer:

http://www.javaworld.com/javaworld/javaqa/2003-05/01-qa-0509-jcrypt.html

y (siento desilusionar) también explican como obtener los .class desenriptados independientemente del método usado para encriptar

Aunque al menos se complica un poco la tarea de obtenerlos...

También puedes optar por la ofuscación. Con la ofuscación obtienes unos nuevos .class en los que se modifican los nombres de clases, variables y métodos por cadenas sin sentido con lo que se dificulta la lectura del código descompilado

Yo he probado el proguard con una aplicación con muchas clases y la verdad es que te tienes que armar de paciencia para entender algo.

Hay ofuscadores que tambien encriptan todos los String y que añaden fragmentos de código que no se usan. Con eso puedes desanimar a más de uno...

Saludos!

Roger
03 de Enero del 2004
Pese a que las tecnicas de encriptacion han avanzado, las tecnicas anti-encriptacion lo han hecho el doble. He estado preguntando a colegas d argentina y de mejico, y todos me han dixo lo mismo: no hay ningun metodo para encriptar .class que un pardillo sin idea de java no pueda desencriptar.