Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: chchdc en 17 Julio 2012, 16:22 pm



Título: Generar clave
Publicado por: chchdc en 17 Julio 2012, 16:22 pm
Hola,
Estoy intentando obtener la clave de un programa en java, podeis ayudarme:
Código
  1. private int securityTest(String s, String s1)
  2.    {
  3.        byte abyte0[] = new byte[s1.length()];
  4.        abyte0 = s1.getBytes();
  5.        if(s1.length() != 11)
  6.            return -1;
  7.        for(int i = 0; i < 11; i++)
  8.        {
  9.            if(abyte0[i] >= 97)
  10.            {
  11.                abyte0[i] += -61;
  12.                continue;
  13.            }
  14.            if(abyte0[i] >= 65)
  15.                abyte0[i] += -55;
  16.            else
  17.                abyte0[i] -= 48;
  18.        }
  19.  
  20.        long l = 0L;
  21.        for(int j = 1; j <= 9; j++)
  22.            l = l * 62L + (long)abyte0[j];
  23.  
  24.        int k = 0;
  25.        int i1 = 1;
  26.        for(int j1 = 10; j1 >= 0; j1--)
  27.        {
  28.            k += abyte0[j1] * i1;
  29.            i1 ^= 2;
  30.        }
  31.  
  32.        k %= 62;
  33.        String s2 = String.valueOf(l);
  34.        if(abyte0[0] != 11 || k != 0)
  35.            return -1;
  36.        return s.compareTo(s2) != 0 ? 0 : 1;
  37.    }

Se supone que yo conozco s, pero no s1, que es la clave que necesito obtener.


Título: Re: Generar clave
Publicado por: MCKSys Argentina en 17 Julio 2012, 18:06 pm
Si mis ojos no me engañan, s no se usa en el codigo.

Ademas, calcular s1 en base a este codigo es muy sencillo.

Estudia el codigo. Miralo por partes. Cuando comprendas que es lo que hace cada parte del programa, podras invertirlo y asi podras calcular el string...



Título: Re: Generar clave
Publicado por: chchdc en 19 Julio 2012, 11:08 am
El valor de s = 352053048488707
Como actuo? Pruebo todas las combinaciones posible hasta encontrar s1?