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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: [1]
1  Seguridad Informática / Criptografía / Re: ¿Cómo sacar el algoritmo? en: 22 Abril 2011, 01:00 am
RESUELTO

Después de tirarme dos días buscando y buscando información, he pillado un programador italiano que había publicado en un foro el source de un programa que descifraba la contraseña.

Este es el algoritmo que usa la función que descifra la password:


Código:
void gsa_pwd(u_char *pwd) {
    u_char  *out;
    int     len,
            tmp;

    out = pwd;
    len = strlen(pwd) >> 1;
    while(len--) {
        tmp = *pwd++;
        tmp = *pwd++ - tmp;
        if(tmp < 0) tmp += 0x5f;
        *out++ = tmp + 0x20;
    }
    *out = 0;
}

Así que conseguido, ahora me gustaría estudiarlo y comprenderlo. ¿Alguién me puede explicar porqué le suma ese 0x5f?

Gracias!!
2  Seguridad Informática / Criptografía / Re: ¿Cómo sacar el algoritmo? en: 18 Abril 2011, 22:39 pm
Hola Zosemu:

Muchas gracias por tu comentario. A ver, estoy de acuerdo contigo en algunas cosas y no en otras:

Es cierto que son dos caracteres, y el primero varía con la POSICIÓN, pero NO con el TAMAÑO.

Para demostrarlo me remito a esto que publiqué en uno de los primeros comentarios:

aaaa   ^@7xY;T6
aaaaaaaaaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d^@I+wYG)6w$eX:

El tamaño de la cadena es distinto en ambos sin embargo (a partir del 4 caracteres) el primer carácter siempre es el mismo para cada CARÁCTER, en cada POSICIÓN.

Con respecto a que se modifica el primer carácter cuando el tamaño de la cadena es múltiplo de cuatro, tampoco creo que sea correcto. Te paso como referencia estos cifrados que también publiqué anteriormente:


