Como vender seus script?

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

RsTxSpyMaster
Posts: 7
Joined: 29 Sep 2018, 08:24

Como vender seus script?

18 May 2019, 16:02

eu tenho um script aqui e penso fazer ele ser pago mensalmente ou algo do tipo talvez autenticando pelo site criado em um wordpress ou algo como autenticando em um Rest Api
alguém tem alguma sugestão de como fazer de melhor jeito o script a ter pagamento por mes? ele teria usuario e a senha e o usuario logava, essa parte de logar que eu nao sai qual melhor jeito de proceder.
User avatar
Gio
Posts: 684
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Como vender seus script?

20 May 2019, 12:59

Bom dia RsTxSpyMaster.

Existem várias formas de fazê-lo, mas acredito que para o caso que você descreve o melhor seria uma rotina de chave mensal.

Esse tipo de rotina é bem comum em softwares comerciais e normalmente funciona através de criptografia. O princípio básico é que uma chave privada (que somente você e o script tenham acesso) seja usada para criptografar uma string composta no mínimo de um identificador da licença (que pode ser o nome do usuário se a licença for para 1 pessao só) e de uma data de validade da licença. Assim, o usuário deverá inserir uma chave válida uma vez por mês ou o script sequer iniciará os comandos importantes de sua execução (essa chave será gerada por por você e enviada para o email dele sempre que houver a confirmação do pagamento do mês). Ademais, se o objetivo for que a licença funcione em um computador offline, você também deve se precaver de alguma forma contra a possibilidade de o usuário alterar a data do computador para tentar usar uma licença antiga (isso pode ser feito com logs de datas de execução criptografados no registro, por exemplo).

Exemplificando ao máximo, seria mais ou menos assim:

Usuario: FULANO
Validade da licença: 31/05/2019
Modelo de string decriptada: 0F5U2L0A1N9O (neste exemplo básico é somente o mês e o ano com o nome do usuário intercalado)
Forma de encriptação: adição de valores
Tabela de valores para os caracteres: ASCII
CHAVE PRIVADA: PELICANO

ENCRIPTANDO (você vai fazer isso):
CARACTERE 1 DA STRING + CARACTERE 1 DA CHAVE:
0 = 48
P = 80
SOMA: 128 (ou 0x80 em HEX)


CARACTERE 2 da STRING + CARACTERE 2 da CHAVE:
F = 70
E = 69
SOMA: 139 (0x8B em HEX)

String encriptada final: 0x808B... (esta é a chave que você vai enviar por email quando o pagamento de Maio cair na sua conta)

DECRIPTANDO (o script vai fazer isso):
String para decriptar: 0x808B...
Chave: PELICANO

CARACTERE 1 DA STRING - CARACTERE 1 DA CHAVE:

0x80 = 128
P = 80
DECRIPTANDO: 128 - 80 = 48 (que é 0 na tabela ASCII...)


CARACTERE 2 DA STRING - CARACTERE 2 DA CHAVE:

0x8B = 139
E = 69
139 - 69 = 70 (que é F na tabela ASCII...)

INTERPRETANDO (o script também vai fazer isso):

CHAVE FINAL DECRIPTADA: 0F5U2L0A1N9O

MÊS CORRESPONDENTE OBTIDO: 052019
CORRESPONDE A UM MES VALIDO? SIM

USUARIO CORREPONDENTE OBTIDO: FULANO
CORRESPONDE AO USUÁRIO DESSE COMPUTADOR: SIM

Se as duas respostas forem SIM, a licença é válida até 31/05/2019, o que fará o script liberar o acesso do usuário até esta data. Isso significa também que o script vai exigir uma nova chave válida assim que for executado em uma data posterior a 01/06/2019. Para que não seja necessário o usuário inserir a chave sempre que for usar o script (ou seja, basta inserir uma vez por mês) você pode fazer o script salvar as chaves inseridas anteriormente em um arquivo e então verificar e tentar decriptar sempre o último registro salvo, até que a licença não seja mais válida, quando daí então ele exigirá outra chave (não salve somente a data de validade, pois daí o usuário poderia alterar diretamente o arquivo).

Perceba que se o usuário tentar inserir uma string aleatória, ela provavelmente não vai ser decriptada para um mês válido e para o usuário do computador (ou seja, o resultado da decriptação vai ser lixo, o que vai dizer ao script que a chave inserida é inválida).

:arrow: Essa rotina foi somente um exemplo, ela ainda é relativamente fraca em termos criptográficos. Mas você pode ir adicionando elementos que dificultem um curioso a tentar decriptar a rotina. Um exemplo seria criar 12 chaves, uma para cada mês. Assim, você teria que fazer o script tentar 12 decriptações diferentes para tentar encontrar uma válida, mas pelo menos não haveriam caracteres repetidos entre as chaves criptografadas (que é uma das coisas que facilitam a decriptação). Também pode, obviamente, usar um método mais complexo e mais seguro de criptografia (o deste exemplo é um método bem básico).

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 6 guests