QUE HACE ESTE CODIGO??

Iniciado por mauriporto, 26 Julio 2005, 19:14 PM

0 Miembros y 2 Visitantes están viendo este tema.

mauriporto

Logre abrir un programa en fox y llegue al siguiente algoritmo, necesito que me ayuden a ver que hace este codigo necesito saber el numero de permiso. Gracias

PROCEDURE Click
n = thisform.text2.value
r = ''
j = 15
FOR i = 1 TO 16
     r = r + ALLTRIM(STR(INT(n / (10 ^ j))))
     n = thisform.text2.value - VAL(r) * (10 ^ j)
     j = j - 1
ENDFOR
p = ALLTRIM(thisform.text4.value)
paux = ''
aux = VAL(CHR(ASC(RIGHT(r, 10)))) + VAL(CHR(ASC(RIGHT(r, 9))))
IF aux > 9
     a = aux
     b = INT((a - INT(a / 10) * 10))
     aux = b + INT(aux / 10)
ENDIF
paux = paux + LTRIM(STR(aux))
aux = VAL(CHR(ASC(RIGHT(r, 12)))) + VAL(CHR(ASC(RIGHT(r, 8))))
IF aux > 9
     a = aux
     b = INT((a - INT(a / 10) * 10))
     aux = b + INT(aux / 10)
ENDIF
paux = paux + LTRIM(STR(aux))
aux = VAL(CHR(ASC(RIGHT(r, 16)))) + VAL(CHR(ASC(RIGHT(r, 11))))
IF aux > 9
     a = aux
     b = INT((a - INT(a / 10) * 10))
     aux = b + INT(aux / 10)
ENDIF
paux = paux + LTRIM(STR(aux))
aux = VAL(CHR(ASC(RIGHT(r, 15)))) + VAL(CHR(ASC(RIGHT(r, 13))))
IF aux > 9
     a = aux
     b = INT((a - INT(a / 10) * 10))
     aux = b + INT(aux / 10)
ENDIF
paux = paux + LTRIM(STR(aux))
aux = VAL(CHR(ASC(RIGHT(r, 14)))) + VAL(CHR(ASC(RIGHT(r, 6))))
IF aux > 9
     a = aux
     b = INT((a - INT(a / 10) * 10))
     aux = b + INT(aux / 10)
ENDIF
paux = paux + LTRIM(STR(aux))
aux = VAL(CHR(ASC(RIGHT(r, 4)))) + VAL(CHR(ASC(RIGHT(r, 1))))
IF aux > 9
     a = aux
     b = INT((a - INT(a / 10) * 10))
     aux = b + INT(aux / 10)
ENDIF
paux = paux + LTRIM(STR(aux))
aux = VAL(CHR(ASC(RIGHT(r, 5)))) + VAL(CHR(ASC(RIGHT(r, 7))))
IF aux > 9
     a = aux
     b = INT((a - INT(a / 10) * 10))
     aux = b + INT(aux / 10)
ENDIF
paux = paux + LTRIM(STR(aux))
aux = VAL(CHR(ASC(RIGHT(r, 3)))) + VAL(CHR(ASC(RIGHT(r, 2))))
IF aux > 9
     a = aux
     b = INT((a - INT(a / 10) * 10))
     aux = b + INT(aux / 10)
ENDIF
paux = paux + LTRIM(STR(aux))
IF ALLTRIM(paux) = ALLTRIM(p)
     WAIT WINDOW 'Número de Permiso correcto'
     SELECT directoriosistema
     dd = ALLTRIM(ubicacion1) + "kcpwin.dll"
     ddd = ALLTRIM(ubicacion2) + "niwpck.win"
     arch = FOPEN(dd, 1)
     FPUTS(arch, ALLTRIM(thisform.text1.value))
     FPUTS(arch, 'fab')
     FCLOSE(arch)
     arch = FCREATE(ddd)
     FPUTS(arch, 'sd2=)f}´ds{oil]]u43oiA-/pf$#%6430U9Dñá8ÜFB,-sfd')
     FCLOSE(arch)
     registro123 = .T.
     USE permiso_opcion
     IF donde = .T.
          DO FORM clave
          SELECT permiso_opcion
     ENDIF
     RELEASE thisform
ELSE
     IF ALLTRIM(thisform.text4.value) = '2547896245'
          IF donde = .T.
               IF limite() = .F.
                    WAIT WINDOW 'Número de Permiso incorrecto'

Tor

creo que deberias postear en ingenieria inversa, meek es el k lleva esto...
^^

Real_Nova

Compilalo y tracealo.. T va a ser dificil q alguien t conteste,... Y ademas t va a servir a vos
Mas vale quedarse callado y parecer tonto que hablar y aclarar todas las dudas..

karmany

#3
Hombre si tienes el programa compilado igual podemos echarle un vistazo mejor..

Lo primero de todo ¿has probado? 2547896245

EL código no tiene pinta de ser muy difícil:
n = thisform.text2.value ;n es el valor de un textbox llamado text2
r = r + ALLTRIM (STR(INT(n/(10^j)))) ;ALLTRIM se utiliza para quitar espacios. STR te convierte un número en cadena (pero te suele dejar creo un espacio delante), lo demás es sencillo
IF ALLTRIM(paux) = ALLTRIM(p) ; Creo que esta es la comparación para el número de permiso correcto. Si consigues compilar el programa lo debuggeamos y ponemos un BP aquí, a ver qué resultados nos arroja.

Mira voy a intentar una cosa: Voy a intentar escribirlo en VB6 y ver qué hace la comparación.

PD. Veo que hay dos textbox, me tienes que indicar qué hay que poner en cada uno. En text4 ya veo que hay que poner el serial y en text2?

karmany

Ya lo he pasado a VB6. Es necesario conocer el valor de text2, ya que influye en el resultado.
Si lo compilas mejor que mejor.

tena

Ey Karmany creo que estas haciendo el trabajo de molestarte al pedo. No se si te habreas dado cuenta pero estas contestando una pregunta de hace 2 años, exactamente desde 26 Julio 2005.
Asi que no creo que te consteste.

Y como es de hace 2 años no le veo sentido de que lo hayan movido a Ingenieria Inverza.

Saludos
Tena

karmany

#6
¡Joer! tienes razón tena...
¿Por qué responde la gente a temas de 2 años?

Gracias tena, un saludo.

PD. Real_Nova ¡¡NO respondas a hilos de hace 2 años!!