Clipper On Line • Ver Tópico - Leitura do Serial de Fabrica do HD x[H]arbour

Leitura do Serial de Fabrica do HD x[H]arbour

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor sygecom » 28 Abr 2009 18:30

O exemplo
Exemplo de uso:
Function Main()
alert(SERIAL_HD())
Return


Função de leitura do serial:
******************
FUNCTION SERIAL_HD
******************
Local TDLL:=LoadLibrary("DiskSerial.dll"), RETPORTA1, lpBuffer:=SPACE(512)
IF TDLL=0
   RETURN("Erro na DLL")
   FreeLibrary( TDLL )
ENDIF
RETPORTA1:=DLLCALL(TDLL,32,"GetSerialNumber",0,@lpBuffer )
FreeLibrary( TDLL )
RETURN(lpBuffer)
Anexos
diskserial.zip
(26.46 KiB) Baixado 667 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 6987
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 127 vezes

Re: Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor TerraSoftware » 03 Ago 2009 08:17

Funciona em todos windows? Ou somente kernel NT?
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar de usuário

TerraSoftware
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 353
Data de registro: 28 Jul 2004 13:14
Cidade/Estado: Cianorte-PR
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor sygecom » 24 Jan 2010 11:15

Desculpa a demora, não tinha visto essa mensagem acima, mas apenas para deixar registrado que até então venho usando apenas de Windows 2000 para cima, então não sei se funciona com Windows como 98 e 95, se alguem poder testar e postar o resultado aqui...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 6987
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 127 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor Pablo César » 10 Nov 2010 14:23

Compilado em Harbour e testado em WINXP e WIN98. Funciona normalmente.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Re: Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor lugab » 25 Jan 2011 23:36

Testado no disco C com Harbour e xharbour e tudo ok.

Falta ver que serial q vai retornar num ambiente de rede, se o do disco C ou do servidor.

Ah, o nome correto da DLL é DISKSERI.DLL.

Obrigado Sygecom...

Gabriel
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor ANDRIL » 10 Jul 2012 07:06

Pessoal, pelo visto o função acima postada pelo colega Sygecon funciona pelos posts dos colegas. Só lembrando que tudo que depender de leitura através de DLL, EXE e outros, são "manipulados" facilmente. Pode-se facilmente criar uma DLL com o mesmo nome e com uma unica funcao que le por exemplo um arquivo de texto e neste arquivo, basta definir o serial desejado e pronto acabou a segurança. E outra forma tambem seria alterar este registro que é lido, como se ve, está em uma base de dados que tambem pode ser manipulado.

Nossa vida de programador não é facil, alem de tudo que nós temos que cuidar, temos tambem a segurança anti-pirataria para nos preocuparmos.
Até+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1270
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 46 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor TerraSoftware » 10 Jul 2012 09:27

Ola colegas.
Já faz bastante tempo que testei esta rotina. Ela realmente funciona muito bem, desde que o usuario do windows tenha privilégios de administrador, caso contrário, o retorno é vazio.
Com relação a segurança contra cópias piratas de nossos aplicativos, depois de anos trabalhando com isso, cheguei a conclusão de que nao existe um método totalmente seguro. O melhor então, é usar várias travas diferentes. E principalmente, induzir o fraudador por um caminho errado, deixando pistas falsas. Com um pouco de tempo e bastante criatividade (coisa que nao falta pra um bom programador, rs.) dá pra fazer umas coisas bem eficientes.
E é claro, tem que ficar sempre de olho, quando tiver evidencia de que alguma trava foi quebrada, tem que providenciar outra.
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar de usuário

TerraSoftware
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 353
Data de registro: 28 Jul 2004 13:14
Cidade/Estado: Cianorte-PR
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor Cavalo Marinho » 02 Fev 2015 18:02

Sei que o post já é antigo, mas estou tentando testar o programinha do colega SYGECOMe não tem jeito de resolver a pendencia DLLCALL()
alguém poderia me dizer em qual biblioteca(lib) está esta rotina? estou usando minigui+harbour.

sygecom escreveu:O exemplo
Exemplo de uso:
Function Main()
alert(SERIAL_HD())
Return


Função de leitura do serial:
******************
FUNCTION SERIAL_HD
******************
Local TDLL:=LoadLibrary("DiskSerial.dll"), RETPORTA1, lpBuffer:=SPACE(512)
IF TDLL=0
   RETURN("Erro na DLL")
   FreeLibrary( TDLL )
ENDIF
RETPORTA1:=DLLCALL(TDLL,32,"GetSerialNumber",0,@lpBuffer )
FreeLibrary( TDLL )
RETURN(lpBuffer)
Avatar de usuário

Cavalo Marinho
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 155
Data de registro: 01 Ago 2009 10:01
Cidade/Estado: Aracaju/Se
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor fladimir » 02 Fev 2015 21:37

*-- Para Harbour
#include 'hbdyn.ch' //Necessario para trabalhar com a hb_dyncall
#include 'hbcompat.ch'

function SerialHD()

   local tDLL, RETPORTA1, lpBuffer:=SPACE(512)

   tDLL:=hb_LibLoad("DiskSerial.dll")
   if TDLL == NIL  // Nao carregou a Dll
       hb_LibFree( TDLL ) //Libera a DLL
       return 'Erro na DLL'
   endif

   RETPORTA1 := hb_dynCall( { "GetSerialNumber",    tDLL, HB_DYN_CALLCONV_STDCALL}, 0, @lpBuffer)
   
   lpBuffer := Left(TiraEspacos(lpBuffer), 14)
   
   hb_LibFree( TDLL ) //Libera a DLL

