Título: Ayuda con Visual FoxPro Publicado por: gastonlopez en 14 Julio 2009, 18:10 pm Hola a todos, mi nombre es Gastón, hace mucho tiempo me incié con el cracking, ahora de vuelta me enfrento a nuevas cosas. Visual FoxPro jamás lo toqué. Busqué, entre teorías y programas, con el ReFox MMII, decompilé la rutina del serial, calculo yo.
Me gustaría saber si alguien tiene experiencia, para ponernos en contacto, o sugerencias, quién sepa también leer el código mejor. Yo 0. Les agradezco, saludos desde Argentina. LPARAMETERS cllave, thisnsemilla, lprint, thisncantidadllaves, ncompararconla LOCAL lvalido, norig, nmodif, i, j, k, semtemp LOCAL allaves, acod, u, lmodoidlicencias LOCAL thisncantidadllaves, thisncantidaddigitos, referencia cllave = STUFF(cllave, 5, 1, '') referencia = thisnsemilla IF VARTYPE(thisnsemilla) == "C" semtemp = 0 thisnsemilla = STUFF(thisnsemilla, 5, 1, '') FOR u = 1 TO LEN(thisnsemilla) semtemp = semtemp + ((ASC(SUBSTR(thisnsemilla, u, 1)) + u) / u) ENDFOR thisnsemilla = semtemp IF VARTYPE(thisncantidadllaves) == "L" thisncantidadllaves = 50 ENDIF lmodoidlicencias = .T. ELSE thisnsemilla = 10 thisncantidadllaves = 2000 ENDIF thisncantidaddigitos = 8 lvalido = .F. norig = 0 nmodif = 0 DIMENSION allaves(thisncantidadllaves) DIMENSION acod(thisncantidaddigitos) FOR k = 1 TO thisncantidadllaves allaves(k) = "" ENDFOR norig = ROUND(RAND(thisnsemilla) * 100, 0) FOR i = 2 TO thisncantidadllaves + 1 j = 2 FOR k = 1 TO 4 acod(k) = 0 ENDFOR DO WHILE j < thisncantidaddigitos + 2 norig = ROUND(RAND() * 100, 0) nmodif = norig IF nmodif < 30 nmodif = MOD(nmodif, 10) ELSE DO WHILE nmodif < 65 nmodif = nmodif + ROUND(norig / 2, 0) ENDDO ENDIF IF nmodif > 90 nmodif = MOD(nmodif, 10) ENDIF acod(j - 1) = nmodif j = j + 1 ENDDO FOR k = 1 TO thisncantidaddigitos IF acod(k) < 10 allaves(i - 1) = allaves(i - 1) + STR(acod(k), 1, 0) ELSE allaves(i - 1) = allaves(i - 1) + CHR(acod(k)) ENDIF ENDFOR IF allaves(i - 1) == cllave EXIT ENDIF ENDFOR IF lprint IF lmodoidlicencias SET TEXTMERGE TO (referencia) NOSHOW ELSE SET TEXTMERGE TO CUIUI NOSHOW ENDIF SET TEXTMERGE ON \\Generado el : <<DATETIME()>> IF lmodoidlicencias \Referido al CUIUI : <<Referencia>> \nº de ILs : <<THISnCantidadLlaves>> ELSE \nº de CUIUIs : <<THISnCantidadLlaves>> ENDIF \ FOR i = 1 TO thisncantidadllaves \<<STUFF(aLlaves(i), 5, 0, '-')>> ENDFOR SET TEXTMERGE OFF SET TEXTMERGE TO ENDIF SET EXACT ON LOCAL nbusqueda nbusqueda = ASCAN(allaves, cllave) IF nbusqueda > 0 IF VARTYPE(ncompararconla) == "L" lvalido = .T. ELSE IF nbusqueda = ncompararconla lvalido = .T. ENDIF ENDIF ENDIF RETURN lvalido ENDFUNC * |