Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4972
Beiträge: 43246
Benutzer: 7.216
Aktive Benutzer: 84
Links: 84
Wir begrüßen unseren neuesten Benutzer: bb1107
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Tagen
- bb1107
vor einer Woche
- rg-trader
vor 2 Wochen
- toshistyle
vor 2 Wochen
- Robin
vor 3 Wochen
- mMmaanu

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 78
Gesamt: 78
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 14.10.15
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard Schutz eines laufenden EA vor Hacking oder Kopieren

Wie kann man einen eigenen Expert Advisor, geschrieben in MQL5, im laufenden Betrieb vor möglichen Angriffen durch Hacking oder Kopieren schützen?

In den .mqh-Include-Dateien befindet sich der selbstgeschriebene Handels-Algorithmus. Durch den Vorgang der Kompilierung dieser .mqh-Dateien werden diese Informationen dann in die .ex5-Datei übernommen. Dies hat zur Folge, dass die .mqh-Dateien nach ihrer Kompilierung für die Ausführung des EA nicht mehr benötigt werden. (Man kann dies überprüfen, indem man die .mqh-Dateien aus ihren ursprünglichen Ordnern verlagert. Der EA funktioniert dann trotzdem - in der einmal durch Kompilierung eingestellten Form, die daraufhin in der .ex5-Ausführungsdatei gespeichert ist.)

Wenn es um den Schutz des selbstgeschriebenen EAs im laufenden Betrieb, d.h. bei ständig geöffnetem Internetzugang geht, dann also jetzt vor allem um den Schutz der ausführenden .ex5-Datei.

Welche Möglichkeiten dazu bestehen hier,
oder gibt es dazu gute und noch bezahlbare Protection-Software,
und hilft hier vielleicht auch ein Umgehungsprogramm, wie Tor?


Vielen Dank für jede Antwort!
  #2 (permalink)  
Alt 06.11.15
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 47
marquez befindet sich auf einem aufstrebenden Ast
Standard

mqh Dateien werden beim compilieren statisch includiert.

Einen 100% Schutz gibt es nicht. Du kannst lediglich solche Spielchen machen, wie irgendwo Serverseitige Legitimierung o.ä. vorzunehmen. Alternativ kannst Du Dich auch bei mql5.com als Seller anmelden, dort den EA verkaufen, und bestimmen wie oft jemand den herunterladen darf. Näheres findest Du dort:
https://www.mql5.com/en/articles/385

Gern genommen ist auch immer wieder das auslagern und verschleiern in Form von DLLs o.ä.

Hoffe, da ist der ein oder andere Ansatz für Dich dabei, der Dir weiter hilft.
  #3 (permalink)  
Alt 06.11.15
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard

Hallo marquez,

danke für Deine Anregungen. Bin ganz überrascht, dass sich nun doch noch jemand des Themas angenommen hat.

Verkauf, in welcher Form auch immer, wäre in meinem Fall nicht die Lösung.

Doch der Hinweis auf das Auslagern und Verschleiern der ausführenden Datei in Form von DLLs (den ich übrigens inzwischen auch an anderer Stelle gefunden hatte) weist wahrscheinlich auf die beste Lösung. Leider habe ich hierzu keine Erfahrung.

Deshalb möchte ich anregen, dass diejenigen, die hierzu bereits Erfahrung haben, diese - vielleicht in einem eigenen Beitrag - detaillierter wiedergeben. Dies wäre sicherlich für Viele ein Gewinn.
  #4 (permalink)  
Alt 06.11.15
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Können .ex5 Dateien dekompiliert werden?
  #5 (permalink)  
Alt 07.11.15
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard

Hallo Raul0,

super Frage! Im Ernst: Auf die Frage, wie man einen laufenden EA schützen kann, antwortete mein MetaTrader-Brokerberater, dass ihm diese Frage während seiner immerhin schon jahrelangen Tätigkeit noch nie gestellt worden sei...

Dies wiederum könnte aber auch nur auf ein allgemein mangelndes Problembewusstsein schließen lassen.

Denn andererseits entnehme ich inzwischen aus anderen Webbeiträgen, dass gewiefte Hacker einen EA - und hier kann doch letztlich nur die .ex5-Datei gemeint sein - und damit eine solche ausführende Datei problemlos hacken, also auch decompilieren könnten.

Ein Bekannter (selbst Programmierer) meinte zu diesem Problem inzwischen, dass die .ex5-Datei schon durch den Vorgang der Installation und Compilierung abhängig sei von maschineneigenen Codes und auch den vorzunehmenden MetaTrader-Einstellungen.

Insofern dürfte dann eine einfache Kopie der .ex5-Datei auf anderen PC-Systemen nicht einfach so funktionsfähig sein???

Doch letztendlich räumte er doch auch die Möglichkeit ein, dass dies alles eine Decompilierung einer .ex5-Datei zwar erschweren, aber wohl nicht unbedingt verhindern könnte.

Wenn eine .ex5-Datei tatsächlich nicht decompilierbar wäre, glichen manche der speziell dazu gemachten Forenbeiträge einer reinen Gespensterdebatte (was manchmal vorkommt... und ich wäre froh, wenn es so wäre).

Wer weiß es genauer?
  #6 (permalink)  
Alt 07.11.15
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

also ich weiß das jetzt nicht bezüglich der MT5 files, allerdings bei MT4 war es mal ein Problem.
Erstmal sind die kompilierten Dateien unabhängig vom System, da sie auch unter Mac und Linux PC lauffähig sind, es handelt sich daher eher um einen Code wie JAVA object code (läuft in der JAVA machine und ist daher fast Prozessor und System unabhängig).

Für die alten MT4 dateien, ich glaube Version <600 gab es im Internet Programme, die die Dateien dekompilieren konnten. Bei der Version > 600, habe ich nur von gehört, allerdings wurde das meines wissenes noch nicht bewiesen, dass jemand es kann.

Das Auslagern von Code in die DLL verschiebt nur das Problem und es ist wahrscheinlich einfacher DLL - Code zu dekompilieren als MT4 EAs, denn für Machinencode gibt es viele Tools (Größerer Markt).

Als einzige sinnvolle Variante erachte ich auch nur das Auslagern auf einen eigenen Server.

Die entscheidene Frage ist doch, ist dein Code überhaupt Wert geschützt zu werden?

Gruß

yytrader
  #7 (permalink)  
Alt 07.11.15
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard

Hallo yytrader,

die Frage nach der Schutzbedürftigkeit eines EAs ändert doch nichts daran, dass ein Schutz dann, wenn er zumindest subjektiv für wünschenswert gehalten wird, eigentlich auch zur Verfügung stehen sollte. Insofern wäre dies eigentlich vor allem auch eine kritische Anmerkung an die MetaTrader-Broker bzw. an MetaQuotes als Hersteller, die einen besonderen Schutz offenbar nicht wie selbstverständlich für erforderlich halten oder gar anbieten. Und zwar gerade dann, wenn es offenbar so einfach ist, selbst DLLs zu knacken... , obwohl sie angeblich den einzig vernünftigen Schutz versprechen, glaubt man gewissen Forenbeiträgen.

Nach Deinen jetzigen Ausführungen tut sich hier wohl ein enormes Dilemma auf. Und die gesamte bisherige Diskussion im Netz um den Schutz der ausführenden Datei wäre dann tatsächlich reine Wolkenschieberei. Denn, wie Du dankenswerter Weise ausführst, wenn eine .ex4-Datei so einfach zu dekompilieren war, dürfte das zumindest vom Prinzip her auch heute noch so sein und dies dürfte dann vermutlich genauso auch für .ex5-Dateien gelten.

Du schreibst nun: "Als einzige sinnvolle Variante erachte ich auch nur das Auslagern auf einen eigenen Server." Dies ist wohl eine bemerkenswerte Aussage. Doch was meinst Du genau damit? Denn der eigene, internetfähige PC für den Datenverkehr mit dem MetaTrader-Broker ist ja ohnehin die normale Vorgehensweise.
  #8 (permalink)  
Alt 07.11.15
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

Hallo Eberhard,

selbstverständlich hast du recht, wenn du sagt, dass jeder selbst entscheiden muss, ob der Code geschützt werden soll oder nicht.
Das Auslagern in Dlls wurde gemacht, da es zumindest fürden alten MT4 Compiler gute Decompiler gab. So konnte man die Sicherheit deutlich erhöhen.
Alle Software hat dieses Problem, da die Programme aus Instruktionen bestehen und damit für den Prozessor lesbar sein müssen (sonst kann er nichts ausführen) und daher kannst du diese zurückrechnen. Allerdings ist das sehr sehr kompliziert und daher oft! nur ein theoretisches Problem. man kann sich sogenannte Obfuskatoren verwenden, die verkomplizieren den Code und damit erhöht sich die Sicherheit, da es komplizierter wird, das ganze zu knacken.

Metaquotes hat sich diesem Problem schon angenommen und hat ja den Compiler mit Version 600 angepasst und bis jetzt habe ich von noch keiner Möglichkeit gehört, diesen Code zu dekompilieren.
Ich denke, es ist sicher mit dem neuen Compiler zu kompilieren und dann wird zumindest kaum jemand in der Lage sein, deinen Code zu entschlüsseln. Das heißt nicht, dass es in der Zukunft nicht doch mal einen Dekompiler gibt, welcher dazu in er Lage ist.

Mit dem Auslagern auf einen Server meine ich folgendes:
Nehmen wir an, dass dein EA eine Position bei einem Moving Average Cross durchführt. Dazu sendet der EA die aktuellen Kursdaten an den Server und dieser berechnet, ob ein MA Cross vorliegt und gibt an den EA ja oder nein zurück.
So weiß die Person die den EA dekompiliert hat nicht, warum sie ein ja oder nein zurückbekommen hat, sondern nur, dass Kursdaten an den Server gesendet werden und dann eine Antwort kommt. Allerdings kann auch jemand deinen Server hacken und kennt die Formel dann trotzdem.
Du kannst dir niemals vollständig sicher sein, was ist, wenn du entführt wirst und nur freikommst, wenn du die EA Idee preisgibst? Ich weiß dies ist ein extremes Beispiel, allerings soll es verdeutlichen, dass es nie einen vollständigen Schutz gibt.

Zusammenfassung: Ich denke es ist sicher genug, nur zu Kompilieren und darauf zu hoffen, dass es in naher Zukunft keine Dekompiler gibt.


Gruß

yytrader
  #9 (permalink)  
Alt 07.11.15
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard

Hallo yytrader,

danke für Deine Antwort. Wenn ich es richtig verstanden habe, dann müsste aber nur ein Teil der eigenen Algorithmusverrechnung im eigenen PC, ein anderer Teil daraufhin sozusagen in der Folge im Server des Brokers ausgeführt werden. Habe ich das richtig verstanden?

Wenn dies so ist, dann müsste es dazu aber auch ein spezielles "Kooperationsangebot" vom ausgewählten MetaTrader-Broker geben. Diese Möglichkeit habe ich bislang so jedenfalls nicht in Betracht gezogen.

Ich hoffe, dass ich Deine - übrigens sehr konstruktiven - Ausführungen richtig verstanden habe?

Auch würde diese "Kooperation" dann wohl auch nur bei sehr einfachem bzw. nicht weiter veränderten bzw. verkomplizierten Indikatoreinsatz funktionieren können?

Gruß
Eberhard
  #10 (permalink)  
Alt 08.11.15
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ja ein Teil des Algorithmuses wird auf dem Server durchgeführt.
Allerdings ist es dein Server, mit dem hat der Broker nichts zu tun. Diesem ist es vollkommen egal was du machst.
Die Komplexität kannst du selbst bestimmen, da du selbst den ganzen Prozess beeinflusst.

Gruß

yytrader
Thema geschlossen

Lesezeichen

Stichworte
code schutz, ea, ea schutz, ea schützen, expert advisor schützen, hacking, schutz, schützen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------