return lpBuffer

***********************************************
function TiraEspacos(Arg1)
   Arg1 := Alltrim(Arg1)
   Arg1 := StrTran(Arg1, CHR(0),"")
return Arg1

Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor Cavalo Marinho » 04 Fev 2015 11:12

Há algo de errado com esta rotina, pois a cada leitura que ser faz vem um serial diferente, fiz um pequeno teste e a cada click do botão retorna um serial diferente, alguém poderia ver o que esta havendo, não tenho conhecimento desta DLL. anexei os fontes
Anexos
serial.prg
(881 Bytes) Baixado 136 vezes
serial.prg
(881 Bytes) Baixado 120 vezes
Avatar de usuário

Cavalo Marinho
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 155
Data de registro: 01 Ago 2009 10:01
Cidade/Estado: Aracaju/Se
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor fladimir » 05 Fev 2015 11:44

Eu olhei seu PRG e com relação a rotina q pega o Serial do HD via Dll esta correta, da mesma forma q eu uso aki e não tenho problemas.

Agora o q eu pensei é o seguinte, será q no teu caso qdo vc carrega no objeto do MINIGUI pra exibir ele não esta mostrando somente os Nrs?

Pq na verdade o serial é Caracter ele pode conter Números e Letras.

Fora isto não sei o q pode ser, pq em modo console q uso a rotina e tb no visual (uso outra lib gráfica) não tive problemas.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor bencz » 16 Fev 2015 17:53

Boa tarde.

Hoje temos a possibilidade de pegar as informações do volume, usando O.L.E...

"SELECT * FROM Win32_PhysicalMedia", não sei como utilizar em harbour, mas utilizo bastante em C++
Encontrei esse tutorial em C# que apresenta como utilzar também...
http://www.codeproject.com/Articles/6077/How-to-Retrieve-the-REAL-Hard-Drive-Serial-Number?fid=33442&df=90&mpp=25&noise=3&prof=True&sort=Position&view=Normal&spc=Relaxed&fr=26

Andril, utlizando esse método... não tem como a pessoa "criar uma dll que retorne um serial invalido"....
Imagem
Avatar de usuário

bencz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 517
Data de registro: 28 Abr 2012 17:36
Curtiu: 6 vezes
Mens.Curtidas: 34 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor fladimir » 16 Fev 2015 23:48

Seguinte agora não entendi mais nada... abaixo segue sua dica retornando em Harbour o Nr Serial do HD sem precisar de Dll

//------------------------------------------------------------------------------
procedure TesteHD()
   local oWmiService, oListaProcess, oDisk

   oWmiService := Service_WMI()
   oListaProcess := oWmiService:ExecQuery('Select * from Win32_PhysicalMedia')
   FOR Each oDik in oListaProcess
      alert(oDisk:SerialNumber)
   NEXT

RETURN

Porém....

Se uso a Dll retorna assim: 2SQR9JCA019417

Se uso digamos "nativo" sem Dll retorna: S2RQJ9AC104971

Observe q se compararmos 1 com o outro a cada par de caracteres esta INVERTIDO...

Agora como eu sei qual é o correto?

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor bencz » 17 Fev 2015 14:46

Fladimir, boa tarde, existe um problema, e a Microsoft tem conhecimento disso.

https://connect.microsoft.com/VisualStudio/feedback/details/623282/win32-physicalmedia-returns-incorrect-serial-number-on-vista-or-higher-when-run-as-standard-user

Bom, mas a solução para isso é simples, você precisa fazer um "SwapChars"
Veja este código, postado pelo Sr. CorySmith, para fazer esse inversão...
Private Shared Function SwapChars(ByVal chars() As Char) As String
  For i As Integer = 0 To chars.Length - 2 Step 2
    chars.Reverse(chars, i, 2)
  Next
  Return New String(chars).Trim
End Function
Imagem
Avatar de usuário

bencz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 517
Data de registro: 28 Abr 2012 17:36
Curtiu: 6 vezes
Mens.Curtidas: 34 vezes

Leitura do Serial de Fabrica do HD x[H]arbour

Mensagempor fladimir » 17 Fev 2015 17:10

Ok Benz fiz a o Swap e apareceu correto, porém meu aplicativo qdo fecha da um erro, ou seja, se utilizo esta função na hora q fecha o sistema dá um erro APPCRASH

Function TesteHD()
   LOCAL oWmiService, oListaProcess, oProcessos,;
   cSerial := '', cSerialNew := ''

   oWmiService := Service_WMI()
   oListaProcess := oWmiService:ExecQuery('Select * from Win32_PhysicalMedia')
   FOR Each oProcessos in oListaProcess
      cSerial := oProcessos:SerialNumber
      exit
   NEXT
   
   *-- Faz Swap Char para SO Vista ou Higher   (colocar função para identificar o SO, tipo if Vista or Higher faz o Swap)
   For i := 1 To len(cSerial)
      if i%2 !=0 // impar
         cSerialNew += substr(cSerial, i+1, 1)
         cSerialNew += substr(cSerial, i, 1)
      endif
    Next

RETURN cSerialNew


[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro