Como eu implementaria um recurso de "autodestruição" na versão de avaliação gratuita do meu software?


52

Existe o argumento contínuo de avaliação gratuita versus um modelo freemium (ou seja, uma versão gratuita para toda a vida do software com recursos restritos e / ou reduzidos) para permitir que clientes e usuários em potencial testem o produto. Após minha pesquisa, posso concluir que o teste gratuito é o caminho a seguir, tanto para o benefício da experiência do usuário quanto do usuário que usa o software, como também para o benefício do fornecedor nos aspectos de vendas e maximização do uso. Existem muitos fatores para um software de avaliação gratuita que podem maximizar bastante o uso do usuário, como a duração da avaliação gratuita.

Uma palavra-chave que se repete na minha pesquisa para "freemium" é "frustrante". Muitas pessoas optaram por desinstalar o software em vez de precisar usar um software em que alguns recursos não estavam disponíveis para eles. Ao mesmo tempo, esses usuários nunca tiveram a chance de usar os recursos "pagos". Sem o conhecimento deles, e ocultos pelos próprios fornecedores que estão vendendo o software, eles não sabem e não sabem quais benefícios os recursos do Pro trarão. Sem precisar usá-los, o usuário não saberá que tem a sensação de "precisar" de algo. O que me leva ao próximo ponto de um modelo de avaliação gratuita.

Algumas opiniões de um usuário de avaliação gratuita são "Não consigo imaginar usar este software sem os recursos do Pro". Isso remonta ao ponto de "o usuário não saber que precisa de algo até entender primeiro a sensação de ter". Aqueles que tiveram 14 dias para usar os recursos da versão "completa" disseram que não podem imaginar não ter ou usar os recursos fornecidos lá. Então, quando catorze dias terminaram, eles eram mais propensos a gastar dinheiro do que alguém que nunca teve todos os recursos. A duração do teste gratuito também é um fator importante para criar uma impressão duradoura nos usuários. Em um experimento conduzido pelo Visual Website Optimizer, eles notaram que, para uma avaliação gratuita de 14 dias versus uma avaliação gratuita de 30 dias, enquanto o número de inscrições e instalações era o mesmo, o uso da avaliação de 14 dias aumentou 102%.

Outro ponto muito importante a ser mencionado é que "oferecer uma versão gratuita útil e totalmente funcional do produto" é MUITO IMPORTANTE. Avaliações gratuitas totalmente funcionais são eficazes para obter cobertura da mídia, e essa publicidade para novos softwares e / ou fornecedores de software é bastante crucial.

Um outro aspecto relevante é a importância dos usuários darem feedback. Considere, no teste gratuito por tempo limitado e totalmente funcional, a capacidade dos usuários de fornecer feedback.

Outro recurso importante para o nosso software é a necessidade de dados telemétricos, ou seja, dados quantitativos e abrangentes sobre como o usuário utiliza o software. Algumas estatísticas de uso podem ficar em uma área cinza legal, pois as leis são diferentes dependendo da localização nos Estados Unidos e no mundo. Uma maneira de combater esse problema legal é ter um recurso de aceitação para coletar estatísticas de uso anônimas. Um recurso de aceitação significa oferecer ao usuário a opção de desativar a coleta de estatísticas e, ao mesmo tempo, o usuário deve estar muito ciente do que faz a coleta de informações de uso anônimas. É importante esclarecer ao usuário quais dados serão coletados, o que "nós" faremos com eles e facilitar a desativação a qualquer momento, inclusive permitindo que eles mudem de idéia para ativá-los ou desativá-los. Para estatísticas mais detalhadas, como o rastreamento de atividades individuais de usuários, isso pode levar a problemas legais. O IDE Eclipse registra estatísticas detalhadas de uso, mas o faz com o consentimento total do usuário. Podemos ter que preparar potencialmente um formulário de consentimento com nossa equipe jurídica.

A Coleção de Informações de Uso do Eclipse coleta essas informações: 1. Plug-ins iniciados pelo sistema. 2. Comandos acessados ​​através dos atalhos do teclado e ações invocadas através de menus ou barras de ferramentas. 3. Quando a "visualização" do editor é dada foco. 4. Informações do sistema, como a versão do software em uso, o sistema operacional em uso. 5. Descrição dos erros internos.

Botão de desligar

