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 Temas
Páginas: [1]
1  Programación / Ingeniería Inversa / serial en programa hecho con visual fox en: 2 Enero 2011, 00:41 am
Hola a todos, estoy intentando conseguir un serial valido en un programa hecho en visual fox y tengo esta parte del codigo sacado con refox donde se encuentra la parte de insertar la secuencia correcta, veis factible hacer un keygen o se podria cambiar la parte en la que mira si es incorrecto y al insertar cualquier numero sirviese y se activase.

Código:
 
LPARAMETERS _disco, _factor, _modulo, _nodemo, _unique
 _unique = IIF(TYPE('_unique')=='N' .AND. BETWEEN(_unique, 1, 99), _unique, 0)
 LOCAL ___clav, ___clax, ___clay, ___key1, ___key2, _work, _alias, _mensa
 ___clav = _open_clav(_disco, _factor, _unique, 0)
 ___clax = _open_clav(_disco, _factor, _unique, 3600)
 ___clay = _open_clav(_disco, _factor, _unique, -3600)
 ___key1 = 0
 ___key2 = 0
 _alias = SELECT()
 _mensa = ""
 _work = .F.
 IF ___clav=-1 .OR.  .NOT. usem_cfg('SHARED in 0')
    RETURN .F.
 ELSE
    LOCATE FOR ALLTRIM(modulo)==ALLTRIM(_modulo)
 ENDIF
 IF FOUND()
    ___key1 = ALLTRIM(serializar)
    _work = 0
 ELSE
    _mensa = "Programa MAL instalado."
 ENDIF
 DO WHILE TYPE("_work")=="N"
    DO CASE
       CASE _work>0 .OR. _good_keys(___clav, ___key1, _unique) .OR. _good_keys(___clax, ___key1, _unique) .OR. _good_keys(___clay, ___key1, _unique)
          DO _pon_fecha
          _work = .T.
       CASE  .NOT. getstrng(@_work, "@KZ 999999", 'Secuencia de CLAVE para el nº de serie '+TRANSFORM(___clav, "@LZ 99999999")+'@@@'+" Instalación de Aplicaciones"+": "+ALLTRIM(texto), 25, 0, "NN_SERIE", '_cadena=-1 .or. _cadena>=0', 'Secuencia de CLAVE INCORRECTA.')
          _work = .F.
       CASE _work=-1
          ___key1 = ""
          _save_keys(___key1)
       CASE _good_keys(___clav, TRANSFORM(_work, "@LZ 999999"), _unique)
          IF _save_keys(TRANSFORM(_work, "@LZ 999999"))
             DO _pon_fecha
             _work = .T.
          ELSE
             _work = 0
          ENDIF
       CASE _nodemo
          _work = (correcto("El número de Serie proporcionado NO ES CORRECTO para la secuencia de CLAVE.", .T., 1, " Instalación de Aplicaciones"+": "+ALLTRIM(texto))=100)
       OTHERWISE
          _pub_begin = CTOD(SYS(10, 2447893))
          _pub_final = _pub_begin+30
          _work = .T.
          _mensa = ALLTRIM(texto)+" en modo DEMO."
    ENDCASE
 ENDDO
 clostabl()
 SELECT (_alias)
 RETURN (LEN(_mensa)=0 .OR. correcto(_mensa, .T., 1, " Instalación de Aplicaciones")=1) .AND. _work
ENDFUNC
**
FUNCTION _good_keys
 LPARAMETERS ___clav, ___key1, _unique
 LOCAL _factor, _clavex
 _clavex = TRANSFORM(INT(RAND(___clav)*IIF(_unique=0, 100000, 1000000)), "@LZ 999999")
 RETURN (_clavex==___key1) .OR. ("|"+_clavex+"|"$"|"+___key1+"|")
ENDFUNC
**
FUNCTION _save_keys
 LPARAMETERS ___key1
 IF bloqureg(" Instalación de Aplicaciones", .F., 'Módulo BORRADO por otro usuario.', 'Módulo OCUPADO por otro usuario.', ALIAS(), .F., .F., .F., .F., .T., .T.)
    REPLACE serializar WITH IIF(EMPTY(___key1), ___key1, "|"+___key1+"|"+ALLTRIM(serializar))
 ELSE
    RETURN .F.
 ENDIF
ENDFUNC
**
PROCEDURE _pon_fecha
 _pub_begin = CTOD("01.01.1976")
 _pub_final = CTOD("13.07.2049")
ENDPROC
**
FUNCTION _open_clav
 LPARAMETERS _disco, _factor, _unique, _sinc
 LOCAL _atrib[1], _fecha
 DIMENSION _atrib[1]
 IF FILE(_disk_prog+"FECHADLL.DLL") .AND. ADIR(_atrib, _disk_prog+"FECHADLL.DLL")>0 .AND. _atrib(1, 2)=36864
    DECLARE LONG ObtenerFechas IN (_disk_prog+"FECHADLL.DLL") INTEGER, STRING @
    _fecha = obtenerfechas(-13286, IIF(RIGHT(_disco, LEN(_pub_slaps))==_pub_slaps, LEFT(_disco, LEN(_disco)-LEN(_pub_slaps)), _disco)+CHR(0))
    CLEAR DLLS
    RETURN (_unique*1000000)+MOD(_fecha+_sinc, 101301+_factor)+1
 ELSE
    RETURN -1
 ENDIF
ENDFUNC
**
<EOF>
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines