Legal Álvaro. Muito esclarecedor o artigo. Realmente não existe forma
mágica para impedir a cópia. Se existisse, não haveria tanta gente
perdendo os cabelos por causa da pirataria.

Só complementando, o meu sistema não é comercial, e o banco de dados
(Postgres) eu crio manualmente, as tabelas e tudo mais. E a senha só
eu sei.

Prós: É um sistema 100% a prova de cópia.

Contra: Se eu morrer ninguém vai conseguir dar manutenção no sistema.


--- Em delphi-br@yahoogrupos.com.br, Álvaro Vieira
<[EMAIL PROTECTED]> escreveu
> Amigos,
> 
> Encontrei este texto, enviado à lista algum tempo atrás, e achei-o bem
> interessante...
> 
> ===
> Protegendo o seu programa e o seu bolso
>  Caso você seja um desenvolvedor contratado por alguma empresa criando
> sistemas específicos para cada cliente talvez isto nunca seja uma
> preocupação séria pois há poucas possibilidades do sistema
interessar outra
> pessoa física ou jurídica com características operacionais
diferentes (não
> estou me referindo a código-fonte aqui mas ao produto acabado).
> 
> Mas caso você esteja no mercado de softwares para o público em geral,
> bem-vindo ao grande clube dos programas pirateados. Este artigo visa
> introduzir alguns conceitos de proteção de software para
programadores em
> geral mas antes de começarmos há uma coisa muito importante sobre a qual
> gostaria de dizer: Muitas grandes empresas liberam softwares com baixa
> proteção contra pirataria exatamente visando uma divulgação indireta do
> produto (ocorre muito com componentes para Delphi, a maioria possui uma
> chave publicamente divulgada). É uma tática que dá certo em países
aonde há
> uma certa lei e consciência por parte dos usuários com software mas isto
> acredito não se aplica ao Brasil.Um conselho: não faça isso !
Ninguém vai
> comprar aqui o seu produto e a quantidade que comprar não cobrirá os
custo
> do desenvolvimento.
> 
> Você poderá distribuir o seu software como produto de prateleira ou
como um
> shareware pela Internet. A grande vantagem do shareware é a
divulgação boca
> à boca (ou seria clique à clique ?) que ele oferece mas o ideal é as
duas
> abordagens ao mesmo tempo. Isto possibilita que o usuário que ficou
> hesitante em adquirir o produto na loja possa baixar e testá-lo.
Obviamente
> nunca esqueça de divulgar o seu site na embalagem.
> 
> Para vender software, um bem intangível materialmente, é preciso um bom
> sistema de proteção pois o seu programa poderá virar um freeware em
poucos
> segundo. É só encontrar um hacker que goste dele. Interessante é que
> dificilmente um hacker irá quebrar a proteção de um produto do qual não
> goste ou não use, portanto quando encontrar cracks para o seu
programa em
> vários sites da web sinta-se elogiado ! Depois pode ficar triste por
não ter
> recebido um tostão com o seu trabalho.
> 
> Algumas técnicas de proteção (os prós e contras)
> Para avaliação do software:
> Nag-Screen: O programa sempre exibe uma tela avisando que é uma cópia de
> execução restrita (ou algo semelhante) e solicita o registro do
mesmo por um
> determinando período.
> 
> Prós: O Usuário sempre é lembrado com uma tela de aviso que está com uma
> cópia restrita ou não totalmente funcional. Alguns nag-screens
apenas roubam
> um pouco do tempo de uso do software mas não chegam a atrapalhar o uso
> efetivo, o que é ótimo para o usuário: a lógica da comida grátis que
vicia.
> 
> Contras: Se a limitação for apenas o nag-screen todo mundo se
acostuma com
> ela e depois de um certo tempo até se esquece que ela existe. Não é
> eficiente.
> 
> Período: Um programa funciona dentro de um certo período de avaliação.
> 
> Prós: O usuário usará todo o software com todos os recursos e poderá
testar
> tudo.
> 
> Contras: É comum o usuário esquecer que está com uma cópia de avaliação.
> Alguns softwares, com uma péssima proteção, podem ser contornados
> simplesmente voltando o calendário do sistema.
> 
> Recursos Chaves Desabilitados: O programa possui alguns recursos que não
> funcionam como opções para salvar, exportar etc.
> 
> Prós: O Usuário tem mais liberdade que todos os métodos acima e
sempre que
> tentar fazer o salvamento de dados lembrará que está com um software não
> totalmente funcional forçando uma compra.
> 
> Contras: É uma das formas mais fáceis de um programa receber um
crack para
> liberar o recurso protegido.
> 
> Para licenciamento do software:
> Número Serial: O Programa possui um número único serial que o habilita
> completamente.
> 
> Prós: O usuário somente digita o serial e pronto, o programa está
liberado.
> Ideal para softwares de prateleira aonde o usuário já adquiriu o
produto. O
> sistema preferido para a divulgação indireta.
> 
> Contras: Centenas de outros usuários somente digitam o mesmo serial e
> pronto: centenas de programas registrados. Use esta forma caso não
deseje
> receber pelo seu programa ou queira uma divulgação indireta do mesmo e
> esperar pela consciência do usuário, isso não funciona no Brasil.
Centenas
> ou milhares de usuário podem usar o mesmo serial. Esta caindo em desuso
> rapidamente pois há centenas de sites com index sofisticados de
seriais para
> qualquer programa o que torna o sistema quase completamente inútil
hoje em
> dia.
> 
> HardLocks: Um pequeno dispositivo é colocado na porta serial,
paralela ou
> USB com uma identificação única para liberar o funcionamento do sistema.
> 
> Prós: Um dos sistemas mais difíceis de serem quebrados e
definitivamente o
> mais seguro. Garante a taxa de uma licença por máquina o que é o
ideal. Para
> sistemas caros (algo acima de $1000,00) considere seriamente o uso de
> HardLocks.
> 
> Contras: Custo do HardLock por cópia licenciada e alguns problemas
(raros)
> com periféricos usando aquela mesma porta, mas nada tão sério assim para
> prejudicar o usuário. As portas seriais e paralelas estão caindo em
desuso
> com o USB e já existem HardLocks para elas também. Os Hardlocks pode
> apresentar defeitos dependendo do tipo.
> 
> Você deve adquirir um kit de gravação e um Hardlock para cada cópia de
> distribuição. Não é muito caro mas o seu software deve compensar isto
> obviamente.
> 
> Disquete de Habilitação: Um disquete é fornecido junto com o
programa para a
> sua habilitação ou desabilitação.
> 
> Prós: É o hardlock dos pobres sem o mesmo nível de proteção.
> 
> Contras: Não faça proteção via disquetes de
habilitação/desabilitação como o
> Dr. Case e outros. É perda de tempo ! Há vários utilitários que fazem a
> cópia perfeita do disquete sendo possível habilitá-lo em qualquer
máquina. E
> ainda pode-se ter o problema de superfície no disco e um belo dia
quando o
> usuário precisar instalar o software em outra máquina ele terá a
surpresa do
> disco já mofado ou perdido. Tenha certeza que isto sempre acontece
no final
> de semana quando ele liga para o seu escritório na segunda
descarregando o
> seu vocabulário.
> 
> Identidade Única: Uma das melhores e mais eficientes tipos de
proteções é de
> identidade do equipamentos recentemente implementado pela própria
Microsoft.
> Isto consiste em recolher dados únicos sobre o seu computador como
serial do
> HD, informação da BIOS (não aconselhável), Versão do OS, Nome do
computador
> etc. Com base nestas informações você poderá gerar uma fechadura de
> identificação. Essa fechadura precisará de uma chave fornecida por
você para
> habilitar o seu software unicamente para aquela máquina.
> 
> Prós: Difícil de ser quebrado quando bem implementado e permite alta
> adaptabilidade contra cracks criado contra o sistema como patchs
invisíveis
> que permitem a modificação do sistema. Permite a taxa de apenas uma
licença
> por computador.
> 
> Contras: Caso o usuário formate a maquina, modifique periféricos
chaves o
> sistema pode desabilitar a cópia automaticamente. Isto cria
problemas com a
> solicitação de uma nova licença para instalação. O usuário pode
simplesmente
> ligar alegando este fato e de boa fé você terá que fornecer uma nova
> liberação.
> 
> Habilitação Pela Internet: Ao adquirir um produto o usuário recebe
uma senha
> que permite a geração de um número para habilitação e instalação em uma
> máquina.
> 
> Prós: Após habilitar, o número é automaticamente invalidado para outros
> usuário o que evita o problema de divulgação do mesmo pela rede.
> 
> Contras: O seu site deve estar em um provedor 100% confiável ou esteja
> preparado para aquele cliente que comprou o produto no sábado a
tarde e o
> seu site ficou fora do ar no domingo sem ele poder autorizar o
software para
> o uso.
> 
> Conclusão
> Não há método melhor ou pior na minha opinião para proteger um
programa mas,
> mais trabalhoso ou menos trabalhoso para um hacker quebrar. O Ideal
é que
> que você use duas ou mais técnicas para proteger o programa.
> 
> Há um princípio básico que ao se usar dois sistemas simples de proteção
> independentes cria-se um sistema forte de proteção. Por exemplo,
caso use o
> sistema de data é fácil monitorar aonde se esta gravando esta informação
> (quando o programa foi instalado) e adiar o tempo limite de uso.
Nag-Screens
> podem ser rastreadas e um hacker com bons conhecimentos de assembler
pode
> editar diretamente o seu código binário fazendo jumps nas avaliações de
> restrições. Agora combinando duas ou três técnicas as coisas
complicam para
> ele e talvez o trabalho não valha a pena (coisa que ele realmente não é
> acostumado).
> 
> Mas antes de começar a desenvolver o sistema de proteção para o seu
> programa, siga algumas dicas que aprendemos depois de muito prejuízo com
> pirataria.
> 
> 1- Nunca coloque literalmente as mensagens referentes a registro,
> nag-screens, avisos de limitação e etcs, em um formato legível para
um ser
> humano. Faça uma encriptação destas mensagens. Uma técnica bem
simples dos
> hackers consiste em procurar no código binário por uma determinada
> ocorrência tipo " Cópia Trial" e perto tem um "IF" aonde se pode
bloquear e
> lá se foi a sua proteção. Portanto, faça uma função de codificação e
> decodificação e grave todas as mensagens codificadas no seu programa (no
> código-fonte) sendo que as mesmas somente serão exibidas quando você
chamar
> a função de decodificação.
> 
> 2- Faça uma estampa no software. Ou seja, todos os programas possuem uma
> informação referente ao seu tamanho físico, data e hora de criação e
CRC.
> Caso o seu programa tenha sido alterado após aquela data, através de uma
> função, o programa poderá verificar em sua estampa interna se ele foi
> modificado. Aqui pode ocorrer alguns problemas com programas
anti-virus que
> usam a mesma técnica para monitorar alteração de executáveis
aplicando uma
> "vacina" neles mas já é da responsabilidade do usuário.
> 
> 3- Grave dados no registry sempre encriptados e, se eles forem sobre as
> informações de registro nunca coloque na mesma árvore das outras
definições
> do seu software. Isto dificulta e muito as coisa. Mas se o hacker
possui um
> programa de monitoramento do registry ele poderá facilmente
contornar isto
> mas não antes sem um bom trabalho de adivinhação. E, nunca use
chaves com
> nomes óbvios tipo "Serial", "SenhaPrograma", "DataLimite" e etc. Dê
sempre
> preferência a gravar dados de configuração e autorização no registry
do que
> em arquivos INI (lembra-se deles ?). O registry é mais difícil de ser
> manipulado por um leigo e é possível colocar chaves observando a
mudança de
> outras chaves o que torna as coisas mais complexas.
> 
> 4- Se possível, implemente um sistema periódico de verificação da
licença
> via site na web.
> 
> Coloque este alerta em seu termo de uso do seu software e o faça de tal
> forma que seja invisível, indolor (não fique interrompendo o
usuário) e que
> desabilite o software imediatamente ao verificar uma cópia com o
número de
> série irregular ou divulgado. É importante aqui implementar nos CGI
do site
> um alerta via e-mail quando ocorrer várias tentativas de liberação de um
> mesmo serial. Assim você descobre rapidamente quem vazou um serial
para o
> público.
> 
> 5- Tenha uma proteção não divulgada. Por exemplo, após o software
executar
> 300 vezes uma mensagem surge do nada indicando o download de uma
cópia mais
> atualizada. Nesta nova cópia você já deve ter contornado todos os
problemas
> com cracks que apareceram no período.
> 
> 6- Faça Check Point em pontos não óbvios do seu software e em vários
> lugares. Use uma periodicidade completamente aleatória para fazer
isto. Por
> exemplo, quando o usuário abrir uma determinada tela não muito
utilizada,
> ocorre uma verificação em background sobre a validade da licença esta
> verificação pode e deve ser aleatória. Após validar e algo estiver
errado,
> nunca exiba no mesmo momento que a licença é irregular pois se torna uma
> referência para o Hacker aonde ele deve procurar no código binário para
> quebrar o seu programa. Lembre-se que tudo serve como marcação no código
> binário: um caption de um form, o conteúdo string de um controle etc.
> 
> 7- Use constantes. Abuse delas em vez de escrever diretamente nos
dialogs
> para comunicação com usuário. Faça uma Unit separada aonde somente é
> armazenado estas constantes. Isso confunde quem olha o código binário do
> executável pois fisicamente no executável elas não estarão próximas.
> 
> Todas estas informações foram adquiridas com a nossa experiência e,
> principalmente, com dicas de dois conhecidos especialistas em quebras de
> programas e criação de cracks. Na primeira divulgação de um dos nossos
> softwares um deles me retornou uma cópia crackeada em questão de horas
> (segundo ele, estava sem tempo por isso demorou tanto), e ficamos
> envergonhados para dizer a verdade. Depois ao implementarmos a
codificação
> de string e outras técnicas, ele levou uma semana mas não conseguiu
liberar
> todos os recursos. Ao ativarmos os sistemas randômicos de verificação em
> background e validação pelo site ainda não tivemos uma quebra. Claro
que ela
> irá ocorrer, mas enquanto isto estamos recebendo pelo nosso trabalho.
> 
> Acho que seguindo estas dicas você terá uma boa chance de receber
pelo seu
> trabalho na quantidade justa. Lembre-se que há uma legião de pessoas
ai fora
> tentando quebrar a proteção pelo simples prazer de dizer que foram eles.
> 
> Portanto a questão não é fazer um sistema 100% seguro (o que é quase
> impossível) mas um que seja 110% trabalhoso para eles. Tenha em
mente também
> que eles são em maior número e problema não é se vão quebrar a
segurança mas
> quando e o que você vai fazer em seguida.
> 
> Não poderíamos terminar este artigo sem falar sobre alguns
componentes para
> proteção.
> 
> Uma coisa que percebi é que certos componentes de proteção são tão
> complicados que você as vezes tem que passar uma semana
implementando ele no
> seu sistema. Mas aqui estão alguns que são ótimos pela simplicidade
e fácil
> implementação.:
> 
> OnGuard (TurboPower) - Não é propaganda pessoal ! Os componentes da
> TurboPower tem uma grande qualidade e o OnGuard faz tudo o que se
precisa de
> proteção. Validação e criação de serial, limitação por data, estampa no
> executável, dias de execução e muito mais. A grande vantagem é que há
> exemplos para tudo que podem ser fácil e rapidamente adaptados.
> 
> Lock&Key - Gosto do Lock&Key pela sua simplicidade de uso. Ele gera uma
> "fechadura" com base nos dados do HD do usuário e com este
número-fechadura
> você cria um número único para liberar o software. Trabalha com
níveis o que
> é ideal para proteção progressiva. Não estamos usando mais este,
apesar de
> sua boa qualidade.
> 
> SharewareIt - Crie sistemas de shareware de forma bem simples. A
vantagem é
> que é gratuito.
> 
> 
> 
> Este artigo foi escrito por Murilo Oliveira, proprietário da FastByte.
> Contou com a colaboração de Fred Montier.
> 
> Em 11/08/05, Osmar de Souza Júnior<[EMAIL PROTECTED]> escreveu:
> > 
> > O Walter só confirmou o que já se sabe. Você pensa numa solução para
> > impedir a cópia ilegal, e vem outro e descobre um jeito de burlar.
> > 
> > É uma corrida de gato e rato. E pior: é uma corrida cíclica, você
> > nunca sairá dela.
> > 
> 
> -- 
> Álvaro Vieira
> [EMAIL PROTECTED]




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a