Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Kline777

Controlo de licenciamento

Mensagens Recomendadas

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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á ^^

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.