comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Cracking en Java

  • 7 Respuestas
  • 6745 Vistas

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

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5409
  • Actividad:
    20%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Octubre 01, 2014, 08:46:15 am »
Como muchos sabemos, un programa creado en java no es lo mismo que un ejecutable PE, esto radica en que los programitas compilados en java son un conjunto de bytecodes los cuales son interpretados por la JVM (Java Virtual Machine) que es la maquina virtual de java que interpreta estos bytescodes y realiza la función especifica, es por este motivo que java es un lenguaje multiplataforma, ya que es tan solo tener en el SO la JVM instalada para poder correr estos programas y listo. Pues bien, para entrarle a un programa creado en java, ya que como no es un ejecutable PE, no se usa el querido Olly sino un decompilador para java que lo que hará es mostrarnos el fuente real del programa, ya que como es un lenguaje interpretado es mas fácil la decompilación de su code a menos que el code no este ofuscado.

Java por medio del JDK (conjunto de herramientas para poder programar en este lenguaje), toma el código fuente creado por el programador con extensión .java y genera un archivo compilado con extensión .class, que es el código fuente compilado y que a su vez contiene los bytescodes que serán interpretados por la JVM.

Pues bien, los ejecutables de java poseen una extensión .jar que es tan solo un archivo que contiene todas las clases del programa (.class), y otros recursos del mismo y que a su vez puede ser descomprimido con winrar u otro descompresor de archivos rar ;) para obtener estos files.

Ahora, para poder entrarle a este programa debemos analizar primero como es su protección, así que lo ejecutamos y vemos el pantallazo del mismo:


No tiene ningun sitio donde ingresar serial ni nada de eso, así que adelantemos la fecha por un mes y cuando lo volvemos a ejecutar tenemos esto:


Como ven es un trial que pasados 30 dias de uso deja de funcionar y nos muestra este cartelito. Entonces ahora lo que haremos es descomprimir el archivo kotoba.jar en una carpeta aparte y así buscar la clase sospechosa de esta protección:


Aqui vemos una clase muy sospechosa de nombre LicenseChecker.class, entonces traemos nuestro decompilador de java, en este caso uso el Dj Java Decompiler, lo abrimos con el y obtenemos el fuente.


Y el código fuente completo de la clase es este:
Código: Java
  1. import java.io.FileInputStream;
  2. import java.io.IOException;
  3. import java.util.Enumeration;
  4. import java.util.Properties;0
  5.  
  6. public class LicenseChecker
  7. {
  8.  
  9.     public LicenseChecker()
  10.     {
  11.         Properties licenseFrase = new Properties();
  12.         try
  13.         {
  14.             FileInputStream LIstream = new FileInputStream("license.doc");
  15.             licenseFrase.load(LIstream);
  16.         }
  17.         catch(IOException e)
  18.         {
  19.             isLicensed = false;
  20.         }
  21.  
  22.         String s;
  23.         for(Enumeration enum = licenseFrase.propertyNames(); enum.hasMoreElements();)
  24.             s = (String)enum.nextElement();
  25.  
  26.         String license_key = new String(licenseFrase.getProperty("KEY", "non"));
  27.  
  28.         if(license_key.equals("exoir4K34SCHRVekf0y63gr"))
  29.             isLicensed = true;
  30.         else
  31.             isLicensed = false;
  32.     }
  33.  
  34.     public static boolean isLicensed;
  35. }

Allí vemos primero que abre un file "license.doc" y en caso de no existir, como genera una excepción, el programa asigna a la variable isLicensed el valor false; pero si el file existe, ejecuta un ciclo for que obtiene los elementos del file y enseguida de este la variable license_key toma el valor que se le asigna a la propiedad KEY escrita en el file, que finalmente es comparada con el valor "exoir4K34SCHRVekf0y63gr" y si son correctas asigna a isLicensed el valor true, de lo contrario flase.

Como vemos todo el embrollo se puede sanar asignando a la variable isLicensed el valor true que es cuando la KEY del file es la correcta, pues bien, tenemos dos opciones, cambiar el code de la clase o generar el file key para que quede registrado.

La primera opción seria modificar todo este code de la siguiente forma para que isLicensed tenga siempre el valor de true:

Código: Java
  1. import java.io.FileInputStream;
  2. import java.io.IOException;
  3. import java.util.Enumeration;
  4. import java.util.Properties;0
  5.  
  6. public class LicenseChecker
  7. {
  8.  
  9.     public LicenseChecker()
  10.     {
  11.             isLicensed = true;
  12.     }
  13.  
  14.     public static boolean isLicensed;
  15. }

Con esto conseguiremos que el programa al comprobar la lisencia siempre este correcta xD. Ahora para guardar los cambios debemos seleccionar File/Save y guardar el código fuente con el mismo nombre de la clase es decir "LicenseChecker.java", luego de esto nos vamos al sitio donde la guardamos a traves de la consola de win y compilamos el archivo fuente de la siguiente manera:


Si estamos en la misma carpeta donde esta el archivo "LicenseChecker.class", este será reemplazado por el nuevo que acabamos de crear. Ahora para probar nuestra clase modificada debemos insertarsela al prgrama "kotoba.jar", pero antes realicemos una copia de este para evitar problemas :), luego lo abrimos con winrar y le añadimos la clase que acabamos de generar arrastrandola sobre el mismo.



