Discussão do artigo "Código MQL5 de segurança: Proteção de senha, geradores de chaves, limites de tempo, licenças remotas e técnicas de codificação de chave de licença de EA avançadas" - página 5

 

E o que significa a mensagem "Licence server not connected. " ?

A propósito, você conhece: https://www.mql5.com/en/forum/432897?

Uma simples pesquisa por RemoteProtectedEABase6.

Communicating with an api/custom server using a HTTP request inside of .mq5 indicator code - I'm trying to find out what I was doing with A. Mq5 indicator and Winlet DLL?
Communicating with an api/custom server using a HTTP request inside of .mq5 indicator code - I'm trying to find out what I was doing with A. Mq5 indicator and Winlet DLL?
  • 2022.09.19
  • www.mql5.com
Indicator code: python flask server code: so i was toying with the idea of just using winlet or using something like curl in a c++. In essence a service and a script behave basically the same, but to keep a service alive and running you have to use a loop
 
Carl Schreiber #:

E o que significa a mensagem "Licence server not connected. " ?

A propósito, você conhece: https://www.mql5.com/en/forum/432897?

Uma simples pesquisa por RemoteProtectedEABase6.

e o que isso lhe diz: " Licence server not connected. " ?

O que ele me diz? Bem, o que, nenhuma conexão ... Não sei o que você quer dizer com essa pergunta.

O artigo vinculado é bom, mas não me ajuda.

Eu uso o WinInet.dll.

Com o melhor de meu conhecimento, não consigo pensar onde deveria estar o erro.

 

Também tentei usar soquetes no passado, mas parei porque o servidor bloqueia até receber alguma coisa...

Houve também uma solução que usava memória compartilhada, mas também não consegui fazê-la funcionar.

Eu usaria um disco de RAM e simplesmente escreveria, leria e excluiria arquivos com as funções do Windows(kernel32.dll), o que funciona e é bastante simples.

 
Carl Schreiber #:

Também tentei usar soquetes no passado, mas parei porque o servidor bloqueia até receber algo ....

Entendi corretamente que primeiro preciso enviar todos os dados e depois perguntar se há uma conexão?

 

Bem, de acordo com o modelo cliente-servidor, o servidor é iniciado primeiro, porque ele aguarda as perguntas dos (muitos) clientes e, em seguida, dos clientes.

Nada acontece no programa do servidor (bloqueado) até que algo venha dos clientes, então ele faz algo brevemente e depois volta ao seu estado de espera.

Pesquise por copiadora comercial no CodeBase...
 
Carl Schreiber #:

Bem, de acordo com o modelo cliente-servidor, o servidor é iniciado primeiro, porque ele aguarda as perguntas dos (muitos) clientes e, em seguida, dos clientes.

Nada acontece no programa do servidor (bloqueado) até que algo venha dos clientes, então ele faz algo brevemente e depois volta ao seu estado de espera.

Ahhh, lógico, primeiro envie tudo e depois o servidor responde. Se o servidor responder, a conexão será estabelecida e eu poderei consultar a resposta e reagir de acordo. Se não houver resposta, a mensagem " Servidor de licença não conectado. "
 

Deepl diz o seguinte: https://www.deepl.com/translator#en/de/License%20server%20not%20connected

A pergunta agora é: por quê? Ele está sendo executado? Protegido? ...

 

Olá, como posso colocar o item 7 em meu EA para evitar descompilamento do arquivo ex.5?

Você tem exemplos de códigos para evitar isso?

Poderia explicar detalhado?

 
Obrigado por este artigo.

No final das contas, esse debate é sobre: "quanto tempo posso ganhar antes que o produto seja quebrado". O objetivo é tornar o crackeamento tão caro que não valha mais a pena.

Um método que poderia ser implementado é a ofuscação de código. Renomear cada variável e método com algum nome aleatório. double Signal se tornaria double AB1234, double IndicatorValue se tornaria CD1234. Isso não resolve o problema, mas com certeza torna-o uma dor de cabeça para a pessoa que descompila o código. Isso torna muito difícil encontrar onde a verificação de licenciamento é feita para possivelmente alterá-la.

Outra solução seria lidar com tudo internamente, cada indicador, cada consultor especialista é calculado somente no servidor do proprietário. O usuário envia o licenciamento, os dados da barra, a hora do servidor etc. para o servidor. O servidor responde com um valor de indicador ou ação de EA. Isso, por si só, seria bastante caro e demorado de implementar, mas resolve a maioria dos problemas.

Espero que isso tenha despertado alguma curiosidade e que possa ser de alguma ajuda.
 
Winged Trading #:

Apenas como uma pequena observação: na MQL5, o compilador já remove os nomes de variáveis, nomes de funções e comentários ao gerar o .ex5.

O executável já é, portanto, bastante "opaco", de modo que a ofuscação por meio da renomeação de identificadores não adiciona uma camada extra de proteção aqui.