Proteggere il codice sorgente prima della compilazione - pagina 7

 
pako:
Non hai risposto.
Si prega di notare che questo thread non riguarda l'hacking, ma riguarda invece la protezione extra per gli sviluppatori e comporta il test di un algoritmo di crittografia dinamica.
 
Vladimir Pastushak:

Purtroppo il tuo encoder non dà alcun vantaggio, il massimo vantaggio è già stato dato dagli sviluppatori dei terminali mt4 e mt5.

+1

Vladimir Pastushak:

Anche se mi piacerebbe molto vedere una cosa davvero forte.

Escluso

 
Pavel Izosimov:
Si prega di notare che questo thread non riguarda l'hacking, ma riguarda invece la protezione extra per gli sviluppatori e il test dell'algoritmo di crittografia dinamica.
Niente di niente
 
Pavel Izosimov:
Si prega di notare che questo thread non riguarda gli hack, ma piuttosto la protezione aggiuntiva per gli sviluppatori e il test dell'algoritmo di crittografia dinamica.
Purtroppo, in base ai risultati del codice offuscato, non è chiaro se si usa il seguente trucco:

1) Il corpo della funzione è diviso in più parti (questo richiede l'analisi del flusso di esecuzione):
// для примера

void func()
  {
   // часть #1
   // декларация переменных 

   // часть #2
   // инициализация цикла

   // часть #3
   // тело цикла

   // часть #4
   // инкременты цикла

   // часть #5
   // выход из функции
  }
2) viene dichiarato un array globale ExecutePath, che viene inizializzato con alcuni valori
3) Il corpo della nostra funzione è sostituito da un ciclo con uno switch dall'array ExecutePath
4) risultato:
ExecutePath[]={ PART_3,PART_2,PART_1,PART_4, PART_N };

void func()
  {
   for(int i=0;;i++)
     {
      switch(ExecutePath[i])
        {
         case PART_3:
            // выполняем часть 1 нашей функции

         ...
  
         case PART_N:
            // выполняем часть N нашей функции


          case PART_RET:
            // выполняем часть с кодом выхода из нашей функции
        }
     }
  }

5) oltre ai blocchi, la funzione originale genera blocchi con codice nello switch, la cui esecuzione non raggiungerà mai
 
Ilyas:
Sfortunatamente, non è chiaro dai risultati del codice offuscato se stai usando o meno il seguente trucco

1) Il corpo della funzione è diviso in più parti (questo richiede l'analisi del flusso di esecuzione):
2) viene dichiarato un array globale ExecutePath, che viene inizializzato con alcuni valori
3) Il corpo della nostra funzione è sostituito da un ciclo con uno switch dall'array ExecutePath
4) risultato:
5) oltre ai blocchi, la funzione originale genera blocchi con codice nello switch, la cui esecuzione non raggiungerà mai
Io e il leader del nostro team di sviluppo coinvolto nella realizzazione di questo progetto, ti ringraziamo sinceramente per il tuo approccio pratico al nostro argomento!

L'utile trucco che suggerisci è nel nostro piano per modificare il prossimo livello di protezioni, insieme ad altri trucchi.

Come ben capite non possiamo rivelare l'elenco completo degli algoritmi utilizzati, ma il fatto che i risultati del codice iniziale offuscato, non è chiaro ciò che viene utilizzato, non può aiutare ma per favore :)
 
Pavel Izosimov:

Igor, buona giornata!

Tutte le informazioni necessarie, alcuni esempi di file e i link diretti alle fonti primarie sono stati forniti all'amministratore di MQL Renat all'inizio di questo argomento.

Non abbiamo intenzione di condividere il dolore dei nostri colleghi con tutti coloro che sono curiosi, perché la risorsa che abbiamo menzionato è ancora piena di prodotti freschi di cracking.

Noi rispettiamo i nostri colleghi e non contribuiremo alla distribuzione illegale dei loro prodotti!

Rispettiamo anche gli sviluppatori di terminali Metatrader, crediamo che facciano molto per proteggere il loro codice e fornire tutte le informazioni necessarie sulle loro richieste.