Um switch kill do nosso software pode ser gerenciado registrando os dados iniciais, criptografando-os com um salt, e sempre que for uma data inválida, ou seja, o usuário tentar alterá-lo, o software será desativado. Outra opção é ter autenticação da Internet na instalação, registrar essa data em um banco de dados central da Web e verificar a data toda vez que o aplicativo for aberto.

Ao desativar o software, podemos excluir DLLs vitais. A opção de pagar para gerar um relatório não pode ser considerada.


Estou interessado em implementar uma versão de avaliação gratuita do meu software existente. Planejo fazer o julgamento durar 14 dias. No 14º dia, meu software solicitaria que o usuário pagasse a versão paga ou teria a consequência de não poder usá-la. A versão de avaliação gratuita é totalmente desbloqueada, o que significa que todos os recursos pagos estão lá.

No entanto, meu dilema é sobre a "melhor" maneira de implementar o que fazer para uma solução de final de avaliação. Eu excluo DLLs vitais? Possui um sistema de autenticação de usuário na instalação ou uso? Criptografe a hora e a data iniciais de uso com um sal e, se for uma data inválida (eles tentam alterar sua data inicial), desabilite o software?

Estou interessado em saber quais são algumas medidas eficazes para desativar o software.


9
Compartilhar sua pesquisa ajuda a todos. Conte-nos o que você tentou e por que ele não atendeu às suas necessidades. Isso demonstra que você reservou um tempo para tentar ajudar a si mesmo, evita reiterar respostas óbvias e, acima de tudo, ajuda a obter uma resposta mais específica e relevante. Veja também How to Ask
gnat

2
Você não conseguiu definir dois pontos: - Contra quem você deseja se proteger? - O que define "100% em tijolos"? Eu sugiro que você largue esse último requisito de qualquer maneira. Sobrescrevendo seu próprio executável, preenchendo o banco de dados com lixo? - Eles apenas copiam de um backup e estão prontos para começar novamente.
Jan

@gnat Não tem problema, vou compartilhar a pesquisa de teste freemium vs.
TheGreenCabbage #

@gnat Adicionei minha pesquisa aqui.
theGreenCabbage 11/10

13
Uma coisa que não foi mencionada. Se você estiver vendendo algo de interesse para o público em geral (jogos em particular) (não esotérico, software especial), a facilidade de compra é CRÍTICA . Esta é, IMHO, uma das principais razões pelas quais plataformas como o Steam (software de jogos) são tão bem-sucedidas. Você deve aceitar quase todos os sistemas de pagamento possíveis. Se eu tiver que me inscrever, solicitar uma cotação ou preencher meu endereço para algo que não tem componente físico, é menos provável que eu me incomode. Você precisa garantir que a compra seja menos trabalhosa que a pirataria.
Fake Name

Respostas:


92

Existem duas questões aqui - uma é um problema de programação e outra é um problema de negócios. Para o segundo, perguntar aos programadores sobre análise de negócios é o melhor conselho que você pode obter do seu motorista de ônibus local; ou seja, pode ser bom ou terrível, mas você não está pedindo a especialistas para não atribuir um peso inerente a nada disso. (Além disso, um dos meus motoristas de ônibus geralmente me dá boas idéias.)

Mas, quanto a um problema de programação, a desvantagem é que parece que a maioria das pessoas não gosta da idéia para começar. Há muitas boas razões para isso, mas elas não são realmente importantes aqui. Infelizmente, também somos, de certa forma, um grupo terrível de pessoas para perguntar, porque, em virtude de nossa posição e conhecimento, muitos de nós somos muito bons em piratear software a ponto de acharmos inútil tentar implementar medidas de teste. !

O fato é que seu principal problema é uma análise de negócios e um experimento de vendas, e não há resposta a não ser conhecer seus clientes e experimentar. Não parece que você já tenha um grande número de clientes para conversar sobre o pipeline de vendas de seus produtos e sobre como implementar um software de avaliação para melhorá-lo. Portanto, é preciso entender que agora estamos em uma posição de esfaquear às cegas no escuro . O primeiro passo para trabalhar em um quarto escuro é saber que você está em um!

Então, comece em algum lugar. O objetivo não é a resposta certa, porque só posso garantir 100% de uma coisa - você não começará com a resposta certa. Mas devemos começar.

Dê um beijo a seus clientes

