Discusión sobre el artículo "Proteger el código MQL5 Protección con contraseña, generadores de claves, límites de tiempo, licencias remotas y técnicas de encriptación de claves de licencia de EA avanzadas" - página 5

 

¿y qué significa el mensaje "Licence server not connected. " ?

Por cierto, ¿sabe usted: https://www.mql5.com/en/forum/432897?

Una simple búsqueda de 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 #:

¿y qué significa el mensaje "Licence server not connected. " ?

Por cierto, ¿sabe usted: https://www.mql5.com/en/forum/432897?

Una simple búsqueda de RemoteProtectedEABase6.

y, ¿qué te dice: " Servidor de licencias no conectado. " ?

¿Qué me dice? Bueno lo que, no hay conexión ... No sé a qué te refieres con esta pregunta.

El artículo enlazado es bonito pero no me ayuda.

Yo uso WinInet.dll.

Con lo mejor de mi conocimiento no puedo pensar en donde debe estar el error.

 

También intenté usar sockets en el pasado, pero dejé de hacerlo porque el servidor se bloquea hasta que recibe algo...

También hubo una vez una solución usando memoria compartida - tampoco pude conseguir que funcionara.

Yo usaría un disco RAM y luego simplemente escribir, leer y borrar archivos allí con las funciones de Windows(kernel32.dll), que funciona y es bastante simple.

 
Carl Schreiber #:

También intenté usar sockets en el pasado, pero dejé de hacerlo porque el servidor se bloquea hasta que recibe algo ....

¿Entiendo bien que primero tengo que enviar todos los datos y luego preguntar si hay conexión?

 

Pues bien, según el modelo cliente-servidor, el servidor se inicia primero, porque espera las preguntas de los (muchos) cliente(s) y después las de los clientes.

No pasa nada en el programa del servidor (bloqueado) hasta que llega algo de los clientes, entonces hace algo brevemente y luego vuelve a su estado de espera.

Buscar copiador de comercio en la CodeBase...
 
Carl Schreiber #:

Pues bien, según el modelo cliente-servidor, el servidor se inicia primero, porque espera las preguntas de los (muchos) cliente(s) y después las de los clientes.

En el programa del servidor no pasa nada (bloqueado) hasta que llega algo de los clientes, entonces hace algo brevemente y luego vuelve a su estado de espera.

Ahhh lógico, primero envía todo y luego el servidor responde. Si el servidor responde, se establece la conexión y puedo consultar la respuesta y reaccionar en consecuencia. Si no hay respuesta, aparece el mensaje " Servidor de licencias no conectado. "
 

Deepl dice esto: https://www.deepl.com/translator#en/de/License%20server%20not%20connected

La pregunta ahora es ¿por qué? ¿Se está ejecutando? ¿Protegido? ...

 

Hola, ¿cómo puedo poner el punto 7 en mi EA para evitar descompilar el archivo ex.5?

¿Tienes ejemplos de código para evitar esto?

¿Podría explicarlo en detalle?

 
Gracias por este artículo.

Al final, este debate es sobre: "cuánto tiempo puedo ganar, antes de que el producto sea crackeado". El objetivo es hacerlo tan caro de crackear, que ya no merezca la pena.

Un método que uno podría implementar, es la ofuscación de código. Renombrar cada variable y metodo con un nombre aleatorio. double Signal se convertiria en double AB1234, double IndicatorValue se convertiria en CD1234. No resuelve el problema, pero seguro que hace que sea un dolor de cabeza para la persona que descompila el código. Hace realmente difícil encontrar dónde se hace la comprobación de licencia para potencialmente cambiarla.

Otra solución sería manejar todo internamente, cada indicador, cada asesor experto se calcula sólo en el servidor de los propietarios. El usuario envía la licencia, los datos de la barra, la hora del servidor, etc. al servidor. El servidor responde con un valor de indicador o acción EA. Esto en sí mismo sería bastante caro y consume mucho tiempo para poner en práctica, y resuelve la mayoría de los problemas.

Espero que esto haya despertado alguna curiosidad y pueda ser de ayuda.
 
Winged Trading #:

Sólo como una pequeña nota: en MQL5 el compilador ya elimina los nombres de variables, nombres de funciones y comentarios al generar el .ex5.

El ejecutable es, por tanto, ya bastante "opaco", por lo que la ofuscación mediante el cambio de nombre de los identificadores no añade realmente una capa adicional de protección aquí.