Защита исходного кода до компиляции - страница 7

 
pako:
Вы не ответили
Большая просьба всех принять во внимание, что эта тема не о взломах, а создана наоборот в интересах дополнительной защиты разработчиков и предполагает тестирование алгоритма динамического шифрования.
 
Vladimir Pastushak:

К сожалению Ваш шифровалищик не дает никаких преимуществ, максимальное преимущество уже дали разработчики терминалов мт4 и мт 5. 

+1

Vladimir Pastushak:

Хотя очень хотелось бы действительно увидеть сильную штуку.

 Исключено

 
Pavel Izosimov:
Большая просьба всех принять во внимание, что эта тема не о взломах, а создана наоборот в интересах дополнительной защиты разработчиков и предполагает тестирование алгоритма динамического шифрования.
Ни о чем
 
Pavel Izosimov:
Большая просьба всех принять во внимание, что эта тема не о взломах, а создана наоборот в интересах дополнительной защиты разработчиков и предполагает тестирование алгоритма динамического шифрования.
К сожалению, по результатам обфусцированного кода, не понятно, используется ли Вы следующий трюк:

1) Тело функции разбивается на несколько частей (для этого требуется анализ потока выполнения):
// для примера

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

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

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

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

   // часть #5
   // выход из функции
  }
2) объявляется глобальный массив ExecutePath, который инициализируется некоторыми значениями
3) тело нашей функции заменяем на цикл со switch от массива ExecutePath
4) реультат:
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) кроме блоков, исходной функции, генерируются блоки с кодом в switch, выполнение до которых никогда не дойдёт
 
Ilyas:
К сожалению, по результатам обфусцированного кода, не понятно, используется ли Вы следующий трюк:

1) Тело функции разбивается на несколько частей (для этого требуется анализ потока выполнения):
2) объявляется глобальный массив ExecutePath, который инициализируется некоторыми значениями
3) тело нашей функции заменяем на цикл со switch от массива ExecutePath
4) реультат:
5) кроме блоков, исходной функции, генерируются блоки с кодом в switch, выполнение до которых никогда не дойдёт
Я лично и руководитель группы наших разработчиков, занимающихся реализацией этого проекта, искренне благодарим за Ваш практический подход к нашей теме!

Предлагаемый Вами полезный трюк находится в нашем плане модификаций следующего уровня защит вместе с другими фишками.

Как Вы прекрасно понимаете мы не можем раскрыть полный перечень применяемых алгоритмов, но то что по результатам первоначального обфусцированного кода, уже не понятно, что используется, это не может не радовать :)
 
Pavel Izosimov:

Игорь, добрый день!

Вся необходимая информация, несколько примеров файлов, прямые ссылки на первоисточники, были предоставлены администратору MQL Ренату еще в самом начале этой темы.

Мы не планируем делится горем наших коллег с каждым кто проявляет любопытство, т.к. указанный нами ресурс полон до сих пор массой свеже взломанных продуктов.

Мы уважаем своих коллег и не будем способствовать нелегальному распространению их продуктов!

Также мы с уважением относимся к разработчикам терминала Мetatrader, считаем, что они делают многое для защиты кода и предоставляем по их запросам всю необходимую информацию.

Большая просьба всех принять во внимание, что эта тема не о взломах, а создана наоборот в интересах дополнительной защиты разработчиков и предполагает тестирование алгоритма динамического шифрования.

Как раз для того, чтобы защищать свои продукты, нужно знать методы, которыми пользуются взломщики. Я ведь не прошу поделиться теми способами, которые Вы где-то сами нашли, а только тем, что уже вынесено на всеобщее обозрение. Ведь по Вашим словам взломщик действовал публично. Значит, эта информация уже есть в сети и Вы не поспособствуете распространению каких-то секретов. Тем более, методы обсуждаемого взломщика Вы уже учли в своем обфускаторе.

В итоге, если бы Вы поделились ссылкой, то это придало бы вес всему тому, о чем Вы здесь говорите. 

Интересуюсь именно как разработчик, а не взломщик. На путь взламывания чужих программ никогда не встану, т. к. это деструктивный путь. Он ведет в сторону, противоположную развитию.  

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

Как раз для того, чтобы защищать свои продукты, нужно знать методы, которыми пользуются взломщики. Я ведь не прошу поделиться теми способами, которые Вы где-то сами нашли, а только тем, что уже вынесено на всеобщее обозрение. Ведь по Вашим словам взломщик действовал публично. Значит, эта информация уже есть в сети и Вы не поспособствуете распространению каких-то секретов. Тем более, методы обсуждаемого взломщика Вы уже учли в своем обфускаторе.

В итоге, если бы Вы поделились ссылкой, то это придало бы вес всему тому, о чем Вы здесь говорите. 

Игорь не подумайте, что хочу Вас обидеть, но нам не нужен вес, мы это делаем в том числе для собственного практического использования и уверены, что это будет полезно для многих разработчиков.

Мы не будем ни кого ни в чем убеждать, мы просто реализуем поставленную задачу как бы чего кто не хотел.

Умные люди понимают, что критиковать подобное решение в интересах тех, кому потом придется с этим мучиться - тем кто по обратную сторону "барикад", т.е. специалистам по взлому "чужого"

Мы со своей стороны постараемся сделать все возможное, что бы им было максимально "некомфортно" ломать то, что им не принадлежит :)

 
Pavel Izosimov:

Игорь не подумайте, что хочу Вас обидеть, но нам не нужен вес, мы это делаем в том числе для собственного практического использования и уверены, что это будет полезно для многих разработчиков.

Мы не будем ни кого ни в чем убеждать, мы просто реализуем поставленную задачу как бы чего кто не хотел.

Умные люди понимают, что критиковать подобное решение в интересах тех, кому потом придется с этим мучиться - тем кто по обратную сторону "барикад", т.е. специалистам по взлому "чужого"

Мы со своей стороны постараемся сделать все возможное, что бы им было максимально "некомфортно" ломать то, что им не принадлежит :)

Чем ? Я разработчик публикуюсь в маркете, чем мне это будет полезно ?
 
Игорь Герасько:

На путь взламывания чужих программ никогда не встану, т. к. это деструктивный путь. Он ведет в сторону, противоположную развитию.  

Никогда не говори никогда
 
Vladimir Pastushak:
Чем ? Я разработчик публикуюсь в маркете, чем мне это будет полезно ?

Мы также публикуемся в маркете, но далеко не всегда уместно публиковать через маркет все подряд.

К примеру мы перед публикацией финишных продуктов организуем публичные открытые тестирования наших разработок в сети, выдаем триалы, а также лицензируем конкретные счета пользователей, которые с нами сотрудничают.

Или например создаем продукт для определенной группы пользователей. 

Это далеко не все случаи когда не уместно публиковаться через маркет.