Seguridad antipirateria

Post Reply
Loren
Posts: 458
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Seguridad antipirateria

Post by Loren »

Compañeros:

Intento evitar las copias piratas de mi sistema mediante la lectura del nº de serie del PC. Lo he intentado con 2 metodos distintos:
a) nSerialHD( "C:" ) --> funcion de FWH
b) mediante oDisk := TDiskInfo():New( "C:" )
nserie:=oDisk:NumSerie() //Numero de Serie

En _, me devuelve un numero pero SIEMPRE es el mismo probandolo incluso en distintos PC.... Deberia ser distintos, no? ¿ Como es posible ???

Alguna solución ??

Mil gracias.
LORENZO
ARCC
Posts: 86
Joined: Sat Jun 24, 2006 4:27 pm
Location: Maracaibo - Zulia - Venezuela
Contact:

Re: Seguridad antipirateria

Post by ARCC »

Buen día para todos...
Loren wrote:Compañeros:

Intento evitar las copias piratas de mi sistema mediante la lectura del nº de serie del PC. Lo he intentado con 2 metodos distintos:
a) nSerialHD( "C:" ) --> funcion de FWH
b) mediante oDisk := TDiskInfo():New( "C:" )
nserie:=oDisk:NumSerie() //Numero de Serie

En _, me devuelve un numero pero SIEMPRE es el mismo probandolo incluso en distintos PC.... Deberia ser distintos, no? ¿ Como es posible ???

Alguna solución ??

Mil gracias.
LORENZO
Que tal Lorenzo, puedes mostrar por favor el código que utilizas para crear y utilizar el objeto oDisk de TDiskInfo, ya que cuando creas y utilizas el objeto debes hacerlo de esta forma:

oDisk := TDiskInfo():New( "C:" ) // Lo creas

oDisk:NumSerie() //Numero de Serie de C:\

oDisk:Drive( "D:" ) // colocas la nueva unidad

oDisk:NumSerial() // muestras el serial de D:\ el cual acabas de asignar.

Si necesitas utilizar una unidad diferente a C:\ puedes crearlo en método new directo, ya que por defecto se utiliza la unidad C:\. Ejemplo

oDisk := TDiskInfo():New() // Toma la unidad C:\ por defecto
oDisk := TDiskInfo():New( "D:" ) // Así o
oDisk := TDiskInfo():New( "E:" ) // Así

Nota: Estoy trabajando en unas mejoras en la clase TDiskInfo y al final de esta semana la público para que todos la puedan utilizar
Saludos,

Antonio Castro
Maracaibo - Venezuela
ant_cas@yahoo.com
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

LOREN

Puedes usar la opcion de busqueda en este mismo foro, ahi obtendras todas las respuestas a tus dudas.

( prueba a usar diferentes palabras al tema que buscas y seguro lo encontraras )

Hay varios post de un metodo que anuncio Antonio hace poco en el cual se usa una memoria USB como dispositivo de proteccion e incluye codigo listo para usare.


En mi caso, llevo mucho tiempo usando unas llaves USB de la cia Aladdin con muy buenos resultados.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
GUSPRE
Posts: 92
Joined: Thu May 11, 2006 10:00 pm
Location: BS.AS.ARGENTINA
Contact:

Post by GUSPRE »

El problema esta en que seguramente estas probando sobre Windows 98, en versiones posteriores a este sistem operativo, funciona bien, pero en W98 siempre te dará el mismo número incluso en distintas maquinas..

saludos,
GUSTAVO PREDIGER
User avatar
GUSPRE
Posts: 92
Joined: Thu May 11, 2006 10:00 pm
Location: BS.AS.ARGENTINA
Contact:

Post by GUSPRE »

c_se:=l2hex(nSerialHD("C:\"))

Esto funciona bien incluso en W98, mi recomendación es que además generes un PIN de activación y encryptes todo..

saludos,
GUSTAVO PREDIGER
mantonio_08
Posts: 330
Joined: Fri May 25, 2007 9:06 pm

Post by mantonio_08 »

Amigo:

Yo uso esto, nserie:=Str(nSerialHD()) y luego la encripto.

Este es mi codigo:

Saludos,
Antonio
Function Chequea()
Local Nserie,cEncriptado
nserie:=Str(nSerialHD())
if !Uso_red((Memvar->c_empre ),97,.f.,,,)
Tone(3000,1);Tone(4000,1);Tone(5000,1)
MsgInfo("Error ESTE SISTEMA ES UNA COPIA")
Return (.F.)
Endif
Go top
if eof().or.(Memvar->c_empre)->Fon_emp=spac(30)
MsgStop(" NO EXISTE DATOS DEFINIDOS, POSIBLE COPIA ")
close all
Return .f.
Endif
cEncriptado := Cript((nSerie),(Memvar->var_enc))
If cEncriptado#trim((Memvar->c_empre)->Fon_emp)
MsgStop(" ERROR: ESTE SISTEMA ES UNA COPIA ")
close all
Return .f.
endif
Dbclosearea()
Return .t.
Post Reply