Si prega di notare che questo thread non riguarda gli hack, ma al contrario, riguarda la protezione extra per gli sviluppatori e il test dell'algoritmo di crittografia dinamica.

Proprio per proteggere i vostri prodotti, è necessario conoscere i metodi utilizzati dai cracker. Non vi sto chiedendo di condividere i metodi che avete trovato da qualche parte, ma solo ciò che è già disponibile pubblicamente. Lei ha detto che il ladro ha agito in pubblico. Quindi queste informazioni sono già in rete e voi non contribuirete alla diffusione di nessun segreto. Inoltre, hai già preso in considerazione i metodi del cracker nel tuo offuscatore.

Di conseguenza, se lei condividesse il link, darebbe peso a tutto ciò di cui sta parlando qui.

Interessato specificamente come sviluppatore, non come hacker. Non prenderei mai la strada dell'hacking del software di qualcun altro, perché è una strada distruttiva. Porta nella direzione opposta allo sviluppo.

 
Игорь Герасько:

Per proteggere i vostri prodotti, dovete conoscere i metodi usati dai cracker. Non ti sto chiedendo di condividere i metodi che hai trovato da qualche parte, ma solo quelli che sono già disponibili pubblicamente. Lei ha detto che il ladro ha agito in pubblico. Quindi queste informazioni sono già in rete e voi non contribuirete alla diffusione di nessun segreto. Inoltre, hai già preso in considerazione i metodi del cracker nel tuo offuscatore.

Di conseguenza, se lei condividesse il link, darebbe peso a tutto ciò di cui sta parlando qui.

Igor, non pensare che io voglia offenderti, ma non abbiamo bisogno di peso, lo facciamo anche per il nostro uso pratico e siamo sicuri che sarà utile a molti sviluppatori.

Non abbiamo intenzione di convincere nessuno di niente, semplicemente portiamo a termine il compito stabilito, non importa quello che qualcuno vuole.

Le persone intelligenti capiscono che criticare una tale soluzione è nell'interesse di coloro che avranno a che fare con essa dopo - coloro che sono dall'altra parte delle "barricate", cioè i professionisti del cracking "alieno".

Da parte nostra, cercheremo di fare del nostro meglio per renderli il più "scomodi" possibile per rompere ciò che non gli appartiene :)

 
Pavel Izosimov:

Igor, non pensare che io voglia offenderti, ma non abbiamo bisogno di peso, lo stiamo facendo per il nostro uso pratico e siamo sicuri che sarà utile a molti sviluppatori.

Non abbiamo intenzione di convincere nessuno di nulla, semplicemente portiamo a termine il compito, indipendentemente da ciò che qualcuno vuole.

Le persone intelligenti capiscono che criticare una tale soluzione è nell'interesse di coloro che avranno a che fare con essa più tardi - coloro che sono dall'altra parte delle "barricate", cioè i professionisti dell'hacking "alieno".

Da parte nostra, cercheremo di fare del nostro meglio per renderli il più "scomodi" possibile per rompere ciò che non gli appartiene :)

Con cosa? Sono uno sviluppatore pubblicato sul mercato, come mi aiuterà?
 
Игорь Герасько:

Non prenderò mai la strada dell'hacking del software di qualcun altro, perché è una strada distruttiva. Porta nella direzione opposta allo sviluppo.

Mai dire mai
 
Vladimir Pastushak:
Con cosa? Sono uno sviluppatore che pubblica sul mercato, come mi è utile?

Pubblichiamo anche sul marketplace, ma non è sempre opportuno pubblicare tutto tramite il marketplace.

Per esempio, organizziamo test aperti al pubblico dei nostri sviluppi sul web, diamo prove e concediamo licenze a specifici account di utenti che collaborano con noi prima di pubblicare i prodotti finali.

Oppure, per esempio, creiamo un prodotto per un certo gruppo di utenti.

Non sono tutti i casi in cui non è opportuno pubblicare sul mercato.