Página 1 de 1

EXTRAIR O NÚMERO DE SÉRIE DO HD NO CLIPPER???

Enviado: 13 Mai 2005 09:24
por Darlan
Olá !!

Seguinte galera: alguém sabe como carregar o número de série do HD em uma variável ?
Só que tem que ser no clipper 5.1, no visual e no delphi eu sei que dá, mas eu só manjo de
clipper... (preciso para colocar anti-pirataria no programa). No DOS se você der "LABEL C:"
tá lá o número, mas como o programa pode ler esse número?
Ou então se desse para pegar um número fixo do windows por exemplo, do registro... algum
arquivo TXT ou INI e carregar numa váriavel? Alguém sabe onde verificar o número de série
através do windows? Ou algum outro número que seja fixo a cada instalação do windows?

Preciso de uma luz... desde já agradeço !!!

UM ABRAÇO !!!

Darlan (Mafra-SC)

Enviado: 13 Mai 2005 13:39
por Grings
.

Enviado: 14 Mai 2005 11:11
por Clipper
Prezado Colega

Usar o número de série do volume do DOS para proteção é a maior furada, existem diversos programas e até função em clipper para modificar este número, desta forma bastaria para um espertinho pegar o número da máquina onde está instalado o sistema e duplica-lo em outra.

Até logo.

Marcelo

Rotina de Serie

Enviado: 15 Mai 2005 12:03
por marbio
Ola,

V se te ajuda





Código: Selecionar todos

      c_serial()

        ***************************
        function C_SERIAL
        ***************************
           local Local1
           Local1:= 0
           run VOL >ARQUIVO
           texto:= fopen("ARQUIVO", 2)
           ntam:= fseek(texto, 0, 2)
           fseek(texto, 0, 0)
           cvol:= Space(ntam)
           if (fread(texto, @cvol, ntam) != ntam)
              fclose(texto)
              return .F.
           endif
           npos:= At("volume ‚", cvol)
           npos:= npos + 9
           cnoserial:= SubStr(cvol, npos, 9)
           fclose(texto)
           for x:= 1 to 9
              letra:= SubStr(cnoserial, x, 1)
              Local1:= Local1 + Asc(letra)
           next
           erase ARQUIVO
           if (!file("REGISTRO.DBF"))
              tone(400, 3)
              tone(400, 3)
              clear screen
              clear gets
              setcursor(0)
              set color to gr+*/n
              @ 23,  0 say ;
                 "O Sistema p“de abrir o Arquivo de Registro. Prov vel causa: CàPIA PIRATA!!!"
              InKey(0)
              setcursor(1)
              set color to w/n
              clear screen
              clear gets
              set color to w/n
              CLEAR
              CLOSE
              QUIT
           endif
           use REGISTRO
           registro:= nregistro
           if (registro != Local1)
              tone(400, 3)
              tone(400, 3)
              clear screen
              clear gets
              setcursor(0)
              set color to gr+*/n
              @ 11,21 clear to 13,58
              @ 11,21 to 13,58
              @ 12,22 say "Haaahaaaa!!! Copia nao autorizada!!!"
              InKey(0)
              setcursor(1)
              set color to w/n
              clear screen
              clear gets
              set color to w/n
              CLEAR
              CLOSE
              QUIT
           endif


Registro

Enviado: 15 Mai 2005 12:13
por marbio
Ola, eu esqueci da funcao de registro.


Grava o numero de serie num DBF com valor diferente, vc vai ver.

t+


Código: Selecionar todos


   set scoreboard off
   set date british
   criadbf()
   g_serial()



function CRIADBF

   estru:= {}
   AAdd(estru, {"NREGISTRO", "N", 5, 0})
   dbcreate("REGISTRO", estru)
   return 0


function G_SERIAL

   local Local1
   Local1:= 0
   run VOL C: > ARQUIVO
   texto:= fopen("ARQUIVO", 2)
   ntam:= fseek(texto, 0, 2)
   fseek(texto, 0, 0)
   cvol:= Space(ntam)
   if (fread(texto, @cvol, ntam) != ntam)
      fclose(texto)
      return .F.
   endif
   npos:= At("volume ‚", cvol)
   npos:= npos + 9
   cnoserial:= SubStr(cvol, npos, 9)
   fclose(texto)
   for x:= 1 to 9
      letra:= SubStr(cnoserial, x, 1)
      Local1:= Local1 + Asc(letra)
   next
   use REGISTRO
   append blank
   replace nregistro with Local1
   commit
   erase ARQUIVO
   @ 23,  0 say [Remova o Arquivo "C:\LIXO"]
   return 0

* EOF


Enviado: 15 Mai 2005 23:06
por Darlan
Valeu Marbio !!! Vou tentar...

Obrigado pela ajuda !!

UM ABRAÇO !!!

Re: EXTRAIR O NÚMERO DE SÉRIE DO HD NO CLIPPER???

Enviado: 16 Mai 2005 14:45
por Maligno
Darlan escreveu:No DOS se você der "LABEL C:" tá lá o número, mas como o programa pode ler esse número?
Ler esse número é fácil. Tenho função pronta para ser utilizada dentro do próprio Clipper. Mas, como bem disse o Marcelo, é uma furada. Esse número pode ser modificado de forma relativamente fácil. Sem falar que é uma proteção muito manjada. E tem também o transtorno para o cliente que dependerá de sua intervenção a cada formatação do HD.

Você precisaria de um número único que não possa ser modificado. Se falamos de HD, existe o número de série gravado na fábrica. Não pode ser alterado, mas pode ser lido. Mas não é uma tarefa banal e, pelo Clipper propriamente, não é possível. A não ser por meio de um artifício especial, que pode ou não funcionar, dependendo da idade do HD e da versão do Windows. Se interessar, leia a seguinte mensagem.

[]'s
Maligno
http://www.buzinello.com/prg