Déboguer la DLL ? Dans MT4 et MT5 - page 16

 

Les gars, ce n'est peut-être pas la bonne question à poser, mais moi aussi j'ai un problème avec la bibliothèque dans la version 5.

Dans la version 4, tout fonctionnait et fonctionne, mais dans la version 5, il ne veut pas.

Peut-être que quelqu'un peut aider.

J'appelle la fonction depuis une DLL, qui me renvoie le texte, dans la version 4, je vois le texte normalement, alors que dans la version 5 - CRAZYBLES.

J'écris la DLL en DELPHI (pchar type fname).

Dans le code, j'assigne une variable string.

Veuillez me conseiller sur ce que je fais de mal.

 
stongbar:

Les gars, ce n'est peut-être pas la bonne question à poser, mais moi aussi j'ai un problème avec la bibliothèque dans la version 5.

Dans la version 4, tout fonctionnait et fonctionne, mais dans la version 5, il ne veut pas.

Peut-être que quelqu'un peut aider.

Je fais un appel à une fonction de la DLL, elle me renvoie le texte, dans la version 4 je vois le texte normalement, mais dans la version 5 il est en arrière plan.

J'écris la DLL en DELPHI (pchar type fname).

Dans le code, j'ai assigné une chaîne à la variable.

Aidez-moi à comprendre ce que je fais mal.

Ça doit être quelque chose avec l'encodage. Vérifier les drapeaux de fichiers ouverts.

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 расположение файла в общей папке всех клиентских терминалов

 
Essayez de remplacer PChar par PWideChar (cela devrait aider) ou PAnsiChar (peu probable). Il se peut que vous deviez également modifier le code
 
notused:
Essayez de remplacer PChar par PWideChar (cela devrait vous aider).
Je soutiens pleinement l'orateur précédent
 
Academic:

Le problème du débogage est résolu assez facilement :

A peu près ça :

Créez un programme serveur,

Pour Delphi, cela se passe comme suit :

Mettez un composant TcpServer sur le formulaire.

dans ses paramètres à l'ouverture (localHost, LocalPort et propriété active définie sur true)

ce composant a un gestionnaire qui répond lorsque des données sont reçues via le socket

Dans ce gestionnaire, il y a le ClientSocket :

text_from_klient := ClientSocket.Receiveln

vous avez le texte, déboguez-le autant que vous voulez

maintenant sur la façon de passer le texte (vous pouvez faire plus que du texte, mais vous le trouverez si vous en avez besoin)

Vous appelez une DLL dans votre EA, et cette DLL transmet des paramètres à un socket spécifique,

Pour cela, vous pouvez placer le composant TcpClient dans la dll, le configurer (remoteHost, remotePort, et vous appelez connect ).

Transmettre via la fonction SendLn, recevoir via Receiveln.

Il faut donc maintenir le serveur en fonctionnement pour le déboguer, mais ce n'est pas un gros problème.

Tout ce que vous avez à faire est d'écrire une dll pour envoyer l'information à un socket et d'écrire un programme serveur,

La seule chose que vous aurez à faire est d'écrire un programme serveur de 30 lignes qui appellera votre dll déjà écrite (ou fraîchement écrite) et modifiera un peu les indicateurs,

mais pour les indicateurs, vous pouvez créer un modèle pour cela,

P.S. vous ne serez pas en mesure de déboguer la DLL, rien ne nous empêche de passer les données de la DLL non amorçable dans un fichier séparé

que vous pouvez déboguer librement :)

 

mql5:

Il est désormais impossible de créer des EX5 malveillants au niveau du langage.
C'est une déclaration très, très audacieuse. :) Je me demande... Que signifie l'expression "créer un EX5 malveillant" ?
 
ir0407:
C'est une déclaration très, très audacieuse. :)
Qu'est-ce qui est si dommageable déjà écrit ? ;)
 

Dans ce cas, la malveillance doit être considérée sous un angle différent. S'il y a un sujet séparé et autorisé, nous pourrions discuter de

 
Interesting:

C'est ce qui se passerait si les lamers se chargeaient de la protection, mais en fait (avec une approche compétente de la protection), c'est 10 à 100 fois plus cher (en termes de temps et d'efforts).

Dans quelques semaines, maintenant...

Sur le web, on trouve déjà une foule d'articles sur la façon de substituer le certificat au terminal, sur l'organisation du protocole réseau et sur la façon d'échanger des informations avec le serveur (sans le terminal) ;

à chaque coin de rue, on trouve des informations sur les API (au moins "pas pour le commerce", mais pour l'analyse des informations) ; tout le monde sait sûrement ce qui est stocké dans les exe et dll du système (et l'essentiel est de savoir comment travailler avec tout cela).

Et en conclusion, nous avons tous depuis longtemps négocié sur nos propres terminaux, et les pauvres MQ et DC...

Ne me fais pas rire.

Il s'agit d'une tâche simple : recevoir une liste de nouvelles du serveur qui les envoie au terminal. Je ne sais pas comment l'utiliser, je vais essayer de trouver une solution pour MT4 (si vous avez l'expérience de tels cas, créez un "news client").

Les développeurs ont directement déclaré qu'il n'y aura pas de débogage des DLL et pourquoi. Au moins, il n'est pas logique de leur demander d'aggraver délibérément leur système de cryptage du code, cela conduirait immédiatement à des tentatives de création d'un décompilateur pour ex5 (ce qui est EXACTEMENT ce qui a été dit).

Mais la méthode de piratage d'ex4 ne fonctionnera pas ici, parce que le langage est totalement différent et que le remplissage des objets ne sera pas si facile à plier aux modèles de "piratage" d'ex4.

PS

Vous avez raison, c'est mieux de parler du système de piratage avec les pros qui le font. C'est vrai, j'ai bien peur qu'il soit peu probable qu'ils nous en parlent, car (je me trompe peut-être) aucun de nous n'est compétent dans ce domaine...
Je me demande où se trouvent autant d'informations sur Internet sur la façon de falsifier un certificat ?