elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: [AIO elhacker.NET 2015] Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Como decodificar este archivo Base64 en Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como decodificar este archivo Base64 en Java  (Leído 1,852 veces)
McCript

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Como decodificar este archivo Base64 en Java
« en: 22 Junio 2016, 21:45 »

Hola, que tal.
Tengo un archivo .site que pertenece a un programa llamado "Multiclicker2" quiero ver el codigo del archivo .site.
Ya decompile el Multiclicker2 con JD (Java Decompiler) y encontre esta clase que contiene el codigo que creo es como codifica y decodifica el archivo.

Código:
package org.multiclicker2.utils;

import java.util.Arrays;
import org.multiclicker2.a.d;

public class Base64Coder
{
  private static final char[] jdField_a_of_type_ArrayOfChar;
  private static final int[] jdField_a_of_type_ArrayOfInt;
 
  public static String encodeString(String paramString)
  {
    return new String(encode(paramString.getBytes()));
  }
 
  public static char[] encode(byte[] paramArrayOfByte)
  {
    return encode(paramArrayOfByte, paramArrayOfByte.length);
  }
 
  public static char[] encode(byte[] paramArrayOfByte, int paramInt)
  {
    if ((paramInt < 0) || (paramInt > paramArrayOfByte.length)) {
      throw new IllegalArgumentException("Invalid len or len greater than actual length of the input.");
    }
    char[] arrayOfChar = new char[(paramInt + 2) / 3 << 2];
    int i = 0;
    int j = 0;
    int k;
    int m;
    int n;
    while (i + 2 < paramInt)
    {
      k = (paramArrayOfByte[i] & 0xFF) >> 2;
      m = (paramArrayOfByte[i] << 4 | (paramArrayOfByte[(i + 1)] & 0xFF) >> 4) & 0x3F;
      n = (paramArrayOfByte[(i + 1)] << 2 | (paramArrayOfByte[(i + 2)] & 0xFF) >> 6) & 0x3F;
      int i1 = paramArrayOfByte[(i + 2)] & 0x3F;
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[k];
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[m];
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[n];
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[i1];
      i += 3;
    }
    switch (paramInt - i)
    {
    case 0:
      break;
    case 1:
      k = (paramArrayOfByte[i] & 0xFF) >> 2;
      m = paramArrayOfByte[i] << 4 & 0x3F;
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[k];
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[m];
      arrayOfChar[(j++)] = '=';
      arrayOfChar[j] = '=';
      break;
    case 2:
      k = (paramArrayOfByte[i] & 0xFF) >> 2;
      m = (paramArrayOfByte[i] << 4 | (paramArrayOfByte[(i + 1)] & 0xFF) >> 4) & 0x3F;
      n = paramArrayOfByte[(i + 1)] << 2 & 0x3F;
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[k];
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[m];
      arrayOfChar[(j++)] = jdField_a_of_type_ArrayOfChar[n];
      arrayOfChar[j] = '=';
    }
    return arrayOfChar;
  }
 
  public static String decodeString(String paramString)
  {
    return new String(decode(paramString));
  }
 
  public static byte[] decode(String paramString)
  {
    return decode(paramString.toCharArray());
  }
 
  private static int a(char paramChar)
  {
    if (paramChar >= jdField_a_of_type_ArrayOfInt.length) {
      throw new IllegalArgumentException("Not Base64 data.");
    }
    if ((paramChar = jdField_a_of_type_ArrayOfInt[paramChar]) < 0) {
      throw new IllegalArgumentException("Not Base64 data.");
    }
    return paramChar;
  }
 
