¿Depuración de la DLL? En MT4 y MT5 - página 16

 

Chicos, tal vez esta no sea la pregunta correcta, pero yo también tengo un problema con la biblioteca en la versión 5.

En la versión 4 todo funcionaba y funciona, pero en la versión 5 no quiere.

Tal vez alguien pueda ayudar.

Estoy llamando a la función desde una DLL, que me devuelve el texto, en la versión 4, veo el texto normalmente, mientras que en la versión 5 - CRAZYBLES.

Escribo la DLL en DELPHI (pchar tipo fname).

En el código asigno una cadena variable.

Por favor, aconséjeme qué es lo que hago mal.

 
stongbar:

Chicos, tal vez esta no sea la pregunta correcta, pero yo también tengo un problema con la biblioteca en la versión 5.

En la versión 4 todo funcionaba y funciona, pero en la versión 5 no quiere.

Tal vez alguien pueda ayudar.

Estoy haciendo la llamada a la función desde la DLL, me devuelve el texto, en la versión 4 veo el texto normalmente, pero en la versión 5 es BACKGROUND.

Escribo la DLL en DELPHI (pchar tipo fname).

En el código he asignado una cadena a la variable.

Por favor, ayúdenme a saber qué estoy haciendo mal.

Debe ser algo con la codificación. Comprobar las banderas de los archivos abiertos.

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

 
Pruebe a sustituir PChar por PWideChar (esto debería ayudar) o PAnsiChar (poco probable). También es posible que tenga que modificar el código
 
notused:
Pruebe a sustituir PChar por PWideChar (esto debería ayudar)
Apoyo plenamente al anterior orador
 
Academic:

El tema de la depuración se resuelve con bastante facilidad:

Aproximadamente esto:

Crear un programa servidor,

En el caso de Delphi, es así:

Poner un componente TcpServer en el formulario.

en su configuración al abrirse (localHost, LocalPort y la propiedad active puesta a true)

este componente tiene un manejador que responde cuando se reciben datos vía socket

En este manejador, está el ClientSocket:

text_from_klient := ClientSocket.Receiveln

tienes el texto, depúralo todo lo que quieras

ahora sobre cómo pasar el texto (puede hacer más que el texto, pero lo encontrará si lo necesita)

Usted llama a una DLL en su EA, y esta DLL pasa parámetros a un socket específico,

para esto, puedes poner el componente TcpClient en la dll, configurarlo (remoteHost, remotePort, y llamas a connect )

Transmitir mediante la función SendLn, recibir mediante Receiveln.

Así que tienes que mantener el servidor en funcionamiento para depurarlo, pero eso no es un gran problema.

Todo lo que tienes que hacer es escribir una dll para enviar la información a un socket y escribir un programa servidor,

Lo único que tendrás que hacer es escribir un programa de servidor de 30 líneas que llame a tu dll ya escrito (o recién escrito) y ajustar un poco los indicadores,

pero para los indicadores se puede crear una plantilla para esto,

P.D. no podrás depurar la DLL, nada nos impide pasar los datos de la DLL no arrancable a una

programa, que puedes depurar libremente :)

 

mql5:

Ahora es imposible crear EX5 maliciosos a nivel de lenguaje.
Esa es una declaración muy, muy audaz. :) Me pregunto... ¿Qué significa la frase "crear un EX5 malicioso"?
 
ir0407:
Esa es una declaración muy, muy audaz. :)
¿Qué es lo que ya está escrito tan perjudicial? ;)
 

En este caso, la malicia debe ser considerada desde un ángulo diferente. Si hay un tema separado y autorizado, podríamos discutir

 
Interesting:

Eso es si los lamers hicieran la protección, pero en realidad (con un enfoque competente de la protección) es 10 y 100 veces más caro (en términos de tiempo y esfuerzo).

En un par de semanas, ahora mismo...

En la web ya hay un montón de artículos sobre cómo sustituir el certificado por el terminal; sobre cómo se organiza el protocolo de red y cómo intercambiar información con el servidor (sin el terminal);

en cada esquina hay información sobre la API (al menos "no para el comercio", sino para el análisis de la información); seguramente todo el mundo sabe lo que se almacena en los exe y dll del sistema (y lo principal es cómo trabajar con todo ello).

Y en conclusión todos llevamos mucho tiempo operando en nuestros propios terminales, y pobres MQ y DC...

No me hagas reír.

Es una tarea sencilla: recibir una lista de noticias del servidor que las envía al terminal. No sé cómo usarlo, intentaré encontrar una solución para MT4 (si tienes experiencia en estos casos, crea un "cliente de noticias").

Los desarrolladores han declarado directamente, que no habrá depuración de DLL y por qué. Al menos no es lógico pedirles que empeoren deliberadamente su sistema de encriptación de código, eso llevaría inmediatamente a intentar crear un descompilador para ex5 (que es EXACTAMENTE lo que se dijo).

Pero el método de hackear ex4 no funcionará aquí, porque el lenguaje es totalmente diferente y su relleno de objetos no será tan fácil de doblar a las plantillas "hackeando" ex4.

PS

Tienes razón, es mejor hablar del sistema de hacking con los profesionales que lo hacen. Es cierto, me temo que es poco probable que nos hablen de ello, porque (quizá me equivoque) ninguno de nosotros es competente en este campo...
Me pregunto dónde hay tanta información en Internet sobre cómo manipular un certificado.