java - online - ¿Cómo proteger un archivo Jar de la descompilación?
leer.class java (5)
Como Java conserva la mayoría de los "metadatos" durante la compilación (lo que permite la carga dinámica y la reflexión), es sencillo descompilar (no solo desmontar) los archivos de clase compilados. Es por eso que el código recuperado es muy similar al original.
Aunque no es perfecto, su única opción es usar un ofuscador, como ProGuard .
Esta pregunta ya tiene una respuesta aquí:
Estoy desarrollando una aplicación usando Java pero no voy a lanzar el código. El problema es que probé uno de estos compiladores de compilación de jar y pude obtener el código de mi archivo jar casi a la perfección. Mi pregunta es ¿cómo puedo distribuir mi archivo jar sin que se extraiga mi código?
No hay posibilidad de proteger el código del desmontaje. Puede usar una herramienta de ofuscación como ''proguard''. Incluso después de la descompilación, será casi imposible comprender el código.
No puedes. Como mínimo, la JVM necesitará sacar el código para poder ejecutarlo. Y si la JVM puede sacar el código, cualquiera puede.
Lo mejor que puedes hacer es ofuscar el código, pero recomendaría que no lo haga porque hará que rastrear los errores de producción sea muy difícil porque los rastreos de la pila serán difíciles de seguir.
Ofusque su código usando un ofuscador en el mercado. Los ofuscadores cambian los nombres de tu clase y sus métodos a algunos nombres de aspecto extraño, por lo que es difícil para las personas entender el código. Tenga en cuenta que las personas aún podrían descompilar su código, pero lo único que les resultaría difícil es comprenderlo debido a los nombres confusos.
A menos que esto sea, sería difícil para usted depurar y respaldar el código ofuscado en caso de que su cliente tenga problemas ya que los rastreos de la pila en las excepciones tendrían los nombres de clase y método desordenados.
nunca es imposible realizar ingeniería inversa en Java, pero creo que Proguard es el mejor. También es posible integrarlo con su IDE (por ejemplo, NetBeans). y ygard para hormiga