00000   ]mVf(81A^n
00001   ]mVf(81A^o
00010   hxIYbrz,<L
00011   hxIYbrz,<M
00100   gw)9J[AQ!1
00101   gw)9J[AQ!2
00110   q"y*'8->]m
00111   q"y*'8->]n
01000   (8$5=MHX?O
01001   (8$5=MHX?P
01010   3Ct&x)3D{,
01011   3Ct&x)3D{-
01100   2BSd_pXh`p
01101   2BSd_pXh`q
01110   <LFW<MCT?O
01111   <LFW<MCT?P
10000   CTo >N3C4D
10001   CTo >N3C4E
10010   N_brx){-p!
10011   N_brx){-p"
10100   M^BR`qCSUe
10101   M^BR`qCSUf
10110   Wh5E=N.?4D
10111   Wh5E=N.?4E
11000   k|=NTdIYs$
11001   k|=NTdIYs%
11010   v(0A1A5FRb
11011   v(0A1A5FRc
11100   u'l}u'Yi6F
11101   u'l}u'Yi6G
11110   3_pSdEVr#
11111   3_pSdEVr$

Mi teoría es que el primer carácter varía DEPENDIENDO DE LOS CUATRO PRIMEROS CARACTERES DE LA CADENA. Para demostrar mi teoría he cifrado los siguientes valores:


aaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d
baaaaaaaaa   D'P2oQV8(i@"F(+l&g2s
abaaaaaaaa   )jaDoQkM3tA#"cnPA#O1
aabaaaaaaa   gIgI{^dFrTU7wYy[mOC%
aaabaaaaaa   iK*k6w@#0qlNbD3t]?#d
aaaabaaaaa   ^@7xY;T6Q40qdF6wxZ#d
aaaaabaaaa   ^@7xY;T6Q30rdF6wxZ#d
aaaaaabaaa   ^@7xY;T6Q30qdG6wxZ#d
aaaaaaabaa   ^@7xY;T6Q30qdF6xxZ#d

Como ves, cuando los 4 primeros caracteres son distintos, el cifrado es completamente distinto, pero cuando los 4 primeros caracteres se mantienen igual, el cifrado es el mismo.

Con respecto a tu teoría del ruido, he metido los dos valores que me has dado y descarta tu teoría:

O^DR>qESWf   cSkJ!epc9WB4[AJ>qilS
M^BR`qCSUf   't7ukNM@K,3%rV5)sijQ

Con respecto a la cantidad de caracteres ASCII con los que este algoritmo juega, creo que son muchos más que los que citas. Para probarlo, introduje un carácter especial (®) y cifró paréntesis de apertura "(" y un carácter que es una T invertida...

Para estudiar el comportamiento del algoritmo, he ido incrementando el 4 carácter, y este ha sido el resultado:


aaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d
aaabaaaaaa   iK*k6w@#0qlNbD3t]?#d
aaacaaaaaa   sUz\qS,olNK-`B0qA#"c
aaadaaaaaa   !bmON0tYK-+l_A-n&g!b
aaaeaaaaaa   ,m`B+l`F*kgI]?*kgI!b
aaafaaaaaa   6wT6fHL3fHG)[='hL.}_
aaagaaaaaa   A#G)C%7~E'&gZ<$e0q}_
aaahaaaaaa   L.:{}_#k$ecEX:!brT|^
aaaiaaaaaa   W9-nZ<lV`BB$V8{]V8{]
aaajaaaaaa   aC}_8yWB?!!bU7xZ:{{]
aaakaaaaaa   lNpRrTC/{]^@S5uW|^z\


Lo he intentado mirar por todos los ángulos y no le encuentro ninguna lógica, todo parece tan random cuando se le modifica uno de los 4 primeros caracteres... Estamos sin lugar a dudas en un algoritmo bastante complejo... Alguna idea por donde continuar investigando?? Muchas gracias a los dos por seguir involucrándoos en este algoritmo. Un saludo a los dos.
3  Seguridad Informática / Criptografía / Re: ¿Cómo sacar el algoritmo? en: 15 Abril 2011, 21:30 pm
Gracias APLOKIPTICO, pero, porqué mejor trabajar con hexadecimal que con decimal?

Zosemu: Muchísimas gracias por haberte preocupado en sacar la fórmula, pero me temo, que no es correcta.  :-(

El primer valor (y1) siempre es el mismo para todos los caracteres en esa posición. Así que creo que y1 tiene algo que ver con la posición del carácter y siempre es el mismo para todos los caracteres en esa posición (estoy hablando siempre de las cadenas de menos de 3 caracteres, como sabemos cuando son 4 o más, entran no cumplen esta regla) y "y2" sí que tiene relación aritmética con el valor en ASCII, que como muy bien has dicho, serían valor en ASCII-8 ó ASCII-9 dependiendo si es par o no.

Te copio los cifrados devuelto al meter los valores que me has pedido:


000   (8*:N^
111   (9*;N_
0000   ]mVf(81A
1111   3_pSdEV
a   (i
ab   (i*l
abc   (i*lN2
abcd   ]?= J.N3
a   (i
b   (j
c   (k
d   (l
e   (m
f   (n
g   (o
h   (p
i   (q
j   (r
k   (s
l   (t
m   (u
n   (v
o   (w
p   (x
q   (y
r   (z
s   ({
t   (|
u   (}
v   (~
w   ( (Paréntesis y espacio)
x   (!
y   ("
z   (#
:   (B
;   (C
<   (D
=   (E
>   (F
?   (G
@   (H
A   (i
AA   (i*k
AAA   (i*kN0
AAAA   ^@7xY;T6
AAAB   iK*k6w@#


Gracias a esto, acabo de descubrir otra cosa: La contraseña no es casesensitive. Si te das cuenta A y a tiene el mismo cifrado. Otra cosa a tener en cuenta, no?

También, se puede observar como y1 en el primer carácter es siempre (, y1 del segundo carácter es * y y1 del tercer carácter es N y no se modifica (hasta que llegamos al cuarto caracter  :¬¬) jaja!

Muchísimas gracias por tomaros la molestia y por orientarme en este mundillo que desconocía por completo y me estoy enganchando más y más. Gracias!! Un abrazo!
4  Seguridad Informática / Criptografía / Re: ¿Cómo sacar el algoritmo? en: 15 Abril 2011, 01:10 am
WOW! He seguido jugando con los ceros y los unos y ya he entendido bastante más cómo funciona este algoritmo!! Muchísimas gracias por vuestro valioso consejo!! Os explico:

Lo que sabía antes era que cada carácter en cada posición de la cadena, tiene dos caracteres asignados. Cuando el carácter aumenta (en valor ASCII), los dos caracteres correspondientes aumentaban de forma proporcional, por lo tanto tiene que haber una relación aritmética fácil de encontrar. El problema era cuando aumentábamos a 4 o más caracteres. Los dos caracteres que se le asignaban eran otros completamente distintos.

Esto son los datos que he conseguido al jugar con los ceros:


00000   ]mVf(81A^n
00001   ]mVf(81A^o
00010   hxIYbrz,<L
00011   hxIYbrz,<M
00100   gw)9J[AQ!1
00101   gw)9J[AQ!2
00110   q"y*'8->]m
00111   q"y*'8->]n
01000   (8$5=MHX?O
01001   (8$5=MHX?P
01010   3Ct&x)3D{,
01011   3Ct&x)3D{-
01100   2BSd_pXh`p
01101   2BSd_pXh`q
01110   <LFW<MCT?O
01111   <LFW<MCT?P
10000   CTo >N3C4D
10001   CTo >N3C4E
10010   N_brx){-p!
10011   N_brx){-p"
10100   M^BR`qCSUe
10101   M^BR`qCSUf
10110   Wh5E=N.?4D
10111   Wh5E=N.?4E
11000   k|=NTdIYs$
11001   k|=NTdIYs%
11010   v(0A1A5FRb
11011   v(0A1A5FRc
11100   u'l}u'Yi6F
11101   u'l}u'Yi6G
11110   3_pSdEVr#
11111   3_pSdEVr$
000000   ]mVf(81A^nCS
000001   ]mVf(81A^nCT
000010   ]mVf(81A^oCS
000011   ]mVf(81A^oCT
000100   hxIYbrz,<L#3
000101   hxIYbrz,<L#4
000110   hxIYbrz,<M#3
000111   hxIYbrz,<M#4
001000   gw)9J[AQ!1iy
001001   gw)9J[AQ!1iz
001010   gw)9J[AQ!2iy
001011   gw)9J[AQ!2iz
0000000   ]mVf(81A^nCS<L
0001000   hxIYbrz,<L#3:J
0010000   gw)9J[AQ!1iyN^
00000000   ]mVf(81A^nCS<L#3
00010000   hxIYbrz,<L#3:J}.
00100000   gw)9J[AQ!1iyN^gw

Si observáis, la cadena cifrada sigue manteniendo ese aumento proporcional, pero se ve afectada POR LOS CUATRO PRIMEROS CARÁCTERES.

Ahora que sé cómo el algoritmo funciona de forma general, necesito saber cuál es la fórmula matemática que usa para asignar los dos caracteres a cada carácter. Necesito números!!! ¿Cómo podría pasar los caracteres a números para estudiar mejor la relación aritmética?

De nuevo, muchísimas gracias!! Ahora entiendo porqué APLOKÍPTICO me ha pedido las dos cadenas. Eran para ver cómo se transforma cambiando los 4 primeros caracteres, verdad? Qué máquina!! Y muchas gracias Zosemu por tu excelente idea. GRACIAS!!!!

(¿Alguna idea para que pueda pasar los caracteres a números y seguir trabajando? ^^ Graciasssss!!!)
5  Seguridad Informática / Criptografía / Re: ¿Cómo sacar el algoritmo? en: 14 Abril 2011, 19:14 pm
Antes de nada, muchísimas gracias a APOKLIPTICO Y zosemu por haberos molestado en contestar. Muchísimas gracias!!!

APOKLIPTICO: Sí, tiene que haber relación entre los caracteres, ya que se modifican según el tipo de los caracteres que hay delante y detrás. Estos son los cifrados de las dos cadenas que me has pedido:


aaaajikeldiaopskdi   ^@7xY;T6Q<0ydP6{xe#g^HI+wgG86*$oX=mW
aaajikeldiaopskdii   aC}_8yWB?)!lU;xe:~{eA#.}+{@4P<uZB,u_

¿Podría saber porqué me has pedido esas cadenas? De nuevo, muchas gracias!!!


Zosemu: Sí, a partir de tres caracteres se modifica todo. He hecho lo que tú me has comentado, he jugado con unos y ceros y ha salido algo bastaaaaante interesante  :)


0   (8
1   (9
00   (8*:
01   (8*;
10   (9*:
11   (9*;
000   (8*:N^
001   (8*:N_
010   (8*;N^
011   (8*;N_
100   (9*:N^
110   (9*;N^
111   (9*;N_
0000   ]mVf(81A
0001   hxIYbrz,
0010   gw)9J[AQ
0011   q"y*'8->
0100   (8$5=MHX
0101   3Ct&x)3D
0110   2BSd_pXh
0111   <LFW<MCT
1000   CTo >N3C
1001   N_brx){-
1010   M^BR`qCS
1011   Wh5E=N.?
1100   k|=NTdIY
1101   v(0A1A5F
1111   3_pSdEV

Es impresionante como se modifica absolutamente todo cuando pasa de 3 caracteres... Si te fijas, el 0100 es el único que mantiene el primer carácter igual que cuando eran menos de 3 caracteres "(8".  :( MMMMmmmm...

¿Alguna idea de qué podría hacer ahora para seguir investigando y sacar más información?

Y de nuevo, y no me cansaré de repetirlo, MUCHÍSIMAS GRACIAS POR AYUDARME.   :)
6  Seguridad Informática / Criptografía / ¿Cómo sacar el algoritmo? en: 13 Abril 2011, 23:59 pm
Hola a todos!

Estoy intentando descifrar un algoritmo de cifrado simétrico. Tengo los datos que introduzco y los datos que el algoritmo devuelve, y quiero saber si hay alguna forma de saber cómo funciona este algoritmo. Os escribo algunos ejemplos:


CARÁCTER ASCII   PASS cifrado
d      (1
n      (v
dd      (l*n
ddd      (l*nN3
dn   (l*x
nn   (v*x
nnd   (v*xN3
judio   {f1'O4?)1!
j   (r
jj   (r*t
jjj   (r*tN9
jjjj   {f*tfQL7
jjjjj   {f*tfQL7Q<
e   (m
f   (n
g   (o
h   (p
i   (q
k   (s
a   (i
aa   (i*k
aaa   (i*kN0
aaaa   ^@7xY;T6
aaaaa   ^@7xY;T6Q3
aaaaaa   ^@7xY;T6Q30q
aaaaaaa   ^@7xY;T6Q30qdF
aaaaaaaa   ^@7xY;T6Q30qdF6w
aaaaaaaaa   ^@7xY;T6Q30qdF6wxZ
aaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d
aaaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d^@
aaaaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d^@I+
aaaaaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d^@I+wY
aaaaaaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d^@I+wYG)
aaaaaaaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d^@I+wYG)6w
aaaaaaaaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d^@I+wYG)6w$e
aaaaaaaaaaaaaaaaa   ^@7xY;T6Q30qdF6wxZ#d^@I+wYG)6w$eX:
awwedffrtghhghyhju   mOyq1)jPZ?nUN5K>(|u]]F_H>&.v]WE.^Izp




Sé que a cada carácter le asigna dos caracteres, pero estos dos caracteres dependen de muchos factores, entre ellos, la posición del carácter con respecto a la cadena, el tamaño de la cadena e incluso (como se puede ver en los dos últimos que tienen la misma longitud y sin embargo el primer carácter, la "a", se cifra de forma distinta) los caracteres que forman la cadena...

Quiero seguir investigándolo y sacar el algoritmo, pero ahora mismo estoy completamente stuck, y no sé qué puedo hacer para continuar. ¿Alguna idea?  :)

GRACIAS  ;-) ;-) por adelantado para los que se preocupen en leer el mensaje y darme su opinión!!!!!!!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines