SERIAL - PROTECAO DO SOFTWARE

MICHAELL 19/08/2009 13:59:26
#320273
Olá boa tarde a todos.
Gostaria de trocar ideias com voces das melhores e inovadoras maneiras de se proteger o software.
Eu até hoje utilizo o nslock15vb6.ocx com exemplos do macoratti para proteger os meus softwares, porem sei que ele pode ser crackeado facilmente.

Quais são as ideias de hoje em dia para se proteger um pouco melhor?
Como fazer para que o programa não solicite novamente o codigo de licença se ele for apenas formatado? é possivel isso? (isso ta me gerando muita mao de obra)
Como empresas como Microsoft fazem para impedir que uma determinada licença seja informada em mais de um computador?

agradeço a atenção de todos que poderem ajudar!!

ASHKATCHUP 19/08/2009 14:03:11
#320274
Eu, particularmente, utilizo o [Ô]serial[Ô] do HD para gerar o serial do programa. Creio que é possivel [Ô]burlar[Ô] o problema da formatação utilizando o código do hardware. Tais algoritmos podem ser encontrados facilmente na net, inclusive no VBMania.
MICHAELL 19/08/2009 14:19:37
#320280
tenho um banco de dado mysql web que captura o serial do hd..porem nem todos os computadores é mostrado.
nao consegui encontrar um codigo que capture o serial do hd que funcione em qualquer computador
ASHKATCHUP 19/08/2009 14:26:49
#320282
Eu sempre uso funções do Windows. é 99% de certeza que vai funcionar.

Cria um form e coloca o seguinte código ae


Private Declare Function GetVolumeInformation Lib [Ô]kernel32.dll[Ô] Alias [Ô]GetVolumeInformationA[Ô] (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Function GetSerialNumber(strDrive As String) As Long
Dim SerialNum As Long
Dim Res As Long
Dim Temp1 As String
Dim Temp2 As String
[ô]
Temp1 = String$(255, Chr$(0))
Temp2 = String$(255, Chr$(0))
[ô]
Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))
GetSerialNumber = SerialNum
[ô]
End Function

Private Sub Form_Load()
MsgBox GetSerialNumber([Ô]C:[Ô])
End Sub
WHELLNET 20/08/2009 09:18:00
#320384
Resposta escolhida
Eu utilizo de dois artifícios anti-pirataria
1º Com base no serial do hd da maquina, eu gero uma chave. Com esta chave, o cliente me liga e eu passo o serial. Arquivo o serial na maquina do cliente e toda vez que o sistema inicia ele verificar se confere com HD da máquina.
2º No banco da dados, na tabela em que guardo as informações da empresa (CNPJ, Nome, Etc), eu tenho um campo que guarda hash das informações.
Como essas informações geralmente saem no cabeçalho dos relatórios, se a pessoa tentar altera-las para colocar o nome de sua empresa, não vai bater com o hash e conseqüentemente para o sistema.
Tópico encerrado , respostas não são mais permitidas