  public static byte[] decode(char[] paramArrayOfChar)
  {
    if (paramArrayOfChar.length % 4 != 0) {
      throw new IllegalArgumentException("Not Base64 data.");
    }
    for (int i = paramArrayOfChar.length; (i > 0) && (paramArrayOfChar[(i - 1)] == '='); i--) {}
    byte[] arrayOfByte = new byte[i * 3 / 4];
    int j = 0;
    int k = 0;
    int m;
    int n;
    int i1;
    while (j + 3 < i)
    {
      m = a(paramArrayOfChar[j]);
      n = a(paramArrayOfChar[(j + 1)]);
      i1 = a(paramArrayOfChar[(j + 2)]);
      int i2 = a(paramArrayOfChar[(j + 3)]);
      arrayOfByte[(k++)] = ((byte)(m << 2 | n >> 4));
      arrayOfByte[(k++)] = ((byte)(n << 4 | i1 >> 2));
      arrayOfByte[(k++)] = ((byte)(i1 << 6 | i2));
      j += 4;
    }
    switch (paramArrayOfChar.length - i)
    {
    case 0:
      break;
    case 1:
      if (j + 2 >= paramArrayOfChar.length) {
        throw new IllegalArgumentException("Not Base64 data.");
      }
      m = a(paramArrayOfChar[j]);
      n = a(paramArrayOfChar[(j + 1)]);
      i1 = a(paramArrayOfChar[(j + 2)]);
      arrayOfByte[(k++)] = ((byte)(m << 2 | n >> 4));
      arrayOfByte[k] = ((byte)(n << 4 | i1 >> 2));
      break;
    case 2:
      if (j + 1 >= paramArrayOfChar.length) {
        throw new IllegalArgumentException("Not Base64 data.");
      }
      m = a(paramArrayOfChar[j]);
      n = a(paramArrayOfChar[(j + 1)]);
      arrayOfByte[k] = ((byte)(m << 2 | n >> 4));
    }
    return arrayOfByte;
  }
 
  public Base64Coder()
  {
    d.a("Do not instantiate Base64Coder. Provided methods are static.");
  }
 
  static
  {
    int i = (jdField_a_of_type_ArrayOfChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray())[0];
    for (int j = 1; j < jdField_a_of_type_ArrayOfChar.length; j++) {
      if (jdField_a_of_type_ArrayOfChar[j] > i) {
        i = jdField_a_of_type_ArrayOfChar[j];
      }
    }
    Arrays.fill(jdField_a_of_type_ArrayOfInt = new int[i + 1], -1);
    for (j = 0; j < jdField_a_of_type_ArrayOfChar.length; j++) {
      jdField_a_of_type_ArrayOfInt[jdField_a_of_type_ArrayOfChar[j]] = j;
    }
  }
}

La pregunta es; ¿Cómo puedo decodificar el archivo .site usando este código? (En caso de que este codigo me sirva).

Gracias  ;-)


En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Como decodificar este archivo Base64 en Java
« Respuesta #1 en: 22 Junio 2016, 21:56 »

si ese es el código que decodifica no entiendo la pregunta... claramente se ve la función que decodifica


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
McCript

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Como decodificar este archivo Base64 en Java
« Respuesta #2 en: 22 Junio 2016, 22:02 »

Disculpa gracias por tu respuesta pero, creo que no me explique "bien", perdón.

Quiero implementar este código para que en una ventana (Consola java) me muestre el "texto" que contiene el archivo .site que yo seleccione.
 
;D ;)
« Última modificación: 22 Junio 2016, 22:15 por McCript » En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Como decodificar este archivo Base64 en Java
« Respuesta #3 en: 22 Junio 2016, 22:36 »

bueno, lees el archivo, lo decodificas y muestras, no? aun no comprendo el problema :s
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
McCript

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Como decodificar este archivo Base64 en Java
« Respuesta #4 en: 23 Junio 2016, 05:59 »

Me refiero a que como puedo adaptar tal codigo para yo pueda seleccionar la ruta del archivo importando
Código:
import scanner
en java y al insertar tal ruta decodificar el archivo con "codigo decodificador" de arriba.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como mandar a llamar un archivo java externo dentro un un archivo java
Java
hacker2000 8 10,204 Último mensaje 20 Diciembre 2005, 20:35
por Casidiablo
hola me podrian ayudar a decodificar este archivo
Scripting
elchispaartista 1 883 Último mensaje 14 Marzo 2016, 12:41
por engel lex
como decodificar numeros como este _0x12f39?
Desarrollo Web
ralar 1 858 Último mensaje 26 Agosto 2017, 16:56
por ivancea96
Decodificar un base64
Programación General
luisejo 2 1,209 Último mensaje 29 Septiembre 2017, 19:43
por luisejo
No puedo decodificar un Código BASE64
Programación General
inax123 4 707 Último mensaje 7 Junio 2018, 20:17
por inax123
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines