Iniciandome en Java

Iniciado por Santi93, 23 Julio 2020, 02:42 AM

0 Miembros y 1 Visitante están viendo este tema.

Santi93

Baje un archivo ejecutable .jar y con sus respectivos archivos de las clases en Java que anda de 10 . Pero alguien sabe cómo hago para modificar el contenido de los archivos? No tengo idea de Java ya que sólo programo en C y C++. Espero se entienda la consulta... Slds

K-YreX

Veo que es el mismo tema que publicaste en la otra ocasión por lo que podías haber respondido en ese mismo y no crear uno nuevo (fuera del foro de Java además).

Un jar puede tener los ficheros fuente asociados para importarlo dentro de un IDE como pueda ser Eclipse o no. Intuyo que si el jar se ha publicado con fines de utilización y no de modificación, no contendrá los fuentes (.java) sino que solo contendrá los ficheros compilados (.class).

Si no me equivoco, aunque nunca lo he hecho, se pueden extraer los ficheros de un jar y se puede obtener el código fuente de un fichero .class. Tendrías que ver cómo hacerlo, editar los ficheros fuente que se generen y volver a crear el jar.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

ErahUnderground

Vamos por pasos:

1 - Puedes mirar el contenido de un .jar por ejemplo abriéndolo con el WinRaR.

2 - Si solo contienes ficheros .class, no tendrás el código fuente por lo que ha dicho el compañero, están compilados. Hay programitas que como javadecompilers que te permiten transformar estos ficheros a su código fuente .java, pero claro, dependiendo de la complejidad de esté no te devolverá exactamente el mismo código y puede encontrar fallos, pero para saber más o menos te puede servir.

3 - La sintaxis de C y Java se parecen en algunas cosas, pero los lenguajes son como la noche y el día, por lo que te recomiendo que si te vas a poner con ello, aprendas lo básico de este último, sobre todo POO (Programación orientada a objetos).

Espero que te sirva de ayuda.

Un saludo.

WHK

Intentar leer un .jar es como intentar leer un binario compilado de c, puedes hacerle reversing y todo pero nunca tendrás el código original.

Los archivos .jar son semicompilados, igual que un paquete semicompilado de .net, realmente no es una compilación a bajo nivel donde puedas inyectar todo a la memoria o hacer que la CPU lo interprete desde el kernel, los .jar son distintos, necesitan de una máquina virtual que los cargue, los interprete y los ejecute.

Asi que, no podrás leer y modificar el archivo jar a menos que lo descompiles e intentes crear un compilado nuevo. Debes buscar los fuentes .java, los .class realmente son objetos binarios semicompilados, como los archivos .a cuando compilas en c.

Dale un vistazo a esto:

http://java-decompiler.github.io/
https://github.com/linchanggui/dex2jar-2.0

Saludos.