Proteggere il codice sorgente prima della compilazione

 

Qualsiasi sviluppatore sa molto bene quanto sforzo e quanto tempo ci vuole per sviluppare da solo un algoritmo efficace, e avendolo creato, ha il diritto incondizionato di proteggerlo.

Siamo sicuri che molti utenti, comenoi, hanno assistito a queste situazioni comuni:

1. decompilazione *.ex4 allo scopo diinvestigare la logica del lavoro di qualcun altro e/o ulteriori modifiche. Con le ultimebuild del terminale MT4 questo processo è diventato più complicato, ma tuttavia gli hacker esperti analizzano con successo il loro contenuto e apportano modifiche non autorizzate, compresa la disabilitazione della protezione diprova e vari binding.

2. banale ridenominazione dei file compilati, nome del produttore (#proprietàcopyright) al fine di spacciarli per prodotti diversi o "proprietari".

Sviluppiamo unasoluzione software per aiutare gli sviluppatori di codice e i loro clienti a proteggere il loro codice sorgente da esami, modifiche, ridenominazione e rivendita non autorizzati.

Questa protezione è realizzata a livello primario del codice sorgente per mezzo della sua crittografia dinamica secondo algoritmi, sviluppati da noi, senzautilizzare librerie aggiuntive o strumenti esterni di protezione contro la decompilazione, cioè il codice sorgente stesso è convertito in *. formatomq4.

Ogni programmatore esperto può vedere da solo dall'esempio precedente che la ricompilazione di talecodice sorgente criptato in *. Il formatoex4rende molto difficile lo studio e l'analisi o addirittura impossibile. Inoltre, chiunque può testare l'algoritmo dicrittografia di sicurezza in modo assolutamente gratuito inviando qualsiasi* codice sorgente in *. formatomq4via e-mail codeprotector@ypy.cc (dettagli sotto)

Caratteristiche attuali (versione beta):

1. crittografia dinamica del codice sorgente utilizzando un algoritmo proprietario unico

Esempio 1. Questo è come appare il codice sorgente prima della crittografia (file allegato)

codice originale

Esempio 2. Questo è l'aspetto del codice sorgente dopo la crittografia dinamica (file allegato)

codice protetto

2. per fornire una protezione aggiuntiva al proprietario del codice, ogni codice sorgente criptato integra automaticamente la protezione delle informazioni complesse del proprietario del codice con il blocco di informazioni (è visualizzato sul diagramma nell'angolo inferiore destro).

Il grafico viene visualizzato:

+informazioni che contengonoil numeroID dicodifica del codice sorgente (con il quale il proprietario può sempre individuare un'istanza particolare del suo prodotto). Questo può essere moltoutile, per esempio, per il proprietario del codice per capire quale particolare istanza del prodotto è stata pubblicata o violata in modo non autorizzato.

+nome del file originale, che è stato utilizzato dal proprietario del codice sorgente durante la crittografia. Qualsiasi manomissione successiva del nome del file originale sicuro romperà la logica (solo l'aggiunta del nome del file originale è permessa per comodità). Questo renderà molto difficileper un attaccante cambiare completamente il nome del file.

+nome del produttore (#proprietàcopyright). Durante la crittografia, questi dati vengono letti dal codice sorgente e memorizzati in forma criptata.Così, anche se gli intrusi fanno modifiche nel file *.ex4 compilato, specificando un produttore diverso, il grafico continuerà a visualizzare i dati del produttore, come specificato originariamente dal proprietario.

Qualsiasi successiva modifica non autorizzata delle informazioni visualizzate sul grafico nel blocco informazioni comporterà una violazione della logica.

Esempio 3: ecco come appare il blocco di informazioni

info

Non appena raggiungeremo un'alta percentuale di compatibilità della crittografia dinamica con diversicodici, abbiamo intenzione di creare un prodotto software con un sistema di licenze flessibile e conveniente (restrizioni d'uso per tempo, numero di conto, nome del proprietario, server commerciale, ecc.), che può essere usato da ogni utente localmente sul suo computer per proteggere il suo codice senza passarlo a nessuno.

Gli sviluppatori che collaboreranno attivamente con noi testando a fondo e professionalmente il nostro algoritmo dicrittografia dinamica otterranno uno statuspremium di utenti professionali con caratteristiche avanzate e limiti di utilizzo.

Per gli sviluppatori checollaborano regolarmentecon i clienti per sviluppare vari codici, sarà più conveniente e sicuro condividere il codice sorgente in una forma già criptata.

L'esperienzaha dimostrato che anche se non si fornisce il codice a nessuno e lo si usa solo per le proprie esigenze suun VPS, è molto più sicuro usarlo in forma criptata con legami ai propri account.

Come si può criptare qualsiasi* codice sorgente in *.mq4?

Attualmente, durante il debugging, potetefarlo usando i seguenti semplici passi:

1. inviare qualsiasi e-mail a codeprotector@ypy.cc.

2. ricevere una risposta, rispondere (per la risposta salvare il codice di attivazione ricevuto)

3. Poi riceverete un'e-mail che conferma che potete inviare a questo indirizzo qualsiasi* codice sorgente in *. formatomq4per la crittografia di sicurezza.

4. si invia un file *.mq4e dopo un po' si riceve una mail con il codice sorgente già criptato (il nome del codice sorgente aggiunto alnumeroIDe "_protetto", che può tranquillamente rimuovere).

Il trattamento di tutti i file è automatico, non analizziamo o utilizziamo i file inviati in alcun modo, tranne che per la crittografia di sicurezza, la rimozione e il debug tecnico per la compatibilità dell'algoritmo di crittografia, avviatodall'utente nel caso in cui il codice sorgente siacriptato con errori onon criptato affatto. Se preferisci non inviare alcun codice sorgente via e-mail e/o non ti fidi di nessuno, puoi semplicementeaspettare che creiamo un software separato per proteggere il codice sorgente localmente sul tuo computer da solo.

*Qualsiasi codice sorgente inviato a *.mq4deve essere precedentemente non criptato e compilato in *.ex4senza avvertimenti o errori. Dovreste controllarlo voi stessi in anticipo.

Nel caso in cui il codice sorgentesia stato crittografato con errori o non sia statocrittografato affatto, e prima della crittografia fosse completamente operativo (devi controllarlo tu stesso) e sei sicuro di non avervi apportato alcuna modifica, ti preghiamo di comunicarcelo informando quanto segue:

1.il numeroID dicrittografia.

2. Cosa non funziona o non funziona correttamente.

3. descriverein dettaglio come possiamo riprodurre l'errore, allegandoscreenshot se possibile.

P.S. Poiché riceviamo spesso varie richieste e suggerimenti, si prega di notare che non accettiamo ordini per la programmazione, in quanto impegnati in software di auto-sviluppo per le proprie esigenze e prodotti finali. Ci sono moltisviluppatori terzi qualificati pronti a soddisfare qualsiasi tuo ordine per lo sviluppo di software nella sezione "Freelance"del Marketplace. Inoltre non abbiamo e non abbiamo intenzione di avere una soluzione software per decodificare i codici sorgente nella loro forma originale. Qualsiasi richiesta di inviarci precedentemente il codice sorgente originale, comprese lepersone che si spacciano per i loro proprietari, sarà ignorata. Per favore, non contattateci nemmeno con queste domande.

Si prega di postare in questo thread tutti coloro che capiscono a cosa serve e per i quali può essere davvero utile.

 
Pavel Izosimov:

Con le ultimebuild del terminale MT4 questo processo è diventato più complicato, ma tuttavia esperti di hacking hanno analizzato con successo il loro contenuto e vi hanno apportato modifiche non autorizzate, compresa la disabilitazione della protezione diprova e vari binding.

Può provare questa affermazione?
 
Renat Fatkhullin:
Può provare questa affermazione?

Renat, buona giornata!

Sì, certo, ti invierò in un messaggio privato alcuni esempi di codici craccati che abbiamo trovato sul web. Inoltre, posso dirvi esattamente il nome di uno specialista e del suo sito, che danneggia regolarmente e pubblicamente gli sviluppatori rimuovendo la loro protezione.

Apprezzerei la vostra analisi.

 
OK, grazie.
 
Pavel Izosimov:

...

Ho una domanda: che garanzia c'è che la vostra utility non sia essa stessa un trojan e che non perda il codice di crittografia che le viene inviato? Risposte come "potete contare su di noi" e "siamo molto, molto, molto onesti" non sono accettate.

In secondo luogo, cosa impedisce al programmatore di scrivere un offuscatore - che, da quanto ho capito, è il vostro software? Il più semplice offuscatore può essere scritto in pochissimo tempo. Per esempio, definite la lista di sostituzione delle variabili in questo modo: #define m_list x03928473 - non molto, ma abbastanza per una protezione di base.

 
Vasiliy Sokolov:

Un semplice offuscatore può essere scritto in pochissimo tempo. Per esempio, creo una lista di sostituzione delle variabili di definizione come questa: #define m_list x03928473 - non troppo, ma abbastanza per una protezione di base.

Non ha senso offuscare i nomi delle variabili - non sono affatto nel codice risultante. Vengono salvati solo i nomi delle funzioni esportate pubblicamente.

L'offuscamento ha senso solo se mutate effettivamente il vostro codice o, cosa ancora migliore, se lo virtualizzate. Ma la virtualizzazione non è fatta a livello di codice sorgente, è disponibile solo a livello di codice oggetto o binario.

 
Pavel Izosimov:

Qualsiasi modifica successiva non autorizzata delle informazioni visualizzate sul grafico nella casella informativa causerà l'interruzione della logica.

Questo suona un po' inquietante.
 

Usate il Marketplace per vendere prodotti e il problema del possibile hacking sparisce completamente.

I prodotti acquistati attraverso l 'app shop hanno un sistema di codifica/sicurezza completamente diverso, e sono criptati per l'hardware di ogni cliente.

 
Renat Fatkhullin:

Usate il Marketplace per vendere prodotti e il problema del possibile hacking sparisce completamente.

I prodotti acquistati attraverso l 'app shop hanno un sistema di codifica/sicurezza completamente diverso, e sono criptati per l'hardware di ogni cliente.

Quindi la protezione dei file ex4, ex5 è già aggirata? Ed è peggio della protezione post-pubblicazione sul mercato?
 
Tapochun:
Quindi la protezione dei file ex4, ex5 è già stata aggirata? Ed è peggio della protezione post-pubblicazione sul mercato?

No, certo che no.

La protezione nel mercato è migliore grazie al legame con l'hardware. Senza il Mercato, potete costruire la protezione nel vostro codice, limitando la funzionalità o le condizioni d'uso. E funzioneranno perché c'è una seria protezione del codice oggetto. Ma nel mercato, si mettono programmi senza restrizioni che il mercato stesso, oltre alle protezioni di base, ricodifica per l'hardware dell'acquirente.

 
Renat Fatkhullin:
Ok, grazie.
Ha inviato alcuni esempi con un link alla fonte originale