Foro de elhacker.net

Programación => Java => Mensaje iniciado por: egyware en 1 Octubre 2007, 22:17 pm



Título: Como uno puede proteger sus programas java? (ayuda o sugerencias)
Publicado por: egyware en 1 Octubre 2007, 22:17 pm
Hoy dia tengo programa de asistencia remota que estoy haciendo y casidiablo me ayudo como enviar las imagenes y como no tenia el source y si el archivo jar, fue simple lo descompile para enviarselo, al hacerlo me dolio fue hacer pedasos un hijo :-(, pero mi pregunta es? :huh:
¿Como uno puede protejer sus jar y su codigo para que no lo descompilen?

posibles respuestas
- sabia de uno el Jexepack que lo guardaba en un exe impidiendo que lo descompilen inconvenientes el jexepack es pagado(trial) y pierde portabilidad
- ofuscar el codigo no se como se hace pero se descompila y se vuelce a compilar??

*la gracia es que no pierda portabilidad y que siga siendo java
alguna sugerencia


Título: Re: Como uno puede proteger sus programas java? (ayuda o sugerencias)
Publicado por: Casidiablo en 1 Octubre 2007, 23:39 pm
Pues para que no pierda la portabilidad la única cosa que conozco es lo que ya decías... ofuscar el código. La ofuscación, para los que no sepan, es modificar el código fuente original, por ejemplo:

- Incluyendo cálculos innecesarios
- Colocarle nombres extraños o que no tengan nada que ver a las variables
- Crear métodos más grandes (en vez de subrutinas)

Aún así, la ofuscación no es un método para proteger un programa... sino para hacer más difícil su comprensión, una vez se obtenga el código fuente (por el método que fuere). La ofuscación, se puede hacer manualmente, lo que conlleva a que puedan aparecer posibles errores (y que, ni nosotros entendamos lo que hemos hecho).

Por tal motivo existen herramientas para ofuscar programas en java. Tal es el caso de ProGuard... copio y pego:

Cita de: http://proguard.sourceforge.net/
La herramienta ProGuard nos permite optimizar y ofuscar nuestro código java una vez compilado. En una primera fase elimina las clases y métodos no utilizados y los elimina de los .class. Luego optimiza el código resultante y por último lo ofusca renombrando clases, métodos y campos con nombres poco legibles.

Puede utilizarse mediante el típico asistente, invocarse desde línea de comandos o a través de Ant. Es multiplataforma y tiene licencia GPL.

Aunque la verdad no le he probado. Te tocaría indagar un poco más!

Un saludo!