Le damos aceptar a esta ventana de winrar y añadirá la nueva clase que compilamos ;), luego ejecutamos el programa y vemos que aun con la fecha adelantada no nos muestra la nag


Bien, ahora el segundo método será crear el key file para que quede registrado limpiamente, pues bien, es tan solo crear un nuevo archivo "license.doc", con el bloc de notas ya que debe ser en texto plano y le añadimos la siguiente linea:

KEY exoir4K34SCHRVekf0y63gr


Guardamos los cambios y el archivo lo colocamos en la misma carpeta que el programa "kotoba.jar" pero el original, no el que acabamos de parchear, ya que no tendria sentido, y con esto lograremos registrarlo.



¡EUREKA!, estamos registrados!!

Autor: AmeRiK@nO


Desconectado Andreus

  • *
  • Underc0der
  • Mensajes: 11
  • Actividad:
    0%
  • Reputación 0
  • ¡Piensa siempre en voz alta!
    • Ver Perfil
  • Skype: AndreusCafe
« Respuesta #1 en: Octubre 01, 2014, 01:27:16 pm »
Excelente :D muy útil, gracias por compartir.
Si nos imponemos limites, no seremos más.

Desconectado Hu3c0

  • *
  • Underc0der
  • Mensajes: 434
  • Actividad:
    0%
  • Reputación 0
  • In the middle Netbeans
    • Ver Perfil
« Respuesta #2 en: Octubre 01, 2014, 06:25:09 pm »
Me ha encantado el Tutorial, jefe, es mi lenguaje preferido, y veo lo simple que es crackear una aplicación de Java.

Ya le he puesto una chincheta a este post in my brain, y te pido disculpas porque no habia visto el mp, que me mandaste, gracias hermano.


Un abrazo marik, en el buen sentido de la palabra,jajaja
« Última modificación: Octubre 01, 2014, 09:16:16 pm por fermino »

Conectado Gabriela

  • *
  • Co Admin
  • Mensajes: 877
  • Actividad:
    3.33%
  • Reputación 15
    • Ver Perfil
    • Email
« Respuesta #3 en: Octubre 03, 2014, 04:02:56 am »
Ayssss, cada día me cautiva más este universo.

Gracias por tu permanente trabajo solidario.

G,

Desconectado estiven99999

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: estiven99999
« Respuesta #4 en: Octubre 10, 2014, 05:40:43 am »
Maldito(con todo el respeto de la palabra como dice Hu3c0) que has estudiado xD
Antrax mis respetos para ti paso de vez en cuando por aca y veo siempre algo nuevo de ti sigue asi men.

Desconectado osc

  • *
  • Underc0der
  • Mensajes: 13
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Octubre 16, 2014, 06:16:20 pm »
Gracias por compartir!....parece bastante sencillo hacer craking con java.

Desconectado Snifer

  • *
  • Underc0der
  • Mensajes: 1439
  • Actividad:
    0%
  • Reputación 1
  • Snifer@L4b's
    • Ver Perfil
    • Snifer@L4bs
  • Twitter: sniferl4bs
« Respuesta #6 en: Octubre 16, 2014, 06:25:46 pm »
Maldito(con todo el respeto de la palabra como dice Hu3c0) que has estudiado xD
Antrax mis respetos para ti paso de vez en cuando por aca y veo siempre algo nuevo de ti sigue asi men.

Algo que resaltar no es de Antrax el tutorial como cita en la fuente es  AmeRiK@nO el que lo realizo, si no ando mal esto anda en la lista de CLS.

Regards,
Snifer
http://www.sniferl4bs.com


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Desconectado Bartz

  • *
  • Colaborador
  • *
  • Mensajes: 93
  • Actividad:
    28.33%
  • Reputación 4
  • ~Afaik~
    • Ver Perfil
« Respuesta #7 en: Diciembre 21, 2017, 12:56:36 am »
Muy buen aporte y antes que nada Gracias ! :D

Estoy empezando a programar en este lenguaje y al ver que es tan facil de crackear se me ocurre la pregunta, hay alguna manera que despues de compilado el programa no se pueda "descompilar" para que no se pueda cambiar las clases y demas ?


Con la fuerza del mar, con la paz del rio


 

¿Te gustó el post? COMPARTILO!



Resolviendo CrackMe en Java

Iniciado por Pr0ph3t

Respuestas: 0
Vistas: 2125
Último mensaje Agosto 22, 2012, 11:54:54 am
por Pr0ph3t
Descargar Curso Completo + Herramientas + Ejemplos Manual Cracking sin secretos

Iniciado por larson32

Respuestas: 0
Vistas: 1412
Último mensaje Septiembre 21, 2018, 07:05:24 pm
por larson32
Introduccion al cracking con ollydbg desde cero

Iniciado por dracko.rx

Respuestas: 1
Vistas: 3008
Último mensaje Junio 27, 2012, 07:34:43 pm
por Cronos
Curso Cracking por Ricardo Narvaja

Iniciado por Pa531no5

Respuestas: 1
Vistas: 2883
Último mensaje Julio 15, 2010, 05:09:41 am
por JerkBoyz
Forma Correcta de ingresar al Cracking

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2181
Último mensaje Febrero 20, 2010, 03:00:59 am
por ANTRAX