Protéger le code source avant la compilation - page 7

 
pako:
Vous n'avez pas répondu.
Veuillez noter que ce fil de discussion ne concerne pas le piratage, mais plutôt une protection supplémentaire pour les développeurs et implique le test d'un algorithme de cryptage dynamique.
 
Vladimir Pastushak:

Malheureusement votre encodeur ne donne aucun avantage, l'avantage maximum a déjà été donné par les développeurs des terminaux mt4 et mt5.

+1

Vladimir Pastushak:

Bien que j'aimerais vraiment voir une chose vraiment forte.

Exclu

 
Pavel Izosimov:
Veuillez noter que ce fil de discussion ne concerne pas le piratage, mais plutôt la protection supplémentaire pour les développeurs et le test de l'algorithme de cryptage dynamique.
Rien à propos de quoi que ce soit
 
Pavel Izosimov:
Veuillez noter que ce fil de discussion ne concerne pas les hacks, mais plutôt la protection supplémentaire pour les développeurs et le test de l'algorithme de cryptage dynamique.
Malheureusement, sur la base des résultats du code obfusqué, il n'est pas clair si vous utilisez l'astuce suivante :

1) Le corps de la fonction est divisé en plusieurs parties (cela nécessite une analyse du flux d'exécution) :
// для примера

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

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

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

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

   // часть #5
   // выход из функции
  }
2) un tableau global ExecutePath est déclaré, qui est initialisé avec certaines valeurs
3) Le corps de notre fonction est remplacé par une boucle avec un switch du tableau ExecutePath
4) le résultat :
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) en plus des blocs, la fonction originale génère des blocs avec du code dans le commutateur, dont l'exécution n'atteindra jamais
 
Ilyas:
Malheureusement, les résultats du code obfusqué ne permettent pas de savoir si vous utilisez ou non l'astuce suivante

1) Le corps de la fonction est divisé en plusieurs parties (cela nécessite une analyse du flux d'exécution) :
2) un tableau global ExecutePath est déclaré, qui est initialisé avec certaines valeurs
3) Le corps de notre fonction est remplacé par une boucle avec un switch du tableau ExecutePath
4) le résultat :
5) en plus des blocs, la fonction originale génère des blocs avec du code dans le commutateur, dont l'exécution n'atteindra jamais
Moi-même et le responsable de notre équipe de développement impliquée dans la mise en œuvre de ce projet, nous vous remercions sincèrement pour votre approche pratique de notre sujet !

L'astuce utile que vous suggérez figure dans notre plan de modification du prochain niveau de protections, ainsi que d'autres astuces.

Comme vous le comprenez bien, nous ne pouvons pas divulguer la liste complète des algorithmes utilisés, mais le fait que les résultats du code initial obfusqué, il n'est pas clair ce qui est utilisé, il ne peut pas aider mais s'il vous plaît :)
 
Pavel Izosimov:

Igor, bonjour !

Toutes les informations nécessaires, quelques exemples de fichiers et des liens directs vers des sources primaires ont été fournis à Renat, administrateur du MQL, au tout début de ce sujet.

Nous n'avons pas l'intention de partager le chagrin de nos collègues avec tous les curieux, car la ressource que nous avons mentionnée est encore pleine de produits fraîchement craqués.

Nous respectons nos collègues et ne contribuerons pas à la distribution illégale de leurs produits !

Nous respectons également les développeurs de terminaux Metatrader, nous pensons qu'ils font beaucoup pour protéger leur code et fournir toutes les informations nécessaires sur leurs demandes.

Veuillez noter que ce fil de discussion ne porte pas sur les hacks, mais au contraire sur une protection supplémentaire pour les développeurs et le test de l'algorithme de cryptage dynamique.

Pour protéger vos produits, vous devez connaître les méthodes utilisées par les pirates. Je ne vous demande pas de partager les méthodes que vous avez trouvées quelque part, mais seulement ce qui est déjà accessible au public. Vous avez dit que le cambrioleur a agi en public. Ces informations sont donc déjà sur le net et vous ne contribuerez pas à la diffusion d'un quelconque secret. De plus, vous avez déjà pris en compte les méthodes du pirate dans votre obfuscateur.

Par conséquent, si vous partagez ce lien, cela donnera du poids à tout ce dont vous parlez ici.

Intéressé spécifiquement en tant que développeur, pas en tant que hacker. Je ne prendrais jamais la voie du piratage du logiciel de quelqu'un d'autre, car c'est une voie destructrice. Elle mène dans la direction opposée au développement.

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

Afin de protéger vos produits, vous devez connaître les méthodes utilisées par les pirates. Je ne vous demande pas de partager les méthodes que vous avez trouvées quelque part, mais seulement celles qui sont déjà accessibles au public. Vous avez dit que le cambrioleur a agi en public. Ces informations sont donc déjà sur le net et vous ne contribuerez pas à la diffusion d'un quelconque secret. De plus, vous avez déjà pris en compte les méthodes du pirate dans votre obfuscateur.

Par conséquent, si vous partagez le lien, cela donnera du poids à tout ce dont vous parlez ici.

Igor, ne croyez pas que je veuille vous offenser, mais nous n'avons pas besoin de poids, nous le faisons aussi pour notre propre usage pratique et sommes sûrs que cela sera utile à de nombreux développeurs.

Nous n'allons pas convaincre qui que ce soit de quoi que ce soit, nous nous contentons d'exécuter la tâche fixée, peu importe ce que quelqu'un veut.

Les personnes intelligentes comprennent que critiquer une telle solution est dans l'intérêt de ceux qui devront y faire face plus tard - ceux qui sont de l'autre côté des "barricades", c'est-à-dire les professionnels du cracking "alien".

Pour notre part, nous essaierons de faire de notre mieux pour les rendre aussi "inconfortables" que possible pour casser ce qui ne leur appartient pas :)

 
Pavel Izosimov:

Igor, ne croyez pas que je veuille vous offenser, mais nous n'avons pas besoin de poids, nous faisons cela pour notre propre usage pratique et nous sommes sûrs que cela sera utile à de nombreux développeurs.

Nous n'allons pas convaincre qui que ce soit de quoi que ce soit, nous nous contentons d'accomplir la tâche qui nous est confiée, peu importe ce que quelqu'un veut.

Les personnes intelligentes comprennent que critiquer une telle solution est dans l'intérêt de ceux qui devront y faire face plus tard - ceux qui sont de l'autre côté des "barricades", c'est-à-dire les professionnels du piratage "alien".

Pour notre part, nous essaierons de faire de notre mieux pour les rendre aussi "inconfortables" que possible pour casser ce qui ne leur appartient pas :)

Avec quoi ? Je suis un développeur publié sur la place de marché, comment cela va-t-il m'aider ?
 
Игорь Герасько:

Je ne prendrai jamais la voie du piratage du logiciel de quelqu'un d'autre, car c'est une voie destructrice. Elle mène dans la direction opposée au développement.

Ne jamais dire jamais
 
Vladimir Pastushak:
Avec quoi ? Je suis un développeur qui publie sur le marché, en quoi cela m'est-il utile ?

Nous publions également sur la place de marché, mais il est loin d'être toujours approprié de tout publier via la place de marché.

Par exemple, nous organisons des tests publics ouverts de nos développements sur le web, nous donnons des essais et nous accordons des licences à des comptes spécifiques d'utilisateurs qui coopèrent avec nous avant de publier les produits finaux.

Ou, par exemple, nous créons un produit pour un certain groupe d'utilisateurs.

Ce ne sont pas tous les cas où il n'est pas approprié de publier sur le marché.