Além disso, "mantenha as coisas simples, estúpidas". Ou, a partir de uma metodologia de programação, "tente a coisa mais simples que poderia funcionar". Então vá de lá.

Portanto, ao instalar, obtenha uma data. Guarde. Obtenha seus dados sobre instalações e uso e aproveite o calor que a análise de dados pode trazer. Desative qualquer parte do software que você deseja quando o teste expirar - sugiro if (trial_expired()). Então ajuste.

Primeiro de tudo, obtenha bons dados. Você espera fornecer atualizações no futuro para o seu software? Então, se alguém tentar vencer a v1.0, não se preocupe.

A coisa mais fácil é desinstalar o software e depois reinstalá-lo. Novo período de avaliação (porque seu software excluiu essa data antiga). Você se importa? Se a v1.0 estiver prestes a ser atualizada, sugiro fortemente que você descubra se isso acontece - mas não tente detê-los (ainda). É como pessoas que tomam 2 balas de hortelã em vez de 1 - é apenas uma hortelã, deixe para lá. Eles provavelmente ainda não pagariam por isso (ainda).

Quão? Bem, no Windows, isso geralmente era feito empurrando chaves órfãs aleatórias no registro e arquivos de nomes estranhos em vários diretórios de instalação comuns. Seu instalador fingiria explicitamente que eles não existiam e os deixaria lá. O nível de sofisticação do computador necessário para derrotar é muito mais do que desinstalar.

Mas se você não tentar impedir a reinstalação de alguém, obtém os dados necessários. Eles não estão roubando sua loja aqui - estão dando a você uma oportunidade valiosa para estudar um cliente em potencial. Use-o para personalizar seu marketing, avisos de ajuda de software, campanhas por email, 'ofertas especiais'. Eu tentava detectar o evento e, um dia depois, enviá-los uma chave que eles poderiam entrar no programa para estender seu julgamento até o próximo mês. Você pode encontrar um método que os transforme em clientes pagantes ou não; nenhuma maneira de saber antes do tempo!

Isso parece trivial, mas vamos ser sinceros - você realmente precisa de algo mais do que isso? Se você está coletando dados, isso vale a pena. Você provavelmente vai querer gastar tempo para garantir que os e-mails sejam bons, projetando mensagens no software que podem ser atualizadas para orientar novos usuários (lançamentos de vendas invisíveis, na verdade), reescrevendo a sinopse do aplicativo, criando erros que impediriam qualquer pessoa sã desde a compra do seu software, etc.

Mas a chave aqui é que você está se comunicando de forma honesta e clara com todos os clientes em potencial - se você quiser isso, deve nos pagar. Só porque você está sendo (invisivelmente) magnânimo não significa que este é um freeware - você será inteligente e não afastará os clientes porque eles não fecharam o negócio nas primeiras duas semanas.

Se você pensar bem, essas pessoas estão entrando na sua loja para realmente examinar seu produto. Eles estão fazendo um test drive, mas isso não lhe custa (quase) nada. Nenhuma loja de sucesso conseguiu esse objetivo expulsando clientes que ainda não estavam prontos para comprar! No entanto, todos sabemos se você pode obter algo de graça, para sempre, por que pagar? Então use o melhor dos dois mundos.

A cada passo que você executar, você estará trabalhando em um filtro e, se o seu software for bom, você estará fazendo conversões a cada passo. Minha sugestão simples:

1) avaliação gratuita de 14 dias

2) Estenda a avaliação gratuita, sem perguntas

3) Ofereça-se para estender a avaliação gratuita novamente, se eles tiverem a gentileza de preencher um pequeno formulário que lhe comunique suas opiniões sobre o seu software até o momento.

4) Você tem certeza de que essas pessoas que ainda estão realmente usando seu software não consideram comprá-lo? Encontre uma maneira de atraí-los - ou pelo menos tente extrair mais informações sobre o que você pode fazer para que outras pessoas comprem. Talvez permita que eles 'solicitem' uma extensão por meio de um formulário, que sua equipe de vendas gentilmente concederá independentemente e depois use as informações para ver se conseguem lidar com quaisquer objeções que possam ter sobre a compra do seu software.

E se esse usuário a estiver avaliando para uso em todo o departamento? Se a reunião de orçamento for no próximo mês, você realmente deseja que eles não possam usar o software até então?

5) Talvez você os corte agora ... e talvez você os convide para uma oferta especial uma semana depois com desconto. Talvez não. Talvez você se ofereça para estender a extensão final.

Essas pessoas não lhe devem dinheiro, então as trate como possíveis clientes futuros - não como ladrões, carregadores de malas ou pessoas que precisam pagar sua conta ou desativar o serviço. Todo mundo odeia colecionadores, então não aja como um.

Programaticamente, vamos ser sinceros - isso não é realmente difícil. Use arquivos órfãos para acompanhar as datas. Se você precisa ter uma conta válida como o iTunes, esse rastreamento é muito mais fácil. Se não for necessário, geralmente sugeriria que você não fosse necessário para uma primeira instalação - nunca afaste as pessoas da primeira versão, porque elas não desejam preencher um formulário estúpido. As pessoas odeiam formas! E eles não conhecem o seu software, então por que 'pagar' para preencher um formulário se eles nem sabem se o seu aplicativo funciona?

Na etapa 2, eu receberia uma inscrição / email para estender. Mais uma vez, a programação é trivial.

3) Depois de 30 dias, provavelmente exigiria algum tipo de comportamento de 'telefone residencial'. Se as pessoas estão indo para quebrar isso - como eles fazem - parabéns! Você deve estar ficando bastante popular. Mas não se preocupe, se este não é um videogame, as pessoas provavelmente não se importam o suficiente para incomodar, então mude seu código na próxima versão e faça-o voltar à prancheta.

TL; DR;

Nº 1 Não resolva um problema que você realmente não tem (você ainda não é a Adobe - o DRM pode ser simples e eficaz se você não pensar demais). # 2 Não pergunte a um programador quando precisar perguntar a um profissional de marketing, analista de negócios ou vendedor. # 3 Trate seus clientes como pessoas que podem lhe dar a vida, não como pessoas que lhe devem dinheiro, e especialmente como ladrões. # 4 DRM é muito, muito fácil. Só não pense que você vai impedir as pessoas de usarem o seu software, que quase certamente nunca lhe dará dinheiro ... pelo menos hoje.

  • Eu comprei o software que eu piratei, anos depois. Portanto, também não irrite futuros clientes desnecessariamente.

3
Obrigado pela resposta. Essa resposta me deu mais informações do que a que foi votada mais do que a sua, porque forneceu mais uma solução, em vez de me dizer "não é possível, apenas crie um bom produto", que francamente não era o que eu estava perguntando.
theGreenCabbage

37
+1 I have bought software I've pirated- mais vezes do que posso contar.
WernerCD

11
+1But as for a programming problem, the downside is that it seems most people don't like the idea to start with. There's lots of good reasons for this, but they aren't really important here. Sadly, we are also in some ways a terrible group of people to ask, because by virtue of our position and knowledge most of us are pretty darn good at pirating software to the point that we think it pointless to try to implement trial measures at all!
Resfriador de matemática 12/10

2
Sim, marque com +1 essa declaração final aqui também. Freqüentemente pirato o software apenas para usá-lo por um tempo sem mensagens irritantes de "por favor compre uma licença" ou, pior, recursos desabilitados ou bloqueio de teste após um período muito curto. Depois de algumas semanas ou meses, se eu gostar, sempre pagarei uma licença por causa dessa coisa chata chamada consciência (e também gosto de apoiar boas empresas ou bons desenvolvedores independentes, como é o caso às vezes). E se eu não gostar do software, pararei de usá-lo e ninguém realmente perdeu nada - eu nunca seria um cliente pagador.
Ben Lee

11
resposta fantástica! uma perspectiva muito legal, eu adoraria ver mais empresas participando #
Bernardo Pires

58

Você está procurando por algo que é essencialmente impossível. Algumas das maiores e mais bem-financiadas empresas do setor de software gastaram anos e milhões e milhões de dólares em busca de uma maneira de realizar o que você está tentando fazer, e nunca produziu resultados bem-sucedidos.

Primeiro, você pode esquecer tudo sobre estragar uma instalação local. Contanto que o instalador original ainda exista (ou possa ser copiado ou baixado novamente), isso não passa de uma lombada. Mesmo colocando algo em algum lugar nas configurações do sistema significa muito pouco quando o usuário pode instalar em uma VM e depois fazer backup e restaurar a imagem inteira da VM.

O próximo passo óbvio é a autenticação online: configure um servidor e faça com que o programa "ligue para casa" toda vez que for iniciado para verificar credenciais. Isso também não funciona. Primeiro, você se depara com um problema óbvio (e altamente frustrante) de falsos negativos quando o servidor está inoperante ou inacessível por qualquer motivo ou apresenta alguma falha no software. E você não pode fazer com que o software apenas valide o usuário automaticamente se não conseguir acessar o servidor, ou é trivial contornar a autenticação com alguns truques de rede, ou apenas usando-o em uma máquina com o wi-fi ativado fora. (E, claro, isso significa que as pessoas que tentam usá-lo legitimamente com um bom motivo para não ter uma conexão wi-fi, como levar o laptop junto com eles no ônibus, serão trancadas. Isso não fará ninguém como seu programa.)

O outro problema com a autenticação online é que, no final, tudo se resume a um booleano em algum lugar do seu código. Em algum lugar que ele chama AuthenticateUser()e, se retornar True, o usuário está dentro e, se retornar False, está bloqueado. E não importa o que você faça para criptografar, ofuscar ou ocultar o código, no final tudo se resume ao simples fato de que, se um computador puder lê-lo em algum momento, o programador também poderá. Alguém, em algum lugar, produzirá uma rachadura onde AuthenticateUsersempre retorna True, e a publicará na Web.

O problema fundamental da criptografia pode ser descrito como "Alice deseja enviar uma carta para Bob, sem que Charlie seja capaz de lê-la, mesmo que caia nas mãos dele". O problema com o que você quer é que Bob e Charlie sejam a mesma pessoa, o que torna seu objetivo impossível.

Se você quiser ganhar dinheiro com seu software, torcer os braços dos usuários não é a resposta. O que vai funcionar, a única coisa que funciona de forma consistente nos dias de hoje, é a teoria básica do mercado: oferecer um produto que o usuário perceba ter um valor maior para ele do que o preço que você está pedindo, e ele estará disposto a pagar . Qualquer outra coisa será apenas uma perda de tempo e esforço de sua parte.


8
Excelente resposta e muito informativo! Gostaria de dizer também que você pode lançar atualizações regulares (recursos, não apenas "correções") que tornariam o usuário autenticado para obtê-las. Se você criar atualizações realmente boas, os usuários não se incomodarão com a possibilidade de hackers, pois não poderão obter suas atualizações.
L_7337 11/11

11
+1 para concisão. Você deve colocar a primeira linha em negrito e colocar uma quebra horizontal no primeiro parágrafo, porque 95% do que precisa ser dito existe ali.
Jimmy Hoffa 11/11

2
Quando você diz "resultados bem-sucedidos", acredito que você quer dizer que ninguém produziu um software de versão de avaliação que contém todo o código da versão completa que absolutamente não pode ser invadido para ser usado como uma versão completa. E se o sucesso for definido como a produção de um software de avaliação que limite o uso do software por 95% de seus usuários (aqueles que fazem pouco ou nenhum esforço para trapacear) e resulte em uma taxa de compra de 5%? Certamente isso foi alcançado antes.
Pseudocoder

18

Apenas meus 2 ¢.

A autodestruição 100% confiável é impossível. Sempre haverá uma maneira sofisticada de quebrar sua proteção.

O que você pode fazer é tornar o uso ou a quebra de um teste expirado mais incômodo do que comprar uma versão completa para o seu mercado-alvo .

Se eu estivesse no seu lugar, tentaria garantir que meu software seja: (1) popular, para que todos os interessados ​​ao menos o experimentassem e (2) com preços razoáveis, para que aqueles dispostos a pagar possam comprá-lo, e você um lucro. O restante dos usuários pode jogar com testes expirados no conteúdo de seus corações: eles não compram de qualquer maneira, mas ajudam a popularidade e fornecem mais contratações em potencial para empresas que realmente compram seu software.

Suponho que o mercado-alvo para um plug-in do Revit consiste em arquitetos, empreiteiros, designers, todas as pessoas que lidam com quantias relativamente grandes de dinheiro por contrato e sem excesso de tempo livre ou conhecimentos de informática de baixo nível.

Portanto, verifique se a sua versão de avaliação expirada os incomoda o suficiente sem quebrar nada (ou eles odeiam você). As pessoas que precisam de trabalho acabarão cedendo e pagando o preço [razoável].

Algumas idéias:

  • Faça uma versão de teste rápida (e limpa), desinstale-se na expiração. A reinstalação deve ser possível, para que os usuários vejam seu trabalho intacto, seguido por outra desinstalação automática logo em seguida.
  • Deixe que a saída de uma versão expirada inclua uma marca ou texto dizendo "Feito com uma versão EXPERIMENTAR EXPERIMENTAL do [seu software]". Um usuário sério não mostraria essa saída para um cliente. (E se o fizer, novamente, ele é muito barato para pagar pelo seu software).
  • Faça uma versão de avaliação expirada mostrar caixas de mensagem em momentos aleatórios, avisando que a avaliação expirou e fornecendo um link para a versão completa. Essas coisas interrompem o fluxo de trabalho o suficiente para fazer uma atualização valer a pena para um usuário sério.

Qualquer combinação de truques comuns pode ser aplicada para marcar um computador como tendo uma avaliação expirada: chaves de registro enigmáticas, arquivos enigmáticos em locais aleatórios (não se esqueça de restaurar o registro de data e hora se você os modificar), ocultando registros de data e hora em arquivos gráficos não relacionados ou outros formas de esteganografia, etc.

Obviamente, se o usuário, por exemplo, reinstalar o sistema operacional, ele receberá um período de teste gratuito novamente. Não importa: um cliente sério dificilmente vai recorrer a isso. É claro que esse esquema acabará sendo quebrado; certifique-se de que seu software seja popular o suficiente para poder oferecer uma atualização com recursos atraentes e um esquema de proteção diferente.

Como um exemplo de "artigos de inconveniência" bem-sucedidos, eu escolheria os modelos Balsamiq. Você pode usar o software gratuitamente (na web), com alguns recursos limitados, incluindo salvar o seu trabalho. O trabalho pode ser "exportado" e "importado" de volta com algum aborrecimento. Ou seja, qualquer estudante do ensino médio que queira brincar com a versão gratuita quase totalmente funcional pode fazê-lo e até ter algum trabalho realizado. O aluno não vai comprar de qualquer maneira. Mas um designer sério que valoriza seu tempo e conveniência o comprará.

Como outro exemplo muito bem-sucedido, eu obviamente usaria o MS Windows.


Espero que esteja mais claro agora. A idéia é "deixe todos tentarem, e os verdadeiramente interessados ​​paguem".
9000

5

Não é difícil de fazer. Realmente depende de quanto esforço você deseja colocar nele.

Lembre-se, o objetivo de uma versão de teste é aumentar as vendas. Todos os esquemas de versão de teste para software instalável podem, teoricamente, ser contornados de alguma maneira, mesmo que envolva um esforço tremendo, uma vez que o código é executado localmente e, portanto, pode ser editado com um editor hexadecimal. Essa resposta está baseada na suposição de que o pôster original está perguntando sobre soluções práticas para esse problema comercial, não teóricos.

Como um dos outros pôsteres mencionados, o objetivo é garantir que o esforço envolvido na solução do esquema da versão de avaliação exceda o custo em termos de tempo e esforço do que o custo da compra do software. 'Piratas' dedicados simplesmente baixarão versões pré-quebradas do seu software usando o BitTorrent . Não se preocupe com eles, pois eles não seriam clientes de qualquer maneira. As abordagens abaixo foram adotadas por inúmeras empresas de software por décadas e, desde que você não seja prejudicado pela noção de que esses sistemas devem ser teoricamente perfeitos, você descobrirá que eles funcionam muito bem no mundo real.

No nível mais simples, você pode simplesmente manter uma 'janela' de data de início / data de término no registro (criptografada). Cada vez que o programa é executado, você verifica se o horário do sistema está entre essas duas datas e atualiza o componente 'start' dessa data. Isso impede que o usuário casual simplesmente acerte o relógio para permitir o acesso à versão de avaliação.

Você pode estender isso acompanhando a janela de tempo em vários locais (no registro e na pasta de dados do aplicativo) e certificando-se de que eles correspondam a cada inicialização. Isso evita que as pessoas vasculhem as entradas - elas precisam saber exatamente onde estão e como descriptografar / criptografar os dados.

