Proteger el código fuente antes de la compilación - página 7

 
pako:
No has respondido.
Por favor, ten en cuenta que este hilo no trata de hackear, sino que se trata de una protección extra para los desarrolladores y supone probar un algoritmo de encriptación dinámico.
 
Vladimir Pastushak:

Lamentablemente tu codificador no da ninguna ventaja, la máxima ventaja ya la han dado los desarrolladores de los terminales mt4 y mt5.

+1

Vladimir Pastushak:

Aunque me gustaría ver algo realmente fuerte.

Excluido

 
Pavel Izosimov:
Por favor, ten en cuenta que este hilo no trata de hackear, sino que se trata de una protección extra para los desarrolladores, y supone probar un algoritmo de encriptación dinámico.
Nada de nada
 
Pavel Izosimov:
Por favor, ten en cuenta que este hilo no trata sobre hacks, sino sobre la protección adicional para los desarrolladores y la prueba del algoritmo de encriptación dinámica.
Desgraciadamente, según los resultados del código ofuscado, no está claro si se utiliza el siguiente truco:

1) El cuerpo de la función se divide en varias partes (esto requiere el análisis del flujo de ejecución):
// для примера

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

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

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

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

   // часть #5
   // выход из функции
  }
2) se declara un array global ExecutePath, que se inicializa con algunos valores
3) El cuerpo de nuestra función se sustituye por un bucle con un interruptor de la matriz ExecutePath
4) resultado:
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) además de los bloques, la función original genera bloques con código en el interruptor, cuya ejecución nunca alcanzará
 
Ilyas:
Desgraciadamente, no está claro, a partir de los resultados del código ofuscado, si está o no utilizando el siguiente truco:

1) El cuerpo de la función se divide en varias partes (esto requiere el análisis del flujo de ejecución):
2) se declara un array global ExecutePath, que se inicializa con algunos valores
3) El cuerpo de nuestra función se sustituye por un bucle con un interruptor de la matriz ExecutePath
4) resultado:
5) además de los bloques, la función original genera bloques con código en el interruptor, cuya ejecución nunca alcanzará
Yo mismo y el líder de nuestro equipo de desarrollo que participa en la ejecución de este proyecto, le agradecemos sinceramente su enfoque práctico de nuestro tema.

El útil truco que sugieres está en nuestro plan para modificar el siguiente nivel de protecciones junto con otros trucos.

Como usted bien entiende no podemos revelar la lista completa de algoritmos utilizados, pero el hecho de que los resultados del código ofuscado inicial, no está claro lo que se utiliza, no puede ayudar, pero por favor :)
 
Pavel Izosimov:

Igor, ¡buenos días!

Toda la información necesaria, algunos ejemplos de archivos y enlaces directos a las fuentes primarias fueron proporcionados al administrador de MQL, Renat, al principio de este tema.

No pensamos compartir la pena de nuestros colegas con todos los curiosos, porque el recurso que mencionamos sigue lleno de productos recién crackeados.

Respetamos a nuestros colegas y no contribuiremos a la distribución ilegal de sus productos.

También respetamos a los desarrolladores de terminales Metatrader, creemos que hacen mucho para proteger su código y proporcionar toda la información necesaria en sus solicitudes.

Por favor, ten en cuenta que este hilo no trata de hacks, sino que, por el contrario, se trata de una protección extra para los desarrolladores, e incluye la prueba del algoritmo de cifrado dinámico.

Para proteger sus productos, debe conocer los métodos utilizados por los crackers. No te pido que compartas los métodos que has encontrado en algún sitio, sino sólo lo que ya está disponible públicamente. Dijiste que el ladrón actuó en público. Eso significa que esta información ya está en la red y que no contribuirás a la difusión de ningún secreto. Además, ya has tenido en cuenta los métodos del cracker en tu ofuscador.

En consecuencia, si compartiera el enlace, daría peso a todo lo que aquí se comenta.

Interesado específicamente como desarrollador, no como hacker. Nunca tomaría el camino de piratear el software de otra persona, porque es un camino destructivo. Lleva a la dirección opuesta al desarrollo.

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

Para proteger sus productos, debe conocer los métodos utilizados por los crackers. No te pido que compartas los métodos que has encontrado en algún sitio, sino sólo los que ya están disponibles públicamente. Dijiste que el ladrón actuó en público. Así que esta información ya está en la red y no contribuirás a la difusión de ningún secreto. Además, ya has tenido en cuenta los métodos del cracker en tu ofuscador.

En consecuencia, si compartiera el enlace, daría peso a todo lo que está hablando aquí.

Igor, no creas que quiero ofenderte, pero no necesitamos peso, lo hacemos también para nuestro uso práctico y estamos seguros de que será útil para muchos desarrolladores.

No vamos a convencer a nadie de nada, simplemente llevamos a cabo la tarea encomendada, sin importar lo que nadie quiera.

Las personas inteligentes entienden que criticar una solución de este tipo redunda en beneficio de los que tendrán que lidiar con ella más adelante: los que están al otro lado de las "barricadas", es decir, los profesionales del pirateo "alienígena".

Por nuestra parte, intentaremos hacer todo lo posible para que se sientan lo más "incómodos" posible para romper lo que no les pertenece :)

 
Pavel Izosimov:

Igor, no creas que quiero ofenderte, pero no necesitamos peso, lo hacemos para nuestro uso práctico y estamos seguros de que será útil para muchos desarrolladores.

No vamos a convencer a nadie de nada, simplemente llevamos a cabo la tarea que nos corresponde, sin importar lo que nadie quiera.

Las personas inteligentes entienden que criticar una solución de este tipo redunda en beneficio de los que tendrán que lidiar con ella más adelante: los que están al otro lado de las "barricadas", es decir, los profesionales del pirateo "alienígena".

Por nuestra parte, intentaremos hacer todo lo posible para que se sientan lo más "incómodos" posible para romper lo que no les pertenece :)

¿Con qué? Soy un desarrollador publicado en el mercado, ¿cómo me ayudará?
 
Игорь Герасько:

Nunca tomaré el camino de piratear el software de otra persona, porque es un camino destructivo. Lleva a la dirección opuesta al desarrollo.

Nunca digas nunca
 
Vladimir Pastushak:
¿Con qué? Soy un desarrollador que publica en el mercado, ¿en qué me puede servir?

También publicamos en el mercado, pero no siempre es conveniente publicar todo a través del mercado.

Por ejemplo, organizamos pruebas públicas y abiertas de nuestros desarrollos en la web, regalamos pruebas y concedemos licencias a cuentas específicas de usuarios que cooperan con nosotros antes de publicar los productos finales.

O, por ejemplo, creamos un producto para un determinado grupo de usuarios.

No son todos los casos en los que no conviene publicar en el mercado.