Fehlersuche in der DLL? In MT4 und MT5 - Seite 16

 

Leute, vielleicht ist das nicht die richtige Frage, aber auch ich habe ein Problem mit der Bibliothek in Version 5.

In Version 4 funktionierte und funktioniert alles, aber in Version 5 will es nicht mehr funktionieren.

Vielleicht kann jemand helfen.

Ich rufe die Funktion von einer DLL aus auf, die mir den Text zurückgibt. In Version 4 sehe ich den Text normal, während ich in Version 5 - CRAZYBLES.

Ich schreibe die DLL in DELPHI (pchar Typ fname).

In dem Code weise ich eine Variable string zu.

Bitte beraten Sie mich, was ich falsch mache.

 
stongbar:

Leute, vielleicht ist das nicht die richtige Frage, aber auch ich habe ein Problem mit der Bibliothek in Version 5.

In Version 4 funktionierte und funktioniert alles, aber in Version 5 will es nicht mehr funktionieren.

Vielleicht kann jemand helfen.

Ich rufe eine Funktion aus der DLL auf, die mir den Text zurückgibt. In der Version 4 sehe ich den Text normal, aber in der Version 5 ist er HINTERGRUND.

Ich schreibe DLL in DELPHI (pchar Typ fname).

Im Code habe ich der Variablen string zugewiesen.

Bitte helfen Sie mir, was ich falsch mache.

Es muss etwas mit der Kodierung zu tun haben. Markierungen für offene Dateien prüfen.

open_flags

[in] комбинация флагов, определяющая режим работы с файлом. Флаги определены следующим образом: 
FILE_READ файл открывается для чтения 
FILE_WRITE файл открывается для записи 
FILE_BIN двоичный режим чтения-записи (без преобразования из строки и в строку) 
FILE_CSV файл типа csv (все записанные элементы преобразуются к строкам соответствующего типа, unicode или ansi, и разделяются разделителем) 
FILE_TXT простой текстовый файл (тот же csv, однако разделитель не принимается во внимание) 
FILE_ANSI строки типа ANSI (однобайтовые символы) 
FILE_UNICODE строки типа UNICODE (двухбайтовые символы) 
FILE_SHARE_READ совместный доступ по чтению со стороны нескольких программ 
FILE_SHARE_WRITE совместный доступ по записи со стороны нескольких программ 
FILE_COMMON расположение файла в общей папке всех клиентских терминалов

 
Versuchen Sie, PChar durch PWideChar (das sollte helfen) oder PAnsiChar (unwahrscheinlich) zu ersetzen. Möglicherweise müssen Sie auch den Code anpassen
 
notused:
Versuchen Sie, PChar durch PWideChar zu ersetzen (das sollte helfen)
Ich unterstütze meinen Vorredner voll und ganz
 
Academic:

Das Problem der Fehlersuche ist recht einfach zu lösen:

Ungefähr so:

Erstellen Sie ein Serverprogramm,

Für Delphi sieht das folgendermaßen aus:

Fügen Sie eine TcpServer-Komponente in das Formular ein.

Typ in den Einstellungen beim Öffnen (localHost, LocalPort und aktive Eigenschaft auf true gesetzt)

diese Komponente hat einen Handler, der reagiert, wenn Daten über einen Socket empfangen werden

In diesem Handler befindet sich der ClientSocket:

text_from_klient := ClientSocket.Receiveln

Sie haben den Text, debuggen Sie ihn, so viel Sie wollen

nun darüber, wie der Text übergeben werden kann (Sie können mehr tun als nur Text, aber Sie werden es finden, wenn Sie brauchen)

Sie rufen eine DLL in Ihrem EA auf, und diese DLL übergibt Parameter an einen bestimmten Socket,

Dazu können Sie die Komponente TcpClient in die DLL einfügen, sie konfigurieren (remoteHost, remotePort, und connect aufrufen)

Senden über SendLn-Funktion, Empfangen über Receiveln.

Sie müssen also den Server am Laufen halten, um ihn zu debuggen, aber das ist kein großes Problem.

Alles was Sie tun müssen, ist eine Dll zu schreiben, die die Informationen an einen Socket sendet und ein Serverprogramm zu schreiben,

Das Einzige, was Sie tun müssen, ist ein 30-zeiliges Serverprogramm zu schreiben, das Ihre bereits geschriebene (oder frisch geschriebene) DLL aufruft und die Indikatoren ein wenig verändert,

aber für Indikatoren können Sie eine entsprechende Vorlage erstellen,

P.S. Sie werden nicht in der Lage sein, die DLL zu debuggen, nichts hindert uns daran, Daten aus der nicht bootbaren DLL in eine separate

Programm, das Sie frei debuggen können :)

 

mql5:

Es ist nun unmöglich, bösartige EX5 auf Sprachebene zu erstellen.
Das ist eine sehr, sehr mutige Aussage. :) Ich frage mich... Was ist mit der Formulierung "bösartige EX5 erstellen" gemeint?
 
ir0407:
Das ist eine sehr, sehr gewagte Aussage. :)
Was ist so schädlich, dass es schon geschrieben wurde? ;)
 

In diesem Fall muss die Bösartigkeit aus einem anderen Blickwinkel betrachtet werden. Wenn es ein separates, zugelassenes Thema gibt, könnten wir darüber diskutieren

 
Interesting:

Das ist so, wenn Lamers den Schutz durchgeführt haben, aber in Wirklichkeit (mit einem kompetenten Ansatz für den Schutz) ist es 10 und 100 Mal teurer (in Bezug auf Zeit und Aufwand).

In ein paar Wochen, genau jetzt...

Im Internet gibt es bereits einen Haufen Artikel darüber, wie man das Zertifikat durch das Terminal ersetzt, wie das Netzwerkprotokoll organisiert ist und wie man Informationen mit dem Server (ohne Terminal) austauscht;

an jeder Ecke gibt es Informationen über die API (zumindest "nicht für den Handel", sondern für die Informationsanalyse); sicherlich weiß jeder, was in der System-Exe und -Dll gespeichert ist (und die Hauptsache ist, wie man mit all dem arbeitet).

Und schließlich handeln wir alle seit langem mit unseren eigenen Terminals, und die armen MQ und DC...

Bringen Sie mich nicht zum Lachen.

Es ist eine einfache Aufgabe - eine Liste von Nachrichten vom Server zu erhalten, der sie an das Terminal sendet. Ich weiß nicht, wie man es benutzt, ich werde versuchen, eine Lösung für MT4 zu finden (wenn Sie Erfahrung mit solchen Fällen haben, erstellen Sie einen "News-Client").

Die Entwickler haben direkt erklärt, dass und warum es kein Debugging der DLL geben wird. Zumindest ist es nicht logisch, sie aufzufordern, ihr Code-Verschlüsselungssystem absichtlich zu verschlechtern, denn das würde sofort zu Versuchen führen, einen Decompiler für ex5 zu erstellen (was genau das ist, was gesagt wurde).

Aber die Methode, ex4 zu hacken, wird hier nicht funktionieren, weil die Sprache völlig anders ist und ihre Objektausfüllung nicht so leicht an die Vorlagen angepasst werden kann, die ex4 "hacken".

PS

Sie haben Recht, es ist besser, über das Hacking-System mit den Profis zu sprechen. Allerdings befürchte ich, dass sie kaum mit uns darüber sprechen werden, weil (vielleicht irre ich mich) niemand von uns auf diesem Gebiet kompetent ist...
Ich frage mich, wo im Internet so viele Informationen darüber zu finden sind, wie man ein Zertifikat fälschen kann?