Debug della DLL? In MT4 e MT5 - pagina 16

 

Ragazzi, forse non è la domanda giusta da fare, ma anche io ho un problema con la libreria nella versione 5.

Nella versione 4 tutto funzionava e funziona, ma nella versione 5 non vuole.

Forse qualcuno può aiutare.

Sto chiamando la funzione da una DLL, che mi restituisce il testo, nella versione 4, vedo il testo normalmente, mentre nella versione 5 - CRAZYBLES.

Scrivo la DLL in DELPHI (pchar tipo fname).

Nel codice assegno una stringa variabile.

Per favore, consigliatemi cosa faccio di sbagliato.

 
stongbar:

Ragazzi, forse non è la domanda giusta da fare, ma anche io ho un problema con la libreria nella versione 5.

Nella versione 4 tutto funzionava e funziona, ma nella versione 5 non vuole.

Forse qualcuno può aiutare.

Sto facendo una chiamata alla funzione dalla DLL, mi restituisce il testo, nella versione 4 vedo il testo normalmente, ma nella versione 5 è BACKGROUND.

Scrivo la DLL in DELPHI (pchar tipo fname).

Nel codice ho assegnato una stringa alla variabile.

Per favore aiutatemi a capire cosa sto facendo di sbagliato.

Deve essere qualcosa con la codifica. Controlla i flag dei file aperti.

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

 
Prova a sostituire PChar con PWideChar (questo dovrebbe aiutare) o PAnsiChar (improbabile). Potrebbe anche essere necessario modificare il codice
 
notused:
Prova a sostituire PChar con PWideChar (questo dovrebbe aiutare)
Appoggio pienamente il precedente oratore
 
Academic:

Il problema del debug è risolto abbastanza facilmente:

Approssimativamente questo:

Creare un programma server,

Per Delphi, va così:

Mettete un componente TcpServer nel modulo.

prescrivere le sue impostazioni all'apertura (localHost, LocalPort e proprietà attiva impostata su true)

questo componente ha un gestore che risponde per ricevere dati tramite socket

In questo gestore, c'è il ClientSocket:

text_from_klient := ClientSocket.Receiveln

hai il testo, fai il debug quanto vuoi

ora su come passare il testo (si può fare di più del solo testo, ma lo troverete se avete bisogno)

Tu chiami una DLL nel tuo EA, e questa DLL passa dei parametri a un socket specifico,

per questo, potete mettere il componente TcpClient nella dll, configurarlo (remoteHost, remotePort, e chiamate connect)

Trasmettere tramite la funzione SendLn, ricevere tramite Receiveln.

Quindi devi tenere il server attivo e funzionante per fare il debug, ma questo non è un grosso problema.

Tutto quello che devi fare è scrivere una DLL per inviare le informazioni a un socket e scrivere un programma server,

L'unica cosa che dovrete fare è scrivere un programma server di 30 righe che chiamerà la vostra dll già scritta (o appena scritta) e modificare un po' gli indicatori,

ma per gli indicatori si può creare un modello per questo,

P.S. non sarete in grado di eseguire il debug della DLL, nulla ci impedisce di passare i dati dalla DLL non avviabile in una

programma, che si può debuggare liberamente :)

 

mql5:

Ora è impossibile creare EX5 maligni a livello di lingua.
È un'affermazione molto, molto audace. :) Mi chiedo... Cosa si intende con la frase "creare EX5 maligno"?
 
ir0407:
È un'affermazione molto, molto audace. :)
Cosa c'è di così dannoso già scritto? ;)
 

In questo caso, il dolo deve essere considerato da un'altra angolazione. Se c'è un argomento separato e autorizzato, potremmo discutere

 
Interesting:

Questo se i lamer hanno fatto la protezione, ma in realtà (con un approccio competente alla protezione) è 10 e 100 volte più costoso (in termini di tempo e sforzo).

Tra un paio di settimane, proprio ora...

Sul web, ci sono già un mucchio di articoli su come sostituire il certificato al terminale; su come è organizzato il protocollo di rete e su come scambiare informazioni con il server (senza il terminale);

in ogni angolo ci sono informazioni sulle API (almeno "non per il trading", ma per l'analisi delle informazioni); sicuramente tutti sanno cosa è memorizzato nel sistema exe e dll (e la cosa principale è come lavorare con tutto questo).

E in conclusione tutti noi abbiamo fatto a lungo trading sui nostri terminali, e i poveri MQ e DC...

Non fatemi ridere.

È un compito semplice: ricevere una lista di notizie dal server che le invia al terminale. Non so come usarlo, cercherò di trovare una soluzione per MT4 (se hai esperienza di questi casi, crea un "news client").

Gli sviluppatori hanno dichiarato direttamente che non ci sarà il debug della DLL e perché. Almeno non è logico chiedere loro di peggiorare deliberatamente il loro sistema di cifratura del codice, porterebbe immediatamente a tentativi di creare un decompilatore per ex5 (che è ESATTAMENTE quello che è stato dichiarato).

Ma il metodo di hacking di ex4 non funzionerà qui, perché il linguaggio è totalmente diverso e il suo object stuffing non sarà così facile da piegare ai template "hacking" di ex4.

PS

Hai ragione, è meglio parlare del sistema di hacking con i professionisti che lo fanno. Vero, temo che difficilmente ne parleranno con noi, perché (forse mi sbaglio) nessuno di noi è competente in questo campo...
Mi chiedo dove siano tutte queste informazioni su internet su come manomettere un certificato?
Motivazione: