Schutz des Quellcodes vor der Kompilierung

 

Jeder Entwickler weiß sehr gut, wie viel Mühe und Zeit es kostet, einen wirksamen Algorithmus selbst zu entwickeln, und wenn er ihn geschaffen hat, hat er ein uneingeschränktes Recht, ihn zu schützen.

Wir sind sicher, dass viele Nutzer, wiewir, solche Situationen schon erlebt haben:

1. Dekompilierung *.ex4-Dateien, umdie Arbeitslogik einer anderen Person zu untersuchen und/oder weiter zu verändern. Mit den neuestenBuilds des MT4-Terminals ist dieser Prozess komplizierter geworden, aber dennoch analysieren erfahrene Hacker erfolgreich ihren Inhalt und nehmen unerlaubte Änderungen vor, einschließlich der Deaktivierung desTestschutzes und verschiedener Bindungen.

2. triviale Umbenennung von kompilierten Dateien, Herstellernamen (#propertycopyright), um sie als andere oder "proprietäre" Produkte auszugeben.

Wir entwickeln eineSoftwarelösung, die Entwicklern von Quellcode und ihren Kunden hilft, ihren Quellcode vor unbefugter Prüfung, Veränderung, Umbenennung und Weiterverkauf zu schützen.

Dieser Schutz wird auf der primären Ebene des Quellcodes durch dessen dynamische Verschlüsselung nach von uns entwickelten Algorithmen realisiert, ohne dass zusätzliche Bibliotheken oder externe Tools zum Schutz vor Dekompilierungverwendet werden, d.h. der Quellcode selbst wird in * umgewandelt.mq4-Format.

Jeder erfahrene Programmierer kann sich anhand des obigen Beispiels davon überzeugen, dass die Rekompilierung eines solchen verschlüsseltenQuellcodes in *.ex4-Formatmacht es sehr schwierig oder sogar unmöglich, sie zu studieren und zu analysieren. Außerdem kann jeder denSicherheitsverschlüsselungsalgorithmus absolut kostenlos testen, indem er einen beliebigen* Quellcode an * sendet.mq4-Formatper E-Mail codeprotector@ypy.cc (Einzelheiten siehe unten)

Aktuelle Funktionen (Beta-Version):

1. dynamische Verschlüsselung des Quellcodes unter Verwendung eines einzigartigen proprietären Algorithmus

Beispiel 1: So sieht der Quellcode vor der Verschlüsselung aus (Datei im Anhang)

Originalcode

Beispiel 2: So sieht der Quellcode nach der dynamischen Verschlüsselung aus (Datei im Anhang)

Code geschützt

2. Um den Eigentümer des Codes zusätzlich zu schützen, wird in jeden verschlüsselten Quellcode automatisch ein komplexer Informationsschutz des Eigentümers des Codes mit einem Informationsblock integriert (im Diagramm in der rechten unteren Ecke dargestellt).

Das Diagramm zeigt an:

+Informationen, diedie ID-Nummer der Quellcodeverschlüsselung enthalten(mit der der Eigentümer jederzeit eine bestimmte Instanz seines Produkts individualisieren kann). Dies kann zum Beispiel für den Eigentümer des Codes sehrnützlich sein, um herauszufinden, wessen bestimmte Instanz des Produkts unbefugt veröffentlicht oder gehackt wurde.

+ ursprünglicherDateiname, der vom Eigentümer des Quellcodes bei der Verschlüsselung verwendet wurde. Jede nachträgliche Manipulation des ursprünglichen sicheren Dateinamens führt zu einem Bruch der Logik (nur das Hinzufügen des ursprünglichen Dateinamens ist der Einfachheit halber erlaubt). Auf diese Weise wird esfür einen Angreifer sehr schwierig sein, den Dateinamen vollständig zu ändern.

+Name des Herstellers (#Eigentumsrecht). Bei der Verschlüsselung werden diese Daten aus dem Quellcode ausgelesen und in verschlüsselter Form gespeichert. Selbst wenn ein Eindringling Änderungen an der kompilierten *.ex4-Datei vornimmtund einen anderen Hersteller angibt, zeigt das Diagramm weiterhin die Daten des Herstellers an, wie sie ursprünglich vom Eigentümer angegeben wurden.

Jede nachträgliche unbefugte Änderung der auf der Karte im Informationsblock angezeigten Informationen führt zu einem Verstoß gegen die Logik.

Beispiel 3: So sieht der Informationsblock aus

Infos

Sobald wir einen hohen Prozentsatz an Kompatibilität der dynamischen Verschlüsselung mit verschiedenenCodes erreicht haben, planen wir die Entwicklung eines Softwareprodukts mit einem flexiblen und bequemen Lizenzierungssystem (Nutzungsbeschränkungen nach Zeit, Kontonummer, Name des Eigentümers, Handelsserver usw.), das von jedem Nutzer lokal auf seinem Computer verwendet werden kann, um seinen Code zu schützen, ohne ihn an andere weiterzugeben.

Diejenigen Entwickler, die aktiv mit uns zusammenarbeiten, indem sie unseren dynamischenVerschlüsselungsalgorithmus gründlich und professionell testen, erhalten denPremium-Status eines professionellen Nutzers mit erweiterten Funktionen und Nutzungsbeschränkungen.

Für Entwickler, die regelmäßigmit Kunden zusammenarbeiten, um verschiedenen Code zu entwickeln, ist es bequemer und sicherer, den Quellcode in einer bereits verschlüsselten Form weiterzugeben.

Die Erfahrunghat gezeigt, dass es,selbst wenn Sie den Code niemandem zur Verfügung stellen und ihn nur für Ihren eigenen Bedarf auf einemVPSverwenden, viel sicherer ist, ihn in verschlüsselter Form mit Bindungen an Ihre Konten zu verwenden.

Wie kann man einen beliebigen* Quellcode in * verschlüsseln.mq4?

Zurzeit können Sie bei der Fehlersuche die folgenden einfachen Schrittedurchführen:

1. Senden Sie eine beliebige E-Mail an codeprotector@ypy.cc.

2. eine Antwort erhalten, diese beantworten (damit die Antwort den erhaltenen Aktivierungscode speichert)

3. dann erhalten Sie eine E-Mail, in der Sie bestätigt bekommen, dass Sie alle* Quellcodes in * an diese Adresse senden können.mq4-Formatfür die Sicherheitsverschlüsselung.

4. Sie senden eine Datei *.mq4und nach einer Weile erhalten Sie eine E-Mail mit bereits verschlüsseltem Quellcode (der Name des Quellcodes wird an dieID-Nummer und "_protected"angehängt, die Sie sicher entfernen können).

Die Verarbeitung aller Dateien erfolgt automatisch, wir analysieren oder verwenden die gesendeten Dateien in keiner Weise, mit Ausnahme der Sicherheitsverschlüsselung, der Entfernung und der technischen Fehlersuche im Hinblick auf die Kompatibilität des Verschlüsselungsalgorithmus, dievom Benutzer veranlasst wird, falls der Quellcode fehlerhaft oder überhauptnicht verschlüsselt ist. Wenn Sie es vorziehen, keinen Quellcode per E-Mail zu versenden und/oder niemandem zu vertrauen, können Sie einfachwarten, bis wir eine separate Software erstellen, um den Quellcode lokal auf Ihrem Computer selbst zu sichern.

*Jeder Quellcode, der an *.mq4muss zuvor unverschlüsselt sein und in *.ex4ohne Warnungen oder Fehler. Sie sollten dies vorher selbst überprüfen.

Falls der Quellcode mit Fehlern oder gar nichtverschlüsseltwurde und vor der Verschlüsselung voll funktionsfähig war (dies sollten Sie vorher überprüfen) und Sie sicher sind, dass Sie keine Änderungen daran vorgenommen haben, teilen Sie uns dies bitte unter Angabe der folgenden Informationen mit:

1.die Verschlüsselungs-ID-Nummer.

2. was nicht oder nicht richtig funktioniert.

3. beschreiben Siedetailliert, wie wir den Fehler reproduzieren können, und fügen Sie nach MöglichkeitScreenshots bei.

P.S. Da wir oft verschiedene Anfragen und Anregungen erhalten, beachten Sie bitte, dass wir keine Aufträge zur Programmierung annehmen, da wir uns mit der Selbstentwicklung von Software für ihre eigenen Bedürfnisse und Endprodukte beschäftigen. Es gibt viele qualifizierteDrittentwickler, die bereit sind, jeden Ihrer Aufträge für Softwareentwicklung im Bereich "Freelance"des Marktplatzes zu erfüllen. Wir haben auch keine Softwarelösung für die Dekodierung von Quellcodes in ihre ursprüngliche Form und planen auch nicht, dies zu tun. Jegliche Aufforderungen, uns den Original-Quellcode zuzusenden, auch vonPersonen, die sich als deren Eigentümerausgeben, werden ignoriert. Bitte wenden Sie sich auch mit diesen Fragen nicht an uns.

Bitte posten Sie in diesem Thread all diejenigen, die verstehen, wozu es gut ist und für wen es wirklich nützlich sein kann.

 
Pavel Izosimov:

Mit den neuestenBuilds des MT4-Terminals ist dieser Prozess zwar komplizierter geworden, aber dennoch gelingt es erfahrenen Hackern, deren Inhalt zu analysieren und unerlaubte Änderungen vorzunehmen, einschließlich der Deaktivierung desTestschutzes und verschiedener Bindungen.

Können Sie diese Behauptung beweisen?
 
Renat Fatkhullin:
Können Sie diese Behauptung beweisen?

Renat, guten Tag!

Ja, natürlich, ich werde Ihnen in einer privaten Nachricht einige Beispiele für geknackte Codes schicken, die wir im Internet gefunden haben. Außerdem kann ich Ihnen genau den Namen eines Spezialisten und seiner Website nennen, der regelmäßig und öffentlich Entwickler schädigt, indem er ihren Schutz entfernt.

Ich würde mich über Ihre Analyse freuen.

 
OK, vielen Dank.
 
Pavel Izosimov:

...

Ich habe eine Frage: Welche Garantie gibt es, dass Ihr Dienstprogramm nicht selbst ein Trojaner ist und den an es gesendeten Verschlüsselungscode nicht weitergibt? Antworten wie "Sie können sich auf uns verlassen" und "wir sind sehr, sehr, sehr ehrlich" werden nicht akzeptiert.

Zweitens: Was hindert den Programmierer daran, einen Obfuscator zu schreiben - und das ist, so wie ich es verstehe, Ihre Software? Der einfachste Obfuskator kann in kürzester Zeit geschrieben werden. Definieren Sie zum Beispiel eine Variablen-Ersatzliste wie folgt: #define m_list x03928473 - nicht viel, aber genug für den Grundschutz.

 
Vasiliy Sokolov:

Ein einfacher Obfuscator kann im Handumdrehen geschrieben werden. Ich erstelle zum Beispiel eine Liste mit Definitionsvariablen für die Substitution wie folgt: #define m_list x03928473 - nicht zu viel, aber genug für einen Basisschutz.

Es macht keinen Sinn, die Variablennamen zu verschleiern - sie sind im resultierenden Code gar nicht enthalten. Nur öffentlich exportierte Funktionsnamen werden gespeichert.

Eine Verschleierung ist nur dann sinnvoll, wenn Sie Ihren Code tatsächlich verändern oder, was noch besser ist, wenn Sie ihn virtualisieren. Die Virtualisierung erfolgt jedoch nicht auf Quellcodeebene, sondern nur auf Objekt- oder Binärcodeebene.

 
Pavel Izosimov:

Jede nachträgliche unbefugte Änderung der in der Infobox angezeigten Informationen führt zu einem Versagen der Logik.

Das klingt ein bisschen unheimlich.
 

Benutzen Sie den Marktplatz, um Produkte zu verkaufen, und das Problem des möglichen Hackens entfällt vollständig.

Produkte, die über den App-Shop gekauft werden, haben ein völlig anderes Codierungs-/Sicherheitssystem und sind für die Hardware des jeweiligen Kunden verschlüsselt.

 
Renat Fatkhullin:

Benutzen Sie den Marktplatz, um Produkte zu verkaufen, und das Problem des möglichen Hackens entfällt vollständig.

Produkte, die über den App-Shop gekauft werden, haben ein völlig anderes Codierungs-/Sicherheitssystem und sind für die Hardware des jeweiligen Kunden verschlüsselt.

Also ist der Ex4- und Ex5-Dateischutz bereits umgangen? Und ist er schlechter als der Schutz nach der Veröffentlichung auf dem Markt?
 
Tapochun:
Der Schutz von ex4- und ex5-Dateien ist also bereits umgangen worden? Und ist er schlechter als der Schutz nach der Veröffentlichung auf dem Markt?

Nein, das haben sie natürlich nicht.

Der Schutz auf dem Markt ist durch die Bindung an die Hardware besser. Ohne den Markt können Sie einen Schutz in Ihren Code einbauen, der die Funktionalität oder die Nutzungsbedingungen einschränkt. Und sie werden funktionieren, weil es einen ernsthaften Schutz des Objektcodes gibt. Auf dem Markt werden jedoch uneingeschränkte Programme angeboten, die der Markt selbst zusätzlich zu den grundlegenden Schutzmaßnahmen für die Hardware des Käufers neu verschlüsselt.

 
Renat Fatkhullin:
Okay, danke.
Übermittlung einiger Beispiele mit einem Link zur Originalquelle