Protezione Expert Advisor

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
xr2009
Messaggi: 43
Iscritto il: 10/08/2015, 19:57

Protezione Expert Advisor

Messaggio da xr2009 »

Ciao,
qualcuno mi potrebbe spiegare come proteggere un Expert Advisor in modo che non si possa usare in conti reali o con un attivazione o licenza?
Grazie
stealthForex

Re: Protezione Expert Advisor

Messaggio da stealthForex »

xr2009 ha scritto:Ciao,
qualcuno mi potrebbe spiegare come proteggere un Expert Advisor in modo che non si possa usare in conti reali o con un attivazione o licenza?
Grazie
Ciao Roberto, al topic viewtopic.php?t=2190 sulle DLL stai già partecipando, perciò sarà questo lo strumento da usare

Agli "albori" più di 20 anni fa, la Microsoft distribuiva i programmi a pagamento con delle DLL criptate e dovevi inserire la chiave della licenza che ti davano

Ovviamente è impossibile prevedere e memorizzare già dentro alla DLL milioni di chiavi diverse (nel loro caso... beati loro :sick:)

Poi il sistema è stato "craccato" e si è scoperto che in realtà potevi mettere dentro qualunque chiave inventata, bastava che la somma degli ultimi 5 numeri fosse 21

Devi solo fare la stessa cosa, ma in maniera più complessa
  1. Sviluppi e metti una parte dell'EA dentro una DLL poi la cripti, come visto nell'altro topic
  2. Stabilisci tu le regole, ad esempio la chiave deve essere lunga 14 caratteri, numeri, lettere, ! @ # e tutto qullo che vuoi
  3. Poi metti il controllo nella DLL, ad esempio il secondo carattere deve sempre essere una lettera maiuscola, la somma del terzo e quinto numero deve essere 9 e così via a fantasia
  4. A questo punto dai ai tuoi Clienti EA + DLL e una chiave create secondo le tue regole, così ne puoi fare infinite e non hai bisogno di memorizzarle o registrarle
  5. Se un Cliente la perde, tu puoi dargliene una nuova che rispetta le stesse regole
  6. Puoi anche inserire facilmente un controllo che misura da quanto tempo è stata inserita la chiave e dopo 1 mese, per esempio, scade e la DLL non va più, così il Cliente deve rinnovare l'abbonamento chiedendoti una nuova chiave valida
Perciò al lavoro che il primo passo è imparare a sviluppare le tue DLL come spiegato nell'altro topic !!!
xr2009
Messaggi: 43
Iscritto il: 10/08/2015, 19:57

Re: Protezione Expert Advisor

Messaggio da xr2009 »

Grazie della risposta.
Una curiosita'.....i file .ex4 son facili da decompilare?
Non che voglia decompilare...e perche' si potrebbe creare una password in base al numero di account in uso...ma se il file .ex4 si puo decompilare facilmente non serve a niente!
stealthForex

Re: Protezione Expert Advisor

Messaggio da stealthForex »

xr2009 ha scritto:Grazie della risposta.
Una curiosita'.....i file .ex4 son facili da decompilare?
Non che voglia decompilare...e perche' si potrebbe creare una password in base al numero di account in uso...ma se il file .ex4 si puo decompilare facilmente non serve a niente!
Si, gli ex4 sono facilissimi da decompilare, anche se protetti con la maggior parte degli appositi programmi commerciali

Ma basta che il tuo EA passi il numero del conto in uso alla DLL, e questa è praticamente IMPOSSIBILE da decriptare se la complili con l'apposita opzione, e se anche ci riesci, te la ritrovi in linguaggio macchina... e lì ti voglio vedere a capirci qualcosa!

