A depuração da DLL? Em MT4 e MT5 - página 16

 

Rapazes, talvez esta não seja a pergunta certa a fazer, mas também eu tenho um problema com a biblioteca na versão 5.

Na versão 4 tudo funcionou e funciona, mas na versão 5 não quer funcionar.

Talvez alguém possa ajudar.

Estou a chamar a função a partir de uma DLL, que me devolve o texto, na versão 4, vejo o texto normalmente, enquanto na versão 5 - CRAZYBLES.

Escrevo a DLL em DELPHI (fnome tipo pchar).

No código atribuo uma cadeia variável.

Por favor, aconselhem-me o que faço de errado.

 
stongbar:

Rapazes, talvez esta não seja a pergunta certa a fazer, mas também eu tenho um problema com a biblioteca na versão 5.

Na versão 4 tudo funcionou e funciona, mas na versão 5 não quer funcionar.

Talvez alguém possa ajudar.

Estou a fazer uma chamada para funcionar a partir de DLL, devolve-me o texto, na versão 4 vejo o texto normalmente, mas na versão 5 é ANTECEDENTES.

Eu escrevo DLL em DELPHI (fnome tipo pchar).

No código I atribuí cadeia de caracteres à variável.

Por favor, ajudem-me no que estou a fazer mal.

Deve ser algo com codificação. Verificar bandeiras de ficheiro abertas.

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

 
Tente substituir PChar por PWideChar (isto deve ajudar) ou PAnsiChar (improvável). Pode também precisar de afinar o código
 
notused:
Tente substituir a PChar por PWideChar (isto deve ajudar)
Apoio plenamente o orador anterior
 
Academic:

A questão da depuração é resolvida com bastante facilidade:

Aproximadamente isto:

Criar um programa servidor,

Para a Delphi, é assim:

Colocar um componente TcpServer no formulário.

digitar nas suas definições ao abrir (localHost, LocalPort e propriedade activa configurada para true)

este componente tem um manipulador que responde quando os dados são recebidos através de uma tomada

Neste manipulador, existe o ClientSocket:

text_from_klient := ClientSocket.Receiveln

tem o texto, depura-o o quanto quiser

agora sobre como passar o texto (pode fazer mais do que apenas texto, mas irá encontrá-lo se precisar)

Chama uma DLL na sua EA, e esta DLL passa os parâmetros para uma tomada específica,

para isso, pode colocar o componente TcpClient na dll, configurá-lo (remoteHost, remotePort, e ligar para connect )

Transmitir via função SendLn, receber via Receiveln.

Portanto, é necessário manter o servidor a funcionar para o depurar, mas isso não é um grande problema.

Tudo o que precisa de fazer é escrever uma dll para enviar a informação para uma tomada e escrever um programa servidor,

A única coisa que terá de fazer é escrever um programa de servidor de 30 linhas que chamará a sua dll já escrita (ou acabada de escrever) e afinar um pouco os indicadores,

mas para os indicadores pode criar um modelo para isso,

P.S. não será capaz de depurar a DLL, nada nos impede de passar os dados da DLL não inicializável para uma DLL separada

programa, que pode depurar livremente :)

 

mql5:

É agora impossível criar o EX5 malicioso a nível linguístico.
Esta é uma afirmação muito, muito ousada. :) Pergunto-me... O que significa a frase "criar EX5 malicioso"?
 
ir0407:
Esta é uma afirmação muito, muito ousada. :)
O que é tão prejudicial já escrito? ;)
 

Neste caso, a malícia tem de ser considerada de um ângulo diferente. Se houver um tema separado e autorizado, podemos discutir

 
Interesting:

Isto se os lamers fizeram a protecção, mas na realidade (com uma abordagem competente da protecção) é 10 e 100 vezes mais caro (em termos de tempo e esforço).

Dentro de algumas semanas, agora mesmo...

Na web, já existe uma pilha de artigos sobre como substituir o certificado do terminal; sobre como o protocolo de rede é organizado e como trocar informações com o servidor (sem o terminal);

em cada canto está informação sobre API (pelo menos "não para negociação", mas para análise de informação); certamente todos sabem o que está armazenado no sistema exe e dll (e o principal é como trabalhar com tudo isto).

E, em conclusão, todos nós há muito que comercializamos nos nossos próprios terminais, e a má MQ e DC...

Não me faça rir.

É uma tarefa simples - receber uma lista de notícias do servidor que as envia para o terminal. Não sei como utilizá-lo, vou tentar encontrar uma solução para o MT4 (se tiver experiência em tais casos, crie um "cliente de notícias").

Os criadores declararam directamente que não haverá depuração de DLL e porquê. Pelo menos não é lógico pedir-lhes que piorem deliberadamente o seu sistema de encriptação de código, isso levaria imediatamente a tentativas de criar um descompilador para o ex5 (que é EXATAMENTE o que foi dito).

Mas o método de hacking ex4 não funcionará aqui, porque a linguagem é totalmente diferente e o seu recheio de objectos não será tão fácil de se dobrar aos modelos de "hacking" ex4.

PS

Tem razão, é melhor falar sobre o sistema de hacking com os profissionais a fazê-lo. É verdade, receio que seja pouco provável que nos falem sobre isso, porque (talvez eu esteja errado) nenhum de nós é competente neste campo...
Onde estará tanta informação na Internet sobre como manipular um certificado?
Razão: