Diskussion zum Artikel "Schutz von MQL5-Programmen: Passwörter, Schlüssel, Zeitbegrenzung, Berechtigungsfernabfrage"
Trotz korrekter angabe des CXMLRPCServerProxy kann keine Verbindung zum Server hergestellt werden.
Zusäzlich bekomme ich die Meldung 3 leaked strings left.
Das getestete Beispiel was diese Fehler bringt ist RemoteProtectedEABase64.mq5
Wie kann ich diese Fehler beheben?
Hast Du schon mal versucht mit dem Debugger durchs Programm zu gehen, um zu sehen wo es hakt und wie die Variablen sind?
Steht etwas in den Logs?
Hast Du schon mal versucht mit dem Debugger durchs Programm zu gehen, um zu sehen wo es hakt und wie die Variablen sind?
Der Log gib:
2022.12.14 16:36:20.310 RemoteProtectedEABase64 (FRA40,H1) 3 leaked strings left (warnung)
2022.12.14 16:36:29.310 RemoteProtectedEABase64 (FRA40,H1) License server not connected. (print)
im Debug finde ich keine sinnvollen Meldungen dies bezüglich.
und, was sagt Dir das: " License server not connected. " ?
Übrigens kennst Du: https://www.mql5.com/en/forum/432897?
Eine einfache Suche nach RemoteProtectedEABase6.

- 2022.09.19
- www.mql5.com
und, was sagt Dir das: " License server not connected. " ?
Übrigens kennst Du: https://www.mql5.com/en/forum/432897?
Eine einfache Suche nach RemoteProtectedEABase6.
und, was sagt Dir das: " License server not connected. " ?
Was es mir sagt? Na was wohl, Keine verbindung ... ich weis nicht was Du mit der Frage bezweckst.
Der verlinkte Artikel ist zwar nett aber hilt mir leider nicht weiter.
WinInet.dll verwende ich.
Mir fällt beim besten wissen nicht ein wo der Fehler sein sollte.
Ich habe auch früher mal versucht sockets zu verwenden, bin aber davon abgekommen, weil der server blockiert, bis er was kriegt ...
Es gab auch mal eine Lösung über shared memeory - die habe ich auch nicht hin gekriegt.
Ich würde eine RAM-Disk verwenden und dann mit den Windows-Funktionen (kernel32.dll) dort einfach Dateien schreiben, lesen und löschen, das klappt und ist recht einfach.
Naja, nach dem Client-Server-Modell wird erst der Server gestartet, denn der wartet auf die Fragen der (vieler) Client(s) und dann der/die Clients.
Im Programm des Servers passiert nix (blockiert) bis etwas von den Clients kommt, dann macht er kurz 'was und fällt dann wieder in seine Warte-Starre.
Naja, nach dem Client-Server-Modell wird erst der Server gestartet, denn der wartet auf die Fragen der (vieler) Client(s) und dann der/die Clients.
Im Programm des Servers passiert nix (blockiert) bis etwas von den Clients kommt, dann macht er kurz 'was und fällt dann wieder in seine Warte-Starre.
Deepl sagt dies: https://www.deepl.com/translator#en/de/License%20server%20not%20connected
Die Frage ist jetzt warum? Läuft er? Geschützt? ...

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Schutz von MQL5-Programmen: Passwörter, Schlüssel, Zeitbegrenzung, Berechtigungsfernabfrage :
Die Mehrzahl der Entwickler benötigt Schutz für ihren Programmcode. In diesem Beitrag werden einige unterschiedliche Möglichkeiten zum Schutz von in MQL5 geschriebenen Programmen vorgestellt, so etwa zur Ausstattung von MQL5-Skripten, automatischen Handelssystemen und Indikatoren mit Zugriffskontrollverfahren. Dazu zählen Passwortschutz, Schlüsselgeneratoren, Zugriffskonten, Zeitbegrenzungsprüfungen sowie der Schutz mittels MQL5-RPC-Aufrufen aus der Ferne.
Passwortschutz
Fangen wir mit dem Elementarsten an. Am häufigsten erfolgt der Schutz von Software mithilfe eines Passwortes bzw. eines Lizenz- oder Berechtigungsschlüssels. Beim ersten Programmaufruf nach der Installation wird der Benutzer zur Eingabe des Passwortes für die betreffende Programminstanz (wie die Seriennummer bei Microsoft Windows oder Microsoft Office) aufgefordert. Nach Eingabe des richtigen Passworts oder Schlüssels ist der Benutzer berechtigt, die angemeldete Programminstanz im Rahmen der Nutzungsbedingungen unbeschränkt zu nutzen. Zur Eingabe des Passwortes können sowohl ein Eingangsparameter als auch ein eingabefähiges Textfeld verwendet werden. Ein Beispiel für einen solchen „Platzhalter“ folgt etwas weiter unten.
In dem Code wird das Feld CChartObjectEdit bereitgestellt, das zur Eingabe des Passwortes genutzt wird. Das von dem Benutzer eingegebene Passwort wird mit den Werten eines vorgegebenen Datenfeldes mit allen zulässigen Passwörtern abgeglichen. Die Passwortprüfung erfolgt mithilfe der Methode OnChartEvent() nach Eintreten des Ereignisses CHARTEVENT_OBJECT_ENDEDIT.
Wird MQL5-Code aus der Maschinensprache zurückübersetzt (dekompiliert), sind selbst die sichersten Schutzmechanismen für erfahrene Datendiebe nicht mehr unüberwindbar. Nachdem ich im Internet etwas herumgesucht habe, fand ich eine Webseite, auf der angeboten wurde, MQL5-Code zu knacken. Aber ich halte das für Schwindel, um von naiven Menschen, die irgendwelchen Code stehlen wollen, Geld abzuziehen. Ich habe es jedenfalls nicht probiert und könnte mich irren. Selbst wenn es so eine Lösung geben würde, sollten wir in der Lage sein, mithilfe der Übertragung der Eingangsparameter in verschlüsselter Form oder der Indizierung der übertragenen Objekte einen noch zuverlässigeren Schutz zu schaffen.
Autor: investeo