A questo punto la DLL crea e scrive una variabile nei registri di sistema (cosa semplicissima da fare in C#) e ci mette NON IL NUMERO DI CONTO, MA L'HASH e visto che così è in mezzo ad altre centinaia di migliaia, è praticamente impossibile che qualcuno riesca a trovarla e ASSOLUTAMENTE IMPOSSIBILE che riesca a cambiare l'hash e crearne uno per il suo o un altro conto

Quando l'EA riparte, la DLL sa qual'è la variabile e controlla se l'HASH del numero di conto corrisponde, se no si ferma

Poi nella DLL ci metti anche un "pezzo" dell'EA, tipo ad ogni tick l'EA passa alla DLL ask e bid assieme ai valori degli indicatori che usi, ed è la DLL che calcola se aprire o meno l'ordine, poi restituisce -1 se è un sell, +1 se un buy, 0 se non deve aprire, oppure il prezzo a cui piazzare un pendente, così il Cliente non può farne a meno, mentre tutta la gestione dell'ordine aperto può rimanere nell'EA in mql4 come fai sempre, ad esempio con il calcolo del lotto, il trailing o altro

In pratica tutto il gioco sta nello spostare la protezione dentro la DLL anziché nell'EA, che così puoi distribuire anche in mq4 e senza altre protezioni
stealthForex

Re: Protezione Expert Advisor

Messaggio da stealthForex »

stealthForex ha scritto:
xr2009 ha scritto:Grazie della risposta.
Una curiosita'.....i file .ex4 son facili da decompilare?
Non che voglia decompilare...e perche' si potrebbe creare una password in base al numero di account in uso...ma se il file .ex4 si puo decompilare facilmente non serve a niente!
Si, gli ex4 sono facilissimi da decompilare, anche se protetti con la maggior parte degli appositi programmi commerciali

Ma basta che il tuo EA passi il numero del conto in uso alla DLL, e questa è praticamente IMPOSSIBILE da decriptare se la complili con l'apposita opzione

A questo punto la DLL crea e scrive una variabile nei registri di sistema (cosa semplicissima da fare in C#) e ci mette NON IL NUMERO DI CONTO, MA L'HASH e visto che così è in mezzo ad altre centinaia di migliaia, è praticamente impossibile che qualcuno riesca a trovarla e ASSOLUTAMENTE IMPOSSIBILE che riesca a cambiare l'hash e crearne uno per il suo o un altro conto

Quando l'EA riparte, la DLL sa qual'è la variabile e controlla se l'HASH del numero di conto corrisponde, se no si ferma

Poi nella DLL ci metti anche un "pezzo" dell'EA, tipo ad ogni tick l'EA passa alla DLL ask e bid assieme ai valori degli indicatori che usi, ed è la DLL che calcola se aprire o meno l'ordine, poi restituisce -1 se è un sell, +1 se un buy, 0 se non deve aprire, così il Cliente non può farne a meno

In pratica tutto il gioco sta nello spostare la protezione dentro la DLL anziché nell'EA, che così puoi distribuire anche in mq4 e senza altre protezioni
Sono anni che non programmo più a pagamento, ormai riesco a mantenermi solo col trading, ma ti spiego il sistema che utilizzavamo noi ultimamente per proteggere gli EA


1. Contavamo sull'egoismo umano

Se mi REGALANO qualcosa, io te la copio o te la passo volentieri, ma se io la PAGO, perché devo regalarla a te? Se vuoi te la compri!

Basta che pensi ... ai libri, che fatica che fa un amico o un conoscente a prestarti un libro, e poi ci sono sempre storie "... e l'ultimo non me l'hai restituito ... e te lo sei tenuto troppo ... non posso prestartelo perché voglio tenerlo e rileggerlo ... io non presto mai i miei libri ... e me lo hai rovinato, adesso è tutto spiegazzato ..."

E questo se è un amico o un parente, se è solo un conoscente cosa ti dice? "Guarda che è un bel libro... ti CONSIGLIO di COMPRARTELO"


2. Anziché legare l'EA al conto, lo legavamo al PC

Il TIMESTAMP sono il numero di secondi che sono passati dalla mezzanotte del 01/01/1970 e continua sempre a crescere

La base è sempre mettere "un pezzo" dell'EA dentro alla DLL in modo che il Cliente non possa farne a meno

Noi facevamo come spiegato, ad ogni tick l'EA passava alla DLL ask, bid e valori degli indicatori, ma era la DLL a fare il calcolo se aprire o meno, e restituiva appunto +1 per il buy, -1 per il sell e 0 se non doveva aprire nulla, oppure un prezzo che automaticamente se superiore all'ask era un buystop se inferiore al bid era un sellstop, poi l'EA gestiva normalmente l'ordine aperto o fissato

Quando consegnavamo l'EA al Cliente la compilavamo sul momento e la DLL memorizzava il TIMESTAMP = l'istante in cui "è nata"

Poi quando l'EA parte per la prima volta, la DLL controlla nei registri di sistema se esiste la variabile con il suo TIMESTAMP, se no la crea, ma non devono essere passati più di 5 giorni dalla compilazione

Questo vuol dire che il Cliente aveva 5 giorni per installare il programma (o se vuoi anche meno), poi la DLL si "legava" a quel PC e non potevi più spostarla


Fammi pure sapere se servono chiarimenti... ma la nostra "impostazione" è stata sempre legare l'EA a DLL esterne sviluppate prima in C++ e poi in C#/.NET come spiegato nell'altro topic che stai già seguendo
riccardo751
Messaggi: 2
Iscritto il: 30/08/2016, 8:02

Re: Protezione Expert Advisor

Messaggio da riccardo751 »

xr2009 ha scritto:Grazie della risposta.
Una curiosita'.....i file .ex4 son facili da decompilare?
Non che voglia decompilare...e perche' si potrebbe creare una password in base al numero di account in uso...ma se il file .ex4 si puo decompilare facilmente non serve a niente!

Ciao, mi potresti dire come creare una password in base al numero di account in uso?

Grazie mille!
xr2009
Messaggi: 43
Iscritto il: 10/08/2015, 19:57

Re: Protezione Expert Advisor

Messaggio da xr2009 »

riccardo751 ha scritto:
xr2009 ha scritto:Grazie della risposta.
Una curiosita'.....i file .ex4 son facili da decompilare?
Non che voglia decompilare...e perche' si potrebbe creare una password in base al numero di account in uso...ma se il file .ex4 si puo decompilare facilmente non serve a niente!

Ciao, mi potresti dire come creare una password in base al numero di account in uso?

Grazie mille!

Guarda qui:
https://www.mql5.com/en/code/15534
riccardo751
Messaggi: 2
Iscritto il: 30/08/2016, 8:02

Re: Protezione Expert Advisor

Messaggio da riccardo751 »

xr2009 ha scritto:
riccardo751 ha scritto:
xr2009 ha scritto:Grazie della risposta.
Una curiosita'.....i file .ex4 son facili da decompilare?
Non che voglia decompilare...e perche' si potrebbe creare una password in base al numero di account in uso...ma se il file .ex4 si puo decompilare facilmente non serve a niente!

Ciao, mi potresti dire come creare una password in base al numero di account in uso?

Grazie mille!

Guarda qui:
https://www.mql5.com/en/code/15534
Grazie tante!
Joseff
Messaggi: 1
Iscritto il: 19/09/2016, 7:23

Re: Protezione Expert Advisor

Messaggio da Joseff »

stealthForex ha scritto:
xr2009 ha scritto:Ciao,
qualcuno mi potrebbe spiegare come proteggere un Expert Advisor in modo che non si possa usare in conti reali o con un attivazione o licenza?
Grazie
Ciao Roberto, al topic viewtopic.php?t=2190 sulle DLL stai già partecipando, perciò sarà questo lo strumento da usare

Agli "albori" più di 20 anni fa, la Microsoft distribuiva i programmi a pagamento con delle DLL criptate e dovevi inserire la chiave della licenza che ti davano

Ovviamente è impossibile prevedere e memorizzare già dentro alla DLL milioni di chiavi diverse (nel loro caso... beati loro :sick:)

Poi il sistema è stato "craccato" e si è scoperto che in realtà potevi mettere dentro qualunque chiave inventata, bastava che la somma degli ultimi 5 numeri fosse 21

Devi solo fare la stessa cosa, ma in maniera più complessa
  1. Sviluppi e metti una parte dell'EA dentro una DLL poi la cripti, come visto nell'altro topic
  2. Stabilisci tu le regole, ad esempio la chiave deve essere lunga 14 caratteri, numeri, lettere, ! @ # e tutto qullo che vuoi
  3. Poi metti il controllo nella DLL, ad esempio il secondo carattere deve sempre essere una lettera maiuscola, la somma del terzo e quinto numero deve essere 9 e così via a fantasia
  4. A questo punto dai ai tuoi Clienti EA + DLL e una chiave create secondo le tue regole, così ne puoi fare infinite e non hai bisogno di memorizzarle o registrarle
  5. Se un Cliente la perde, tu puoi dargliene una nuova che rispetta le stesse regole
  6. Puoi anche inserire facilmente un controllo che misura da quanto tempo è stata inserita la chiave e dopo 1 mese, per esempio, scade e la DLL non va più, così il Cliente deve rinnovare l'abbonamento chiedendoti una nuova chiave valida
Perciò al lavoro che il primo passo è imparare a sviluppare le tue DLL come spiegato nell'altro topic !!!
ciao io ho un Expert Advisor di cui costruisco set file e li vendo, vorrei un consiglio, non essendo un esperto di codifica avanzata, cioè se uno si compra 1 set file lo possono usare 100 o 1000 persone, come potrei fare per farlo usare solo chi li compra? poi mi e venuta una idea, io potrei fare in modo che per ogni coppia salvo le impostazioni e nascondo i settaggi importanti e creare una EA per ogni coppia e poi poterli dare in abbonamento mensile con un piccolo importo, cioe esempio:- (EA EURUSD H1)(EA GBPUSD M15) (EA XAGUSD M30) ma non saprei come fare ho scaricato visual studio che hai postato ma mi sono fermato a meta se per favore mi potresti dire come creare le DLL e inserirlo nelle mia EA in modo che posso darlo in abbonamento mensile di cui chi ne fa uso sarò io ha fare l'attivazione. se non chiedo troppo il mio contatto Skype e Joseff Moscato magari potrebbe spiegarmi meglio il funzionamento o il significato anche perché con l'inglese sono negato e la maggior parte di queste guide sono in inglese. la ringrazio tantissimo se mi potrebbe dare questo aiutino.
luchinos
Messaggi: 1
Iscritto il: 04/02/2022, 18:11

Re: Protezione Expert Advisor

Messaggio da luchinos »

Buongiorno a tutti ragazzi, avrei bisogno di una info. Ho un ea che per poter funzionare richiede l'inserimento di una password nei valori di input dell'ea? Nelle impostazioni bisogna anche attivare la Ldl ecc... C'è modo di bypassare queste verifiche e farlo funzionare regolarmente? Grazie
Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti