Saturday, 13 May 2017

Forex Rpc

MetaTrader 5 - Beispiele Sichern von MQL5-Code: Kennwortschutz, Schlüsselgeneratoren, Zeitlimits, Remote Lizenzen und erweiterte EA-Lizenzschlüsselverschlüsselungstechniken Einleitung Die meisten Entwickler müssen ihren Code gesichert haben. Dieser Artikel präsentiert ein paar verschiedene Möglichkeiten, um MQL5-Software zu schützen. Alle Beispiele in dem Artikel beziehen sich auf Expertenberater, aber die gleichen Regeln können auf Skripte und Indikatoren angewendet werden. Der Artikel beginnt mit einfachem Passwortschutz und folgt mit Schlüsselgeneratoren, Lizenzierung eines bestimmten Maklerkontos und Zeitbegrenzungsschutz. Dann stellt es ein Remote-Lizenzserverkonzept vor. Mein letzter Artikel auf MQL5-RPC-Framework beschrieben Remote Procedure Calls von MetaTrader 5 auf jedem XML-RPC-Server. Ich werde von dieser Lösung Gebrauch machen, um ein Beispiel für eine Remote-Lizenz zu geben. Ich werde auch beschreiben, wie man diese Lösung mit Base64-Codierung zu verbessern und Beratung für PGP-Unterstützung, um ultra-sicheren Schutz für MQL5 Expert Advisors und Indikatoren zu machen. Ich bin mir bewusst, dass MetaQuotes Software Corp. bietet einige Optionen für die Lizenzierung des Codes direkt aus dem MQL5 Market Abschnitt. Dies ist wirklich gut für alle Entwickler und wird nicht ungültig Ideen in diesem Artikel vorgestellt. Beide Lösungen gemeinsam nutzen können nur den Schutz stärker und sicherer gegen Software-Diebstahl. 1. Passwortschutz Beginnt mit etwas Einfachem. Die erste am häufigsten verwendete Lösung für einen Schutz von Computersoftware ist das Kennwort oder der Lizenzschlüssel. Während des ersten Laufes nach der Installation wird der Benutzer mit einem Dialogfenster abgefragt, um ein Kennwort einzufügen, das mit einer Softwarekopie (wie dem Microsoft Windows oder Microsoft Office Serial Key) verbunden ist, und wenn das eingegebene Passwort dem Benutzer entspricht, darf er eine einzige registrierte Kopie von verwenden Eine Software. Wir können eine Eingabevariable oder ein direktes Textfeld verwenden, um den Code einzugeben. Ein Beispiel-Stub-Code ist unten gezeigt. Der Code unten initialisiert ein CChartObjectEdit-Feld, das verwendet werden, um ein Kennwort einzufügen. Es gibt ein vordefiniertes Array von zulässigen Kennwörtern, das mit einem Kennwort verglichen wird, das von einem Benutzer eingefügt wurde. Das Kennwort wird nach dem Empfang des CHARTEVENTOBJECTENDEDIT-Ereignisses in der OnChartEvent () - Methode aktiviert. Diese Methode ist einfach, aber vurnelable für jemanden, der das Kennwort auf einer Website mit gehackten Seriennummern zu veröffentlichen. EA-Autor kann nichts tun, bis ein neuer Expert Advisor veröffentlicht wird und das gestohlene Kennwort auf die schwarze Liste gesetzt wird. 2. Schlüsselgenerator Schlüsselgeneratoren sind ein Mechanismus, der es erlaubt, einen Satz von Passwörtern basierend auf vordefinierten Regeln zu verwenden. Ich gebe einen Überblick, indem ich einen Stub für einen Keygenerator unten. Im folgenden Beispiel muss der Schlüssel aus drei Zahlen bestehen, die durch zwei Bindestriche getrennt sind. Daher ist das zulässige Format für ein Passwort XXXXX-XXXXX-XXXXX. Die erste Zahl muss durch 3 teilbar sein, die zweite Zahl muss durch 4 teilbar sein und die dritte Zahl muss durch 5 teilbar sein. Daher dürfen die erlaubten Passwörter 3-4-5, 18000-20000-20000 oder die komplizierteren 3708-102792- 2844770. Natürlich kann die Anzahl der Ziffern in einer Zahl auf einen gegebenen Wert eingestellt werden und die Berechnungen können komplizierter sein. Man könnte auch eine Variable hinzufügen, die nur mit einer gegebenen Hardware gültig ist, indem man eine HDD-Seriennummer oder CPU-ID zur Berechnung addiert. In solch einem Fall würde die Person, die EA laufen zu lassen, einen zusätzlichen Generator laufen lassen, der auf Basis der Hardware berechnet wird. Die Ausgabe wäre eine Eingabe für ein keygen und das generierte Passwort wäre nur für eine gegebene Hardware gültig. Dies hat eine Beschränkung von jemand ändern Computer-Hardware oder mit VPS für die Ausführung von EA, aber dies könnte durch das Weggeben von zwei oder drei gültige Passwörter gelöst werden. Dies ist auch im Bereich Market der MQL5-Website der Fall. 3. Einzelkonto-Lizenz Da die Kontonummer des Terminals eines bestimmten Brokers eindeutig ist, kann dies dazu verwendet werden, die Nutzung der EA auf einem oder einem Satz von Kontonummern zu ermöglichen. In diesem Fall genügt es, die Account-Daten mit den Methoden AccountInfoString (ACCOUNTCOMPANY) und AccountInfoInteger (ACCOUNTLOGIN) zu verknüpfen, um sie mit vorkompilierten zulässigen Werten abzugleichen: Dies ist ein einfacher, aber sehr leistungsfähiger Schutz. Der Nachteil besteht darin, dass es notwendig ist, die EA für jede neue Kontonummer, die der Datenbank hinzugefügt wurde, neu zu kompilieren. 4. Zeitlimit-Schutz Zeitlimit-Schutz ist sinnvoll, wenn die Lizenz zeitweilig erteilt wird, z. B. durch Testversion der Software oder wenn die Lizenz monatlich oder jährlich erteilt wird. Da dies offensichtlich ist, kann dies für Expert Advisors und Indicators angewendet werden. Erste Idee ist, die Server-Zeit zu überprüfen und basierend darauf, dass der Benutzer die Indikator oder Expert Advisor innerhalb einer bestimmten Zeitspanne verwenden. Nach Ablauf dieser Frist ist der Lizenzgeber in der Lage, die Funktionalität des Lizenznehmers teilweise oder vollständig zu deaktivieren. Der einzige Nachteil ist, dass die Lösung für jeden Lizenznehmer separat zusammengestellt werden muss. 5. Remote-Lizenzen Wäre es nicht gut, eine totale Kontrolle zu haben, um die Lizenz zu deaktivieren oder den Testzeitraum auf Benutzerbasis zu verlängern. Dies kann einfach mit dem MQL5-RPC-Aufruf geschehen, der eine Abfrage mit dem Kontonamen senden und den Wert empfangen würde Ob das Skript im Testmodus ausgeführt oder deaktiviert werden soll. Bitte beachten Sie den folgenden Code für eine Beispielimplementierung: Dies ist ein einfacher XML-RPC-Server, der in Python mit zwei vordefinierten Lizenzen für MetaTrader 5 implementiert wurde. Die Lizenzen werden für den RemoteProtectedEA-Expertenberater auf dem Standard-MetaQuotes-Demo-Server (access. metatrader5: 443) Mit den Kontonummern 1024221 und 1024223. Eine industrielle Lösung wäre wahrscheinlich nutzen eine Lizenz-Datenbank in Postgresql oder eine andere Datenbank, aber das Beispiel oben ist mehr als genug für diesen Artikel, da es die Remote-Lizenzen behandelt sehr gut. Die EA, die die Remote-Lizenz verwendet, muss lediglich einen Remote-MQL5-RPC-Aufruf auf die isValid () - Methode vorbereiten, die wahre oder falsche boolsche Werte zurückgibt, je nachdem, ob die Lizenz gültig ist. Das folgende Beispiel zeigt eine Beispiel-EA, die auf Kontoschutz basiert: Wenn Sie beide Skripts ausführen, sollten Sie eine Remote-Lizenz für Ihre Kontonummer hinzufügen können. Die Remote-Lizenz kann auch für die Zeitlimit-Lizenz oder eine Passwort-Lizenz verwendet werden, die nach einer Testphase per Fernzugriff deaktiviert werden kann. Zum Beispiel würden Sie eine EA für jemanden für 10 Tage testen, wenn er nicht zufrieden mit dem Produkt, das Sie deaktivieren die Lizenz oder in dem Fall, wenn er zufrieden ist, können Sie die Lizenz für einen bestimmten Zeitraum zu aktivieren. 6. Secure License Encryption Die im letzten Abschnitt vorgestellten Ideen haben Remote Procedure Calls verwendet, um Informationen zwischen dem Lizenzserver und dem Client-Terminal auszutauschen. Dies könnte möglicherweise durch Sniffer-Pakete auf eine registrierte Kopie der EA gehackt werden. Durch die Verwendung von Sniffer-Anwendung ist Hacker in der Lage, alle TCP-Pakete, die zwischen zwei Maschinen gesendet werden, zu erfassen. Wir werden dieses Problem überwinden, indem Sie base64-Codierung für das Senden von Kontodaten verwenden und verschlüsselte Nachricht empfangen. Für einen Fachmann wäre es auch möglich, PGP zu verwenden und setzen Sie den gesamten Code in eine DLL für weiteren Schutz. Ich kam mit der Idee, dass die Nachricht in der Tat eine andere RPC-Nachricht (wie in russischen Matryoshka Puppe), die weiter in MQL5-Daten konvertiert werden wird. Der erste Schritt besteht darin, Base64-Codierung und Decodierung Unterstützung für MQL5-RPC hinzuzufügen. Zum Glück war das schon für MetaTrader 4 bei mql5encode8098 von Renat getan, also musste ich es nur in MQL5 umwandeln. Für eine detaillierte Beschreibung der Base64-Codierung können Sie einen Wikipedia-Artikel besuchen. Ein Beispieltest für das MQL5 base64-Codierungs - und Decodierungsskript ist nachfolgend dargestellt: Das Skript erzeugt das folgende Ergebnis. Die Gültigkeit der Codierung kann in Python in 4 Zeilen Code einfach geprüft werden: Der Sekunden-Schritt ist die Verschlüsselung des XMLRPC-Ergebnisses in base64 (aka Matryoshka-Technik): Nachdem die Lizenz verschlüsselt ist, können wir die MQL5-RPC-Methode zur Konvertierung von entschlüsselter Nachricht verwenden MQL5-Daten: Das Ergebnis des Ausführens des Skripts, sofern der RemoteLicenseExampleBase64-Server ausgeführt wird, lautet wie folgt: Wie Sie sehen können, enthält die XML-RPC-Payload einen String, der tatsächlich eine von base64 codierte XML-RPC-Nachricht ist. Diese base64-codierte Nachricht wird in eine XML-Zeichenfolge decodiert und später in MQL5-Daten decodiert. 7. Advanced Anti-Decompilation Guidelines Sobald MQL5 Code dekompiliert wird, sind selbst die sichersten Schutzmaßnahmen, die dem erfahrenen Reverse-Engineer ausgesetzt sind, anfällig für Rissbildung. Nach einigem googeln fand ich eine Website, die MQL5 decompiler anbietet, aber ich vermute einfach, dass dies eine Fälschung ist, die gemacht wird, um Geld von naiven Leuten wegzunehmen, die someones Code stehlen möchten. Wie auch immer, ich habe es nicht versucht und ich könnte mich irren. Auch wenn diese Lösung existiert, sollten Sie in der Lage, einen stärkeren Schutz durch das Senden von verschlüsselten EAindicator Eingangsparameter oder Objekt Indizes übergeben. Es wird sehr schwer für einen Hacker, korrekte Eingabeparameter für das geschützte EA zu erhalten oder korrekte Eingabewerte des geschützten Indikators zu sehen, was seinerseits nutzlos macht. Es ist auch möglich, korrekte Parameter zu senden, wenn die Konto-ID übereinstimmt oder unverschlüsselte falsche Parameter sendet, wenn die Konto-ID nicht gültig ist. Für diese Lösung kann man PGP (Pretty Good Privatsphäre) verwenden. Selbst wenn der Code dekompiliert wird, werden Daten verschlüsselt mit privatem PGP-Schlüssel gesendet und EA-Parameter werden nur dann entschlüsselt, wenn Account-ID und PGP-Schlüssel übereinstimmen. Fazit In diesem Artikel habe ich ein paar Möglichkeiten, um MQL5-Code zu schützen. Ich habe auch eingeführt Remote-Lizenz-Konzept über MQL5-RPC-Aufruf und Base64-Unterstützung hinzugefügt. Ich hoffe, der Artikel dient als Grundlage für weitere Ideen, wie man MQL5-Code zu sichern. Der Quelltext ist dem Artikel beigefügt. Google FXAS SYSTEM von Rpchost entwickelt wurde, ist eine komplette Forex Trading-System hilft Händler in ihrem Forex Trades. Dieses Trading Forex System hat viele Aufgaben, es posten Instant-Signale mit Ton Alert Benachrichtigung Händler, dass ein neues Signal angekommen ist, werden die Signale von einem automatisierten Forex Roboter von Rpchost entworfen und geliefert sofort an FXAS SYSTEM. Devisenhandel ist ein heikles Geschäft, ist dieses System eine Notwendigkeit für jeden FX Trader suchen, um stetige Geldeinkommen zu machen. In den nächsten Tagen werden wir diese Forex-Signale in der Lage sein, direkt in Ihrer Broker-Handelsplattform (FXCM.) Ausgeführt zu werden, wird es in Kürze die Nummer eins FOREX Auto Trading System sein. Foreign Exchange-Markt wächst schnell und Sie können nicht alle seine Schwierigkeiten allein, legen wir in Ihren Händen die ultimative Forex Trading-Software, die fast frei ist, installieren Sie diese Online-Forex-Devisenhandel Software und konkurrieren die FX-Markt. FXAS SYSTEM wird bald die Nummer eins FX-Tool in Forex-Markt weltweit sein. RPCHOST ist am besten bewertet Forex-Beratung in Nahost. Asien. Amerika. USA. Kanada. Deutschland. Frankreich. Spanien. Brasilien. VEREINIGTES KÖNIGREICH. Libanon. Beirut. Truthahn. Ägypten. Japan. China. Saudi-Arabien und alle ARAB-Länder. FXAS SYSTEM zeigt Forex-Signal für die folgenden Währungen EURUSD und GBPUSD. Euro. Britische Pfund und Dollar sind die wichtigsten Währungen in Forex Trading heute. FXAS, Rpchost Forex Trading Forex. ,,,, Forex Rpchost FXAS kaufen. Deutsch:. (FXCM.), FOREX. Aufrechtzuerhalten. FXAS FX. RPCHOST,,,,,,,,,,,,,,. FXAS EURUSD GBPUSD. ,. Der Forex-Risiko-Wahrscheinlichkeitsrechner (RPC) wurde entwickelt, um Hand in Hand mit Fibonacci Retracement-Ebenen zu arbeiten. Es ist daher wichtig, dass Sie ein wenig verstehen, wie grundlegende Fibonacci funktioniert. Klicken Sie hier, um weitere Informationen zur korrekten Verwendung des RPC-Rechners zu erhalten. Ihre Angaben sind streng geschützt, sicher und werden niemals verkauft oder weitergegeben. Wir hassen Spam so viel wie Sie. Weitere Informationen über unsere Datenschutzrichtlinie. Free Forex Strategies Systems Eine Sammlung von Forex-Systemen, Indikatoren und Strategien, beinhaltet die Forex Analyzer PRO. 100 kostenloser Download. Forex Brokers Revealed Alles, was Sie über Forex Trading Broker wissen sollten. Erlernen Sie, wie man den besten Vermittler für Sie wählt Download Forex Analyzer PRO für freies Download einer der besten freien fx Systeme für rentables Devisenhandel Alle Artikel, Systeme, Strategien, Berichte, Bewertungen, Nachrichten, Forschung, Analysen, Preise oder andere Informationen enthalten auf Diese Website, von Aboutcurrency, ihren Partnern oder Mitwirkenden, wird als allgemeiner Marktkommentar zur Verfügung gestellt und stellt keine Anlageberatung dar. Aboutcurrency übernimmt keine Haftung für Verluste oder Schäden, einschließlich, aber nicht beschränkt auf Verluste, die direkt oder indirekt aus der Nutzung oder dem Vertrauen auf diese Informationen entstehen können. Copyright-Kopie 2017 Überwährung. Alle Rechte vorbehalten. Risk Disclosure: Trading Forex auf Margin trägt ein hohes Maß an Risiko, und kann nicht für alle Anleger geeignet. Der hohe Grad der Hebelwirkung kann sowohl gegen Sie als auch für Sie arbeiten. Vor der Entscheidung, in Devisen zu investieren, sollten Sie sorgfältig überlegen Sie Ihre Anlageziele, Erfahrung und Risikobereitschaft. Die Möglichkeit besteht, dass Sie einen Verlust von einigen oder allen Ihrer anfänglichen Investition zu erhalten und daher sollten Sie nicht investieren Geld, das Sie sich nicht leisten können, zu verlieren. Sie sollten sich bewusst sein, alle Risiken im Zusammenhang mit Devisenhandel und suchen Rat von einem unabhängigen Finanzberater, wenn Sie irgendwelche Zweifel haben.


No comments:

Post a Comment