Discussion de l'article "Sécurisation du code MQL5 : Protection par mot de passe, générateurs de clés, délais, licences à distance et techniques avancées de cryptage des clés de licence EA" - page 5

 

et, qu'est-ce que ça te dit : " License server not connected. " ?

Au fait, tu connais : https://www.mql5.com/en/forum/432897 ?

Une simple recherche sur 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 #:

et, qu'est-ce que ça te dit : " License server not connected. " ?

Au fait, tu connais : https://www.mql5.com/en/forum/432897 ?

Une simple recherche sur RemoteProtectedEABase6.

et, qu'est-ce que ça te dit : " License server not connected. " ?

Ce que cela me dit ? Eh bien, quoi, pas de connexion ... Je ne sais pas ce que tu veux dire par là.

L'article en lien est certes sympa mais ne m'aide pas.

J'utilise WinInet.dll.

Je ne vois pas où est l'erreur.

 

J'ai essayé d'utiliser des sockets, mais j'ai abandonné parce que le serveur bloquait jusqu'à ce qu'il obtienne quelque chose...

Il y avait aussi une solution avec une mémoire partagée - je n'y suis pas parvenu non plus.

J'utiliserais un disque RAM et j'écrirais, lirais et supprimerais des fichiers à l'aide des fonctions Windows(kernel32.dll), cela fonctionne et est très simple.

 
Carl Schreiber #:

J'ai déjà essayé d'utiliser des sockets, mais j'ai abandonné parce que le serveur bloque jusqu'à ce qu'il reçoive quelque chose ....

Est-ce que je comprends bien que je dois d'abord envoyer toutes les données et ensuite demander s'il y a une connexion ?

 

Eh bien, selon le modèle client-serveur, le serveur est d'abord lancé, car il attend les questions du (des nombreux) client(s), puis le(s) client(s).

Dans le programme du serveur, il ne se passe rien (bloqué) jusqu'à ce que quelque chose arrive des clients, puis il fait quelque chose et retombe dans sa torpeur d'attente.

Cherche trade copier dans la CodeBase...
 
Carl Schreiber #:

Eh bien, selon le modèle client-serveur, le serveur est d'abord lancé, car il attend les questions du (des nombreux) client(s), puis le(s) client(s).

Il ne se passe rien dans le programme du serveur (bloqué) jusqu'à ce que quelque chose arrive des clients, puis il fait quelque chose et retombe dans sa torpeur d'attente.

Ahhh logique, d'abord tout envoyer puis le serveur répond. Dans le cas où le serveur donne une réponse, la connexion est établie et je peux consulter la réponse et réagir en conséquence. S'il n'y a pas de réponse, le message " Licensed License" apparaît. License server not connected. "
 

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

La question est maintenant pourquoi ? Est-ce qu'il fonctionne ? Protégé ? ...

 

Bonjour, comment puis-je mettre le point 7 dans mon EA pour éviter de décompiler le fichier ex.5 ?

Avez-vous des exemples de code pour éviter cela ?

Pourriez-vous m'expliquer en détail ?

 
Merci pour cet article.

En fin de compte, ce débat porte sur : "combien de temps puis-je gagner avant que le produit ne soit piraté". L'objectif est de rendre le piratage si coûteux qu'il n'en vaut plus la peine.

Une méthode que l'on pourrait mettre en œuvre est l'obscurcissement du code. Renommer chaque variable et méthode avec un nom aléatoire. double Signal deviendrait double AB1234, double IndicatorValue deviendrait CD1234. Cela ne résout pas le problème, mais c'est un véritable casse-tête pour la personne qui décompile le code. Il est très difficile de trouver l'endroit où le contrôle de licence est effectué pour le modifier éventuellement.

Une autre solution serait de tout gérer en interne, chaque indicateur, chaque expert advisor est calculé uniquement sur le serveur du propriétaire. L'utilisateur envoie la licence, les données de la barre, l'heure du serveur, etc. au serveur. Le serveur répond avec une valeur d'indicateur ou une action EA. En soi, cette solution serait assez coûteuse et longue à mettre en œuvre, mais elle résout la plupart des problèmes.

J'espère avoir éveillé votre curiosité et vous avoir aidé.
 
Winged Trading #:

Petite remarque : dans MQL5, le compilateur supprime déjà les noms de variables, les noms de fonctions et les commentaires lors de la génération du fichier .ex5.

L'exécutable est donc déjà assez " opaque ", donc l'obscurcissement par renommage des identifiants n'ajoute pas vraiment une couche de protection supplémentaire ici.