Buenas noches tengo que acceder a un sistema VFP del cual no tienen la clave, entré a las tablas usuario y la clave se encuentra cifrada con un algoritmo que no es md5, sha1, etc.
La contraseña cifrada es la siguiente:
Eh decompilado el .EXE y he encontrado la función cifrar:
Alguien puede ayudarme ha descifrar esa clave?, no he programado en el lenguaje VFP... o en todo caso decirme si se puede hacer ingeniería inversa a ese algoritmo para meterme a estudiar el lenguaje.
Gracias.
La contraseña cifrada es la siguiente:
Citarø»ôj̇
Eh decompilado el .EXE y he encontrado la función cifrar:
Código (visualfoxpro) [Seleccionar]
PARAMETER dato, encript, long
peso = CHR(57) + CHR(51) + CHR(53) + CHR(49) + CHR(52) + CHR(50) + CHR(47) + CHR(41) + CHR(73) + CHR(99) + CHR(62) + CHR(70) + CHR(57) + CHR(51) + CHR(53) + CHR(49) + CHR(52) + CHR(50) + CHR(33) + CHR(14) + CHR(31) + CHR(90) + CHR(67) + CHR(51) + CHR(56) + CHR(90) + CHR(51) + CHR(54) + CHR(43) + CHR(74) + CHR(90) + CHR(34) + CHR(57) + CHR(42) + CHR(44) + CHR(49) + CHR(42) + CHR(60) + CHR(39) + CHR(84) + CHR(77) + CHR(75) + CHR(47) + CHR(23) + CHR(34) + CHR(54) + CHR(56) + CHR(59) + CHR(93) + CHR(34)
consta = ASC(SUBSTR(dato, 2, 1))
FOR x = 3 TO long STEP 2
consta = consta + ASC(SUBSTR(dato, x, 1))
ENDFOR
consta = consta / 7
IF consta < 17
consta = 17
ENDIF
FOR x = 1 TO long
decena = VAL(SUBSTR(STR(ASC(SUBSTR(dato, x, 1))), 10, 1))
entero = consta * VAL(SUBSTR(peso, x, 1))
DO WHILE entero > 255
entero = entero - 33
ENDDO
newchr = entero + decena + ASC(SUBSTR(dato, x, 1))
DO WHILE newchr > 255
newchr = newchr - 19
ENDDO
IF x = 1
encript = CHR(newchr)
ELSE
encript = encript + CHR(newchr)
ENDIF
ENDFOR
RETURN encript
ENDFUNC
*
Alguien puede ayudarme ha descifrar esa clave?, no he programado en el lenguaje VFP... o en todo caso decirme si se puede hacer ingeniería inversa a ese algoritmo para meterme a estudiar el lenguaje.
Gracias.