Você não pode proteger totalmente nenhum aplicativo (gerenciado ou não). Se sistemas como o Playstation e o iPad podem quebrar - onde o fornecedor até controla o hardware - que esperança seu aplicativo tem? Felizmente, você realmente não quer. Na minha opinião, você precisa proteger seu aplicativo apenas o suficiente para que alguém não possa piratear acidentalmente seu produto, e não mais.
Por exemplo, se você usar uma licença por máquina, ela não funcionará apenas quando você a instalar em uma nova segunda máquina. Você deseja uma boa mensagem de erro para impedir chamadas de suporte extras, mas não gaste mais tempo dificultando o trabalho de contornar e não atinja os usuários.
Outro exemplo é um estudo com tempo limitado. Nem se preocupe com coisas simples, como se os usuários pudessem reverter o relógio do sistema. Alguém que faz isso sabe que está violando sua licença e desde que um usuário saiba quando está violando, você já fez o suficiente.
Você precisa fazer isso muito porque os usuários não se importam com sua licença. Licenças são coisas inventadas que ninguém importa até que precisem. Ninguém os lê, e eles realmente não deveriam. Portanto, a melhor maneira de informar ao usuário onde estão os limites é se o comportamento pronto para uso do seu aplicativo estiver em conformidade com a licença. Nesse primeiro caso, isso significa deixar de instalar ou instalar no modo de versão de teste pela segunda vez. Para o último, pode significar apenas verificar uma data em texto sem formatação em um arquivo de configuração. De qualquer maneira, certifique-se de lidar com isso de uma maneira elegante, útil e respeitosa.
Então, isso explica o que significa fazer exatamente isso. Mas por que não ir mais longe? Por que não conectar todos os pequenos orifícios que encontrar? A resposta está em duas partes. Primeiro, se alguém cruzar o limiar ético de quebrar conscientemente os termos da sua licença - mesmo que de maneira simples -, também estará disposto a fazer algo mais difícil ou perigoso, como retirar seu aplicativo de um torrentsite - e há uma certa quantidade de perigo envolvido na execução de aplicativos baixados de fontes não confiáveis. Tornar as coisas mais difíceis é apenas um pequeno aborrecimento para esses usuários e corre o risco de causar problemas aos seus clientes pagantes. Mantê-lo simples pode impedir que alguém penetre no seu aplicativo e libere um crack mais abrangente. Segundo, você tem poucos olhos disponíveis para procurar falhas; os hackers têm muitos e têm mais prática em encontrá-los. Você só precisa perder uma pequena falha, e seu aplicativo terá a mesma distribuição em sites piratas como se você não tivesse feito nada. Você tem que estar certo toda vez; eles só têm que ter sorte uma vez. Portanto, o esforço necessário é muito alto e a probabilidade de qualquer medida de sucesso é muito baixa.
Por fim, se alguém quiser piratear seu aplicativo (em vez de apenas usá-lo), e esse é o objetivo principal, eles o farão. Não há nada que você possa fazer para detê-los. Essa é a natureza do software; uma vez que os arquivos que compõem o seu produto está no computador de um usuário que vai ser capaz de fazer com eles como quiserem. Isso é especialmente relevante em ambientes gerenciados como Java ou .NET , mas definitivamente se aplica também ao código nativo. O tempo está do lado deles e, com tempo suficiente, qualquer segurança digital pode ser violada.
Como você não pode impedir os usuários de piratear seu produto, o melhor caminho a seguir é envolver essa classe de usuários de uma maneira que os use em seu benefício. Muitas vezes, é possível fazê-los trabalhar para você e não contra você. Com isso em mente, não importa qual seja seu aplicativo, provavelmente vale a pena manter uma versão gratuita que é quase completamente funcional e não expira. A diferença entre até um preço de US $ 1 e gratuito é enorme, se por outro motivo, o cliente não precisar confiar em você com seu cartão de crédito. Uma edição gratuita do seu produto não apenas matará efetivamente a distribuição pirateada (por que arriscar uma versão pirateada quando você pode ser legítima pelo mesmo preço?), Mas também tem o potencial de expandir drasticamente seu público.
O resultado é que você pode precisar aumentar o preço da edição paga, para que, no final, em vez de 2.000 usuários por US $ 20 cada, você tenha 100.000 usuários gratuitos, dos quais 500 estão dispostos a pagar US $ 99 pela edição "profissional" . Isso gera mais dinheiro do que se você gastasse muito tempo bloqueando seu produto. Mais do que isso, você pode envolver esses usuários gratuitos e alavancar o relacionamento de várias maneiras importantes.
Um é o apoio. Um pessimista aproveitaria a oportunidade para reclamar do aumento do custo de suporte a 100.000 usuários gratuitos, mas algo surpreendente acontece: seu produto se torna amplamente autossustentável. Você vê isso o tempo todo com grandes projetos de código aberto que não têm dinheiro para custos de suporte. Os usuários irão acelerar e fazer isso acontecer.
Os usuários gratuitos geralmente reduzem as expectativas de suporte, e por boas razões. Tudo o que você precisa fazer é marcar a edição gratuita como qualificada apenas para suporte da comunidade e criar um fórum on-line moderado pelo usuário para esse fim. Sua base de conhecimento de suporte é autogerada, e usuários avançados orientarão aqueles que precisam de assistência extra em seu nome. Ainda mais importante, isso permitirá identificar e corrigir erros mais rapidamente, melhorando a qualidade do seu produto e reduzindo os custos totais de suporte. Isso não era possível antes porque sua base de usuários não era grande o suficiente, mas quando você trata os usuários gratuitos como clientes, pode funcionar muito bem.
Outro é o feedback. Ao assistir ao seu fórum, você aprende idéias importantes de aprimoramento que talvez nunca tenha considerado de outra forma. Isso pode permitir que você transforme mais usuários gratuitos em usuários pagos e crie um produto mais atraente que atraia um público ainda maior.
Finalmente, você precisa considerar o marketing. Todos esses usuários gratuitos agora são fãs e não adversários, e eles agirão de acordo. Não apenas isso, mas quando chegar a hora de lançar sua próxima versão, todos esses usuários passarão pelo seu canal de distribuição aprovado, em vez de algum outro mecanismo desconhecido. Isso significa que, para a sua próxima versão, você começará conectado a um público maior, altamente interessado e solidário.
Os melhores recursos a serem reservados para a edição profissional são ferramentas destinadas a facilitar a implantação e o gerenciamento corporativos. Um cracker não vê isso como uma razão convincente o suficiente para invadir o site para uso próprio, mas para uma empresa que deseja comprar 300 licenças e distribuí-lo para toda a empresa, este é um item obrigatório. É claro que a edição profissional será pirateada de qualquer maneira, mas novamente: não se preocupe, porque você provavelmente não seria capaz de vender o produto para esses piratas, não importa o que você fez, por isso não está lhe custando nenhuma receita.
Embora psicologicamente possa ser difícil doar tanto seu produto, espero que você possa entender como ele realmente é o melhor caminho a percorrer. Não é só isso, é o único caminho a longo prazo. Eu sei que alguém está lá fora, pensando que não quer fazer dessa maneira. Afinal, eles conseguiram vender seu produto bloqueado de US $ 20 por anos. Mas isso é muito ruim, porque se você não fizer dessa maneira, eventualmente alguém o fará . E o produto deles será tão bom quanto o seu, ou perto o suficiente para que eles se safem da alegação disso. De repente, seus preços parecem ultrajantes, as vendas caem drasticamente e não há mais nada que você possa fazer. Você pode optar por uma camada intermediária adicional, se for necessário, mas é improvável que o ajude.