Metodi di protezione Mq4.. - pagina 4

 
Beh, hai bisogno di una soluzione professionale per proteggere il tuo codice mql. Non è un argomento facile. Tutta questa discussa roba dll è inutile per proteggere il vostro codice.
 

Avete mai considerato quanto segue:

Eseguite MetaTrader come fate di solito. Caricate i vostri dannati indicatori pesantemente protetti o qualsiasi altra cosa. Eseguite un tool di process dumping e scaricate l'intera memoria del processo terminal.exe in un file (... e forse altri intervalli di memoria che alloca) usate un hexeditor o un normale texteditor e cercate i frammenti dei vostri indicatori così perfettamente protetti.

Non ho provato questo, ma ho quasi 30 anni di conoscenza nella programmazione a basso livello (680x0 assembler, powerpc e così via).

Buona caccia.

:)

 

Ok, ero un po' di fretta quando ho risposto a questo thread e quindi vorrei estendere qualche riga. Qualcosa come una vera protezione del codice non esiste. Potreste essere in grado di criptare, spostare, ruotare, copiare il vostro codice ma alla fine è di nuovo nudo.

Per esempio: In passato ho scritto programmi e ho scaricato l'indirizzo iniziale e finale del codice in un file. Tutti i salti all'interno del codice erano impostati su un offset relativo e il codice (che in fondo è un dato normale) veniva ruotato di 1 bit. Il codice quindi non esiste più. Potete aggiungere una parte di loader al vostro codice e fargli fare una nuova rotazione e fargli riassegnare gli indirizzi delle etichette (di solito si trovano in hunks). Saltate all'ingresso e voilà eseguite di nuovo il programma.

Quindi la maggior parte della gente crederà che il vostro programma o indicatore sia ben protetto perché non si può leggere nessuna etichetta o altre cose dalla cripta (eseguibile). Alla fine è di nuovo visibile. Visibile una volta che lo eseguite e lo fate eseguire attraverso il vostro processo (o programma).

Potete storpiare, spostare il codice e o fare protezione quanto volete. Una volta che il programma viene eseguito, allora la maggior parte della protezione sparisce di nuovo (con alcune eccezioni come keyfile o numeri di serie ecc.)

Quindi presumo che sia lo stesso per gli indicatori. Vengono compilati sì. È un binario? Non lo so. È un bytecode? Non lo so nemmeno io. Ma sono abbastanza sicuro che una volta che lo esegui in terminal.exe e scarichi le aree di memoria che terminal.exe ha allocato per l'indicatore, potresti essere in grado di ottenere tracce del tuo codice (anche se sono stringhe di testo usato al suo interno o simili).

Forse potreste ottenere indietro una sorta di CODICE come nei vostri file *.mql4. Forse non lo farai. Forse otterrete del bytecode, forse no. Forse otterrete qualcosa. Forse terminal.exe ha il proprio interprete di codice all'interno che interpreta il codice generato dal metaeditor.exe in modo che terminal.exe capisca. Come ho già detto, non ho provato.

Quello che mi piace spiegare è che se vuoi criptare o proteggere il tuo codice allora non sempre lo vedi da un lato (ad esempio i file ex4 che il metaeditor ha compilato e coperto con del codice sconosciuto. Vedetelo anche dall'altro lato. Una volta che lo eseguite, il vostro codice protetto è di nuovo nudo. E questa è una parte per metterci le dita sopra. Può funzionare. Non deve.

Un effetto negativo del dumping dell'indirizzo iniziale e finale di un codice in esecuzione è questo. Tutto viene inizializzato. Gli array sono riempiti di valori, i segnaposto potrebbero avere valori ecc.

 

Buoni punti Ali. Grazie.

Il mining nel dump della memoria sembra essere una soluzione costosa. Finora l'unica soluzione economica è venuta dalla fuga di conoscenza da Metaquotes. Mi aspetto che qualcuno - che è in grado di estrarre il codice della memoria - possa codificare lui stesso il MQL4 da zero per uno sforzo minore. Questo mi fa sentire attualmente al sicuro fino a quando non appare la nuova fuga di conoscenza per abilitare decodificatori economici. Poi arriva il piano B - codificarlo nel modo che rende la manomissione del codice disassemblato degna di un costo elevato.

Motivazione: