Protegendo o código fonte antes da compilação - página 7

 
pako:
Você não respondeu.
Observe que este tópico não é sobre hacking, mas sobre proteção extra para desenvolvedores e envolve testar um algoritmo dinâmico de criptografia.
 
Vladimir Pastushak:

Infelizmente seu codificador não dá nenhuma vantagem, a vantagem máxima já foi dada pelos desenvolvedores dos terminais mt4 e mt5.

+1

Vladimir Pastushak:

Embora eu realmente gostaria de ver uma coisa muito forte.

Excluído

 
Pavel Izosimov:
Observe que este tópico não é sobre hacking, mas sobre proteção extra para desenvolvedores, e envolve testar um algoritmo dinâmico de criptografia.
Nada sobre nada
 
Pavel Izosimov:
Observe que esta linha não se trata de hacks, mas sim de proteção adicional para desenvolvedores e teste do algoritmo de criptografia dinâmica.
Infelizmente, com base nos resultados do código ofuscado, não está claro se você usa o seguinte truque:

1) O corpo da função é dividido em várias partes (isto requer a análise do fluxo de execução):
// для примера

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

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

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

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

   // часть #5
   // выход из функции
  }
2) uma matriz global ExecutePath é declarada, a qual é rubricada com alguns valores
3) O corpo de nossa função é substituído por um laço com um interruptor da 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) além dos blocos, a função original gera blocos com código no interruptor, cuja execução nunca chegará
 
Ilyas:
Infelizmente, não está claro pelos resultados do código ofuscado se você está usando ou não o seguinte truque:

1) O corpo funcional é dividido em várias partes (isto requer a análise do fluxo de execução):
2) uma matriz global ExecutePath é declarada, a qual é rubricada com alguns valores
3) O corpo de nossa função é substituído por um laço com um interruptor da matriz ExecutePath
4) resultado:
5) além dos blocos, a função original gera blocos com código no interruptor, cuja execução nunca chegará
A mim e ao líder de nossa equipe de desenvolvimento envolvida na implementação deste projeto, agradecemos sinceramente sua abordagem prática do nosso tema!

O truque útil que você sugere está em nosso plano para modificar o próximo nível de proteção junto com outros truques.

Como você bem entende, não podemos divulgar a lista completa dos algoritmos utilizados, mas o fato de que os resultados do código inicial ofuscado, não é claro o que é utilizado, não pode ajudar, mas por favor :)
 
Pavel Izosimov:

Igor, bom dia!

Todas as informações necessárias, alguns exemplos de arquivos e links diretos para fontes primárias foram fornecidos ao administrador da MQL Renat logo no início deste tópico.

Não planejamos compartilhar a dor de nossos colegas com todos os curiosos, porque o recurso que mencionamos ainda está cheio de produtos acabados de rachar.

Respeitamos nossos colegas e não vamos contribuir para a distribuição ilegal de seus produtos!

Também respeitamos os desenvolvedores de terminais Metatrader, acreditamos que eles fazem muito para proteger seu código e fornecem todas as informações necessárias sobre seus pedidos.

Observe que este tópico não é sobre hacks, mas, ao contrário, é sobre proteção extra para desenvolvedores e teste do algoritmo dinâmico de criptografia.

Só para proteger seus produtos, você precisa conhecer os métodos utilizados pelos crackers. Não estou lhe pedindo para compartilhar os métodos que você encontrou em algum lugar, mas apenas o que já está disponível publicamente. Você disse que o assaltante agiu em público. Portanto, estas informações já estão na rede e você não contribuirá para a divulgação de nenhum segredo. Além disso, você já levou em conta os métodos do cracker em seu obfuscador.

Como resultado, se você compartilhasse o link, isso daria peso a tudo o que você está falando aqui.

Interessado especificamente como desenvolvedor, não como hacker. Eu nunca tomaria o caminho de invadir o software de outra pessoa, porque é um caminho destrutivo. Ele conduz na direção oposta ao desenvolvimento.

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

A fim de proteger seus produtos, você precisa conhecer os métodos utilizados pelos crackers. Não estou lhe pedindo para compartilhar os métodos que você encontrou em algum lugar, mas apenas aqueles que já estão disponíveis publicamente. Você disse que o assaltante agiu em público. Isso significa que essas informações já estão na rede e que você não contribuirá para a divulgação de nenhum segredo. Além disso, você já levou em conta os métodos do cracker em seu obfuscador.

Como resultado, se você compartilhasse o link, isso daria peso a tudo o que você está falando aqui.

Igor, não pense que eu quero ofendê-lo, mas não precisamos de peso, nós o fazemos também para nosso próprio uso prático e estamos certos de que será útil para muitos desenvolvedores.

Não vamos convencer ninguém de nada, nós simplesmente executamos a tarefa definida, não importa o que alguém queira.

Pessoas inteligentes entendem que criticar tal solução é do interesse daqueles que terão que lidar com ela mais tarde - aqueles que estão do outro lado das "barricadas", ou seja, especialistas em rachaduras "alienígenas".

De nossa parte, tentaremos fazer o melhor para que se sintam o mais "desconfortáveis" possível para quebrar o que não lhes pertence :)

 
Pavel Izosimov:

Igor, não pense que eu quero ofendê-lo, mas não precisamos de peso, estamos fazendo isso para nosso próprio uso prático e temos certeza de que será útil para muitos desenvolvedores.

Não vamos convencer ninguém de nada, simplesmente realizamos a tarefa em mãos, não importa o que alguém queira.

Pessoas inteligentes entendem que criticar tal solução é do interesse daqueles que terão que lidar com ela mais tarde - aqueles que estão do outro lado das "barricadas", ou seja, os profissionais de hacking "alienígenas".

De nossa parte, tentaremos fazer o melhor para que se sintam o mais "desconfortáveis" possível para quebrar o que não lhes pertence :)

Com o que? Eu sou um desenvolvedor publicado no mercado, como isso me ajudará?
 
Игорь Герасько:

Nunca vou tomar o caminho de invadir o software de outra pessoa, porque é um caminho destrutivo. Ele conduz na direção oposta ao desenvolvimento.

Nunca diga nunca
 
Vladimir Pastushak:
Com o que? Eu sou uma editora desenvolvedora no mercado, como é útil para mim?

Nós também publicamos no mercado, mas está longe de ser sempre apropriado publicar tudo através do mercado.

Por exemplo, organizamos testes públicos abertos de nossos desenvolvimentos na web, fazemos testes e licenciamos contas específicas de usuários que cooperam conosco antes de publicarmos os produtos finais.

Ou, por exemplo, criamos um produto para um determinado grupo de usuários.

Estes não são todos os casos em que não é apropriado publicar no mercado.