Existem várias outras maneiras de diminuir as coisas também, o que tenho certeza de que você encontrará ao começar a desenvolver a funcionalidade de avaliação.

Se você não quiser fazer tudo isso sozinho, existem várias bibliotecas de terceiros que fornecem esse tipo de funcionalidade.

Observação sobre a exclusão de arquivos: se o aplicativo tentar excluir arquivos, ele poderá ser sinalizado como malware pelo software antivírus do usuário. Atualmente, o software antivírus é muito agressivo. E muitos usuários finais estarão convencidos de que existe um vírus em seu software se o programa antivírus exibir um alerta.


Curioso para saber por que isso teria um voto negativo, como eu usei essa técnica com sucesso por muitos anos em software comercial.
precisa

Por que essa resposta foi reduzida? Eu gostaria de ver o raciocínio.
theGreenCabbage

Você pode me dizer mais sobre como você implementou isso e como funcionou? O que você fez quando a condição da data alterada é violada? "Desabilitou" ou "matou" os recursos / theApp propriamente dito?
theGreenCabbage

2
Isso seria derrotado simplesmente instalando o programa em uma nova máquina / VM quando o original expirar.
Dan Lyons

7
Eu votei com base na precisão factual, porque você alegou que algo impossível é realmente "não difícil de fazer".
Mason Wheeler

1

Depende da dificuldade que você deseja fazer para que seus clientes em potencial contornem os recursos auto-incapacitantes (soa melhor que "autodestruição"). Supondo que seus clientes em potencial não tentem manipular o próprio código do programa (que alguns deles tentarão, confie em mim), você tem as seguintes opções:

  • armazene a data e hora inicial em algum lugar (oculto) no computador em que o software está instalado: isso tem a desvantagem de que seus clientes podem contorná-lo facilmente, por exemplo, instalando o programa em uma máquina virtual e desinstalando-o após o período de teste, redefinindo a VM para seu estado original

  • verifique se cada cópia baixada do seu programa tem um tempo de download individual codificado em algum lugar oculto no código binário do programa. Isso exigirá muito mais esforço administrativo de sua parte e você ainda não pode ter certeza de que a mesma pessoa não baixa uma nova cópia do programa do seu servidor após o período de avaliação (talvez usando uma identidade diferente)

  • entregue a versão de avaliação apenas com um "dongle" onde o final do período de avaliação está armazenado. Isso só será viável para programas com um punhado de clientes em potencial e um preço muito superior ao preço do dongle.

  • tornar a coisa um aplicativo Web, ou partes dele, ou apenas um aplicativo conectado à Web. Nesse caso, você pode armazenar a data inicial no seu servidor, mas precisará identificar e distinguir as pessoas que estão usando o seu software (por exemplo, definindo cookies ou criando um login). Mas, novamente, você não pode ter 100% de certeza de que as pessoas não mudam de identidade.


"você está ferrado", "você está ferrado" e "você está ferrado"? Não acho que isso dê uma solução real. Por que não um modelo DRM-ish em que você precisa fazer login para usar o programa e a data é armazenada no lado do servidor?
Elias

2
@Elias O software que estou criando é um plug-in de análise de material abrangente para o Revit, que será implementado em breve ao lado da loja de aplicativos da Autodesk. Atualmente, não tenho certeza de que tipo de telemetria, controle ou informações do usuário nos serão fornecidas pela loja de aplicativos da Autodesk; portanto, apesar de ter autenticação na Web na instalação / uso, não acho que seja implementável.
theGreenCabbage

11
@ Elias: obrigado pela dica, mas "fazer login" em um servidor significa verificação de identidade e identidades podem ser alteradas.
Doc Brown

@DocBrown, eles podem ser alterados em determinadas situações, mas presumo que na loja de aplicativos Revit \ Autodesk, existe um login exclusivo por cliente desse produto. Embora, com base no comentário do theGreenCabbage, seja muito possível que esses dados não sejam alcançáveis, tornando meu comentário original falso.
Elias

0

Faça o que fizer, teste com cuidado o que acontece além da data de validade. Certa vez, trabalhei para uma empresa que distribuía software com um esquema de teste muito parecido com o que você descreve. A diferença era que o vencimento era uma data fixa no futuro.

Abandonamos o esquema imediatamente depois de receber uma tonelada de ligações de clientes irritados quando suas versões compradas legitimamente também pararam de funcionar nessa data.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.