Jump to content
Kline777

Controlo de licenciamento

Recommended Posts

Kline777

Boas,

Estou nestes dias de volta do controlo de licenças do software que a minha empresa está a comercializar, para substituir o antigo, que era o uso de HASP keys nos pc's com o software. Funcionou muito bem mas é dispendioso.

Que táticas costumam usar?

Share this post


Link to post
Share on other sites
nunopicado

Podes usar o sistema "Windows":

O software gera um código a partir de dados da licença e da propria instalação e PC, e fica à espera de um código de validação, que serás tu a criar com uma qualquer chave privada aplicada ao código inicial.

Depois o programa valida se ao desencriptar (com a mesma chave) o resultado é igual ao código que ele proprio gerou.

Em alternativa, podes usar um "ficheiro de licença" que incluirá os dados da empresa que o usa e um código, e o programa depois irá fazer a descodificação e comparar aos restantes dados do ficheiro de licença.


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
Kline777

Sim, mas normalmente um sistema desses implica que o teu codigo tenha algo como

 
if validaLicença then
//faz isto
Else
// dá erro

E isso é facil de contornar por alguem que aceda ao assembly do exe.

Eu sei que provavelmente nunca ninguem vai tentar isso, mas mesmo assim vou tentar evitar.

Vou trabalhar mais um pouco sobre uma ideia que tenho e depois posto aqui se nao for muito má ^^

Share this post


Link to post
Share on other sites
thoga31

Eu sei que provavelmente nunca ninguem vai tentar isso, mas mesmo assim vou tentar evitar.

É um pensamento feliz :D

Concordo que tentes evitar o cracking do teu programa pelo melhor sistema possível. Nunca se sabe em que mãos o programa vai passar.


Knowledge is free!

Share this post


Link to post
Share on other sites
nunopicado

Isso é verdade, há sempre a possibilidade de alguém ter o conhecimento suficiente para piratear a licença. No entanto convém não esquecer que a solução tem sempre de existir no programa (de outro modo, não vejo como ele poderia validar a licença) pelo que, de forma mais simples ou mais dificil, será sempre possível o acto ilegal.

Posto isto, podemos sempre tentar analisar a melhor maneira de dificultar a vida aos piratas.

Não amadureci as ideias, mas jogo-as para a mesa...

- Licença online (requer internet no servidor do programa)

- Dados da empresa no código da licença (alterando o código, os dados alteravam, fazendo com que o programa trabalhasse mas sob um nome/NIF errado, tornando-o inutil)

- Uma Hash dinâmica que fosse variando conforme a data, por exemplo. (a ideia seria, mesmo que descobrissem a chave, no dia seguinte tinham de a descobrir novamente: não impede que alguém com conhecimento pirateie não a chave, mas o programa, de forma a nem a pedir sequer).


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
thoga31

Pois, tudo isso é possível de ser pirateado... Basta olhar para os grandes softwares que usam disso e muito mais. :)


Knowledge is free!

Share this post


Link to post
Share on other sites
Kline777

Sim mas nao acredito que esses 'grandes' se esforçem realmente para proteger a 100% os softwares... Nao acredito nem por um segundo que a Microsoft queira o Windows 100% seguro, por exemplo... Perdiam o mercado em 3 tempos.

Estive durante o dia a tentar uma soluçao por servidor web assim com umas proteçoes maradas mas acabei por voltar ao mais simples... :P Os prazos assim obrigam ^^

A minha ideia inicial era deixar de chamar algumas funçoes pelo método habitual, mas sim guardar o seu nome numa string encriptada que tinha de ser desencriptada pelo WebService.

Tendo o nome da funçao na string, chamava a funçao que lá estava dentro. Não sei se me faço entender :P Era complicado crackar já que nem alguem vendo o codigo percebia qual o nome da funçao que tinha de ser chamada naquela momento...

Share this post


Link to post
Share on other sites
nunopicado

É uma maneira... Tens tempo para isso? ;)

Mas e o que fazias se, por exemplo, não houvesse net?


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
thoga31

É uma maneira... Tens tempo para isso? ;)

Mas e o que fazias se, por exemplo, não houvesse net?

Trial de 30 dias, por exemplo. É como vem o Avast Free. :)


Knowledge is free!

Share this post


Link to post
Share on other sites
thoga31

Exacto, a ideia era deixarmos continuar sem net durante 5 dias. Aí azar :P falem com a MEO ^^

5 dias não será um prazo muito apertado?


Knowledge is free!

Share this post


Link to post
Share on other sites
nunopicado

lol tá boa

Mas aí tens outro problema. Se o nome da função é dada por webservice, para poderes ter o trial de 5 dias tens de poder, de alguma forma, saber dentro do programa qual a função a chamar.

Mas para isso, o nome tem de lá estar! Como farias isso?


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
Kline777

Já sabia que ias reparar nisso ^^ Podia guardar o que veio do ultimo WS com sucesso enquanto nao se retomasse a ligaçao

Numa fábrica com computadores ligados à internet se aquilo falhar de certeza que o resolvem em menos tempo que 5 dias...

Share this post


Link to post
Share on other sites
nunopicado

heheheh Mania que os tecnicos/programadores têm de procurar os problemas, antes de começarem a procurar as soluções... Ou serei só eu? hehehe


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
Kline777

Eu por acaso ja tinha previsto isso, so que abreviei o resumo inicial e cortei essa parte xD

ja tenho uma estrutura de um caso simples feita da maneira como pensei mas ta no outro pc...

Share this post


Link to post
Share on other sites
nunopicado

:) Imaginei que sim...

Conheço uma pessoa que diz que os tecnicos em vez de procurarem soluções, procuram defeitos.

Mas como procurar uma solução a sério sem antes identificar todos os defeitos? :|

Como é que vais variando o nome da função? Data?


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
Kline777

Por exemplo... Já deviam desistir uns poucos de crackar aquilo, quando vissem as chaves a mudar todos os dias ^^

Share this post


Link to post
Share on other sites
nunopicado

Hehehe sem duvida

"Vou crackar isto...

Yesss! Mais um!"

Um dia depois...

"Olha, não trabalha.

Tem graça, tinha a ideia de já ter crackado isto, mas parece que não.

Mãos à obra...

Já está! Eu sou bom!"

Um dia depois...

"Aaarrggghhhhhh"

E assim, a pouco e pouco, se resolve o problema da pirataria...


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
Kline777

Nada como uma boa pilha de nervos para dar cabo da vontade d fazer algo ^^ se bem que isso aos programadores nao se aplica tanto :P

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.