Protecting the source code before compilation - page 7

 
pako:
You did not reply.
Please note that this thread is not about hacking, but is instead about extra protection for developers and involves testing a dynamic encryption algorithm.
 
Vladimir Pastushak:

Unfortunately your encoder gives no advantage, the maximum advantage has already been given by the developers of mt4 and mt5 terminals.

+1

Vladimir Pastushak:

Although I would really like to see a really strong thing.

Excluded

 
Pavel Izosimov:
Please note that this thread is not about hacking, but is instead about extra protection for developers and testing of the dynamic encryption algorithm.
Nothing about anything
 
Pavel Izosimov:
Please note that this thread is not about hacks, but rather about additional protection for developers and testing of the dynamic encryption algorithm.
Unfortunately, based on the results of the obfuscated code, it is not clear if you use the following trick:

1) The function body is split into several parts (this requires analysis of the execution flow):
// для примера

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

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

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

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

   // часть #5
   // выход из функции
  }
2) a global array ExecutePath is declared, which is initialised with some values
3) The body of our function is replaced by a loop with a switch from the ExecutePath array
4) result:
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) in addition to blocks, the original function generates blocks with code in the switch, the execution of which will never reach
 
Ilyas:
Unfortunately, it's not clear from the results of the obfuscated code whether or not you are using the following trick:

1) The function body is split into several parts (this requires analysis of the execution flow):
2) a global array ExecutePath is declared, which is initialised with some values
3) The body of our function is replaced by a loop with a switch from the ExecutePath array
4) result:
5) in addition to blocks, the original function generates blocks with code in the switch, the execution of which will never reach
Myself and the leader of our development team involved in the implementation of this project, we sincerely thank you for your practical approach to our topic!

The useful trick you suggest is in our plan for modifying the next level of protection along with other tricks.

As you well understand we can not disclose the full list of algorithms used, but the fact that the results of the initial obfuscated code, it is not clear what is used, it can not help but please :)
 
Pavel Izosimov:

Igor, good day!

All the necessary information, some examples of files, and direct links to primary sources were provided to MQL administrator Renat at the very beginning of this topic.

We don't plan to share our colleagues' grief with everyone who is curious, because the resource we mentioned is still full of freshly cracked products.

We respect our colleagues and will not contribute to illegal distribution of their products!

We also respect Metatrader terminal developers, we believe they do a lot to protect their code and provide all necessary information on their requests.

Please note that this thread is not about hacks, but on the contrary, it is about extra protection for developers and testing of the dynamic encryption algorithm.

Just to protect your products, you need to know the methods used by crackers. I am not asking you to share the methods that you found somewhere, but only what is already publicly available. You said the burglar acted in public. So this information is already on the net and you won't contribute to the dissemination of any secrets. Moreover, you already took the cracker's methods into account in your obfuscator.

As a result, if you shared the link, it would give weight to everything you are talking about here.

Interested specifically as a developer, not a hacker. I would never take the path of hacking someone else's software, because it is a destructive path. It leads in the opposite direction to development.

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

In order to protect your products, you need to know the methods used by crackers. I'm not asking you to share the methods that you found somewhere, but only those that are already publicly available. You said the burglar acted in public. So this information is already on the net and you won't contribute to the dissemination of any secrets. Moreover, you already took the cracker's methods into account in your obfuscator.

As a result, if you shared the link, it would lend weight to everything you are talking about here.

Igor, don't think I want to offend you, but we don't need weight, we do it also for our own practical use and are sure it will be useful for many developers.

We are not going to convince anyone of anything, we simply carry out the task set, no matter what anyone wants.

Intelligent people understand that to criticize such a solution is in the interest of those who will have to deal with it later - those who are on the other side of the "barricades", i.e. experts in "alien" cracking.

For our part, we will try to do our best to make them as "uncomfortable" as possible to break what does not belong to them :)

 
Pavel Izosimov:

Igor, don't think that I want to offend you, but we don't need weight, we are doing this for our own practical use and we are sure that it will be useful for many developers.

We are not going to convince anyone of anything, we simply carry out the task at hand, no matter what anyone wants.

Intelligent people understand that to criticize such a solution is in the interest of those who will have to deal with it later - those who are on the other side of the "barricades", i.e. professionals of "alien" hacking.

For our part, we will try to do our best to make them as "uncomfortable" as possible to break what does not belong to them :)

With what? I am a developer published in the marketplace, how will it help me?
 
Игорь Герасько:

I will never take the path of hacking someone else's software, because it is a destructive path. It leads in the opposite direction to development.

Never say never
 
Vladimir Pastushak:
With what? I am a developer publishing on the market, how is it useful to me?

We also publish on the marketplace, but it is far from always appropriate to publish everything via the marketplace.

For example, we organise public open testing of our developments on the web, give out trials, and license specific accounts of users who cooperate with us before we publish the final products.

Or, for example, we create a product for a certain group of users.

These are not all cases where it is not appropriate to publish on the market.

Reason: