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

 

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

Уверены, как и мы многие пользователи были свидетелями таких распространенных ситуаций:

1.      Декомпиляция файлов *.ex4 с целью исследования чужой логики работы и/или последующей модификации. С последними билдами терминала МТ4 этот процесс усложнился, но тем не менее опытные специалисты по взлому успешно анализируют их содержание и вносят в них несанкционированные правки, в т.ч. отключая триал защиты и различные привязки.

2.      Банальное переименование наименования скомпилированных файлов, наименования производителя (#property copyright) с целью выдачи этих файлов за иные или «собственные» продукты.

 

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

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

Каждый опытный программист может самостоятельно убедится на приведенном примере, что последующая компиляция такого зашифрованного исходника в формат *.ex4 крайне усложняет процесс его изучения и анализа, ну или либо вообще делает это практически невозможным. Также любой желающий может протестировать абсолютно свободно и бесплатно алгоритм защитного шифрования направив любой* исходный код в формате *.mq4 по электронной почте codeprotector@ypy.cc (подробности ниже)

 

Текущие возможности (бета версия):

1.      Динамическая шифрация исходного кода по уникальному алгоритму собственной разработки

 

Пример 1. Так выглядит исходный код до шифрации (файл приложен)

original code 

Пример 2. Так выглядит исходный код после динамической шифрации (файл приложен)

code protected 

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

На график выводится:

информация содержащая ID номер шифрации исходного кода (по которой владелец всегда может индивидуализировать конкретный экземпляр своего продукта). Это может быть очень удобно например для того, что бы владелец кода мог понять чей конкретно экземпляр продукта несанкционированно попал в паблик или был взломан.

+ оригинальное наименование файла (original filename), которое использовалось владельцем исходного кода при шифрации. Любое последующее искажение оригинального защищенного названия файла будет приводить к нарушению логики (для удобства допускается только дополнение оригинального наименования). Таким образомзлоумышленникам будет весьма проблематично полностью изменить наименование файла.

наименование производителя (#property copyright). В момент шифрации эти данные считываются из исходного кода и запоминаются в зашифрованном виде. Таким образом даже если в последующем злоумышленники внесут изменения в скомпилированный файл *.ex4, указав там иного производителя, то на график будут продолжать выводится данные производителя указанные первоначально владельцем.

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

 

Пример 3. Так выглядит информационный блок

info 

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

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

 

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

 

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

 

Как можно зашифровать любой* исходный код в формате *.mq4?

На текущий момент пока ведется отладка это возможно сделать совершив следующие простые шаги:

1.      Отправить любое письмо на электронный адрес codeprotector@ypy.cc

2.      Получив ответное письмо ответить на него (что бы при ответе сохранился присланный код активации)

3.      Затем к Вам придет письмо подтверждающее, что Вы можете отправлять на этот адрес любые* исходные коды в формате *.mq4 для защитной шифрации.

4.      Вы отправляйте файл *.mq4 и через некоторое время получаете письмо с уже зашифрованным исходным кодом (к названию исходного кода добавляются ID номер и «_protected» которые можно спокойно удалить).

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

 

*Любой отправляемый исходный код *.mq4 должен быть ранее не зашифрованным и компилироваться в *.ex4 без предупреждений и ошибок. Вы должны предварительно проверить это самостоятельно.

 

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

1.      ID номер шифрования.

2.      Что именно не работает или работает не так.

3.      Описать подробно как мы можем воспроизвести ошибку, по возможности приложив скрины.

 

P.S. Так как к нам часто поступают различные просьбы и предложения просим принять во внимание, что мы не принимаем ни каких заказов на программирование, т.к. занимаемся самостоятельной разработкой программного обеспечения для собственных нужд и конечных продуктов. Существует много сторонних квалифицированных специалистов которые готовы выполнить любые Ваши заказы на разработку программ в разделе «Фриланс» Маркета. Также мы не располагаем и не планируем располагать программным решением по дешифрации исходных кодов обратно в первоначальный вид. Любые обращения с просьбами выслать ранее отправленные первоначальные исходные коды, в т.ч. лицами представляющимися их владельцами будут игнорироваться. С этими вопросами просьба также к нам не обращаться.

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

 
Pavel Izosimov:

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

Можете доказать это утверждение?
 
Renat Fatkhullin:
Можете доказать это утверждение?

Ренат, добрый день!

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

Буду признателен если Вы проведете анализ.

 
ок, спасибо
 
Pavel Izosimov:

...

У меня вопрос: где гарантия что Ваша утилита сама не является трояном и "куда надо" не сольет переданный ей для шифровки код? Ответы типа "можете на нас положится" и "мы очень, очень, очень честные" - не принимаются.

Второе: что мешает самому программисту написать обфускатор - которым как я понял и является ваш софт? Простейший обфускатор пишется на раз-два. Например у меня создается define список замены переменных типа такого: #define m_list   x03928473 - Не густо, но для базовой защиты хватает.

 
Vasiliy Sokolov:

Простейший обфускатор пишется на раз-два. Например у меня создается define список замены переменных типа такого: #define m_list   x03928473 - Не густо, но для базовой защиты хватает.

Обфусцировать имена переменных не имеет смысла - их вообще нет в результирующем коде. Только публично экспортируемые имена функций сохраняются.

Обфускация имеет смысл только в виде настоящей мутации кода или, что еще круче - виртуализации. Но виртуализация на уровне исходного кода не делается, а доступна только на уровне объектного или бинарного кода.

 
Pavel Izosimov:

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

Звучит стремновато.
 

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

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

 
Renat Fatkhullin:

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

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

Т.е. защиту файлов ex4, ex5 нового образца уже обошли? И она хуже, чем защита после публикации в маркете?
 
Tapochun:
Т.е. защиту файлов ex4, ex5 нового образца уже обошли? И она хуже, чем защита после публикации в маркете?

Нет конечно, не обошли.

В Маркете защита лучше за счет привязки к железу. Без маркета вы можете встраивать защиты в свой код, лимитируя функционал или условия использования. И они будут работать, так как есть серьезная защита объектного кода. А в маркет вы выставляете нелимитированные программы, которые уже маркет самостоятельно в дополнение к базовым защитам перешифровывает под железо покупателя.

 
Renat Fatkhullin:
ок, спасибо
Отправил несколько примеров со ссылкой на первоисточник
Причина обращения: