Методы защиты Mq4... - страница 4

 
Вам нужно профессиональное решение для защиты вашего mql-кода. Это непростая тема. Все эти обсуждаемые dll бесполезны для защиты вашего кода.
 

Вы когда-нибудь задумывались о следующем:

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

Я не пробовал, но у меня есть почти 30 лет знаний в низкоуровневом программировании (ассемблер 680x0, powerpc и так далее).

Счастливой охоты.

:)

 

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

Например: В прежние времена я писал программы и сбрасывал начальный и конечный адрес кода в файл. Все переходы внутри кода были установлены на относительное смещение, и код (который, в конце концов, является обычными данными) был повернут на 1 бит. Таким образом, код больше не существует. Вы можете добавить часть загрузчика к вашему коду и заставить его снова развернуться и перераспределить адреса меток (обычно они находятся в hunks). Переход к вводу и вуаля - вы снова запускаете программу.

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

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

Поэтому я предполагаю, что с индикаторами то же самое. Да, они компилируются. Это бинарный файл? Не знаю. Это байткод? Я тоже не знаю. Но я вполне уверен, что если вы запустите его в terminal.exe и сбросите области памяти, которые terminal.exe выделил для индикатора, вы сможете получить следы вашего кода (даже если это строки использованного текста внутри него или что-то подобное).

Может быть, вы получите что-то вроде CODE обратно, как в ваших *.mql4 файлах. А может быть, и нет. Может быть, вы получите байткод, может быть, нет. Может быть, вы получите что-то. Может быть, в terminal.exe есть свой собственный интерпретатор кода, который интерпретирует код, сгенерированный metaeditor.exe, так, чтобы terminal.exe понял его. Как я уже говорил, я не пробовал.

Я хочу объяснить, что если вы хотите зашифровать или защитить свой код, то не всегда видите его с одной стороны (например, файлы ex4, которые metaeditor скомпилировал и покрыл каким-то неизвестным кодом. Посмотрите на это и с другой стороны. Как только вы его запустите, ваш защищенный код снова окажется голым. И это одна из составляющих, за которую можно ухватиться. Может работать. Не должно.

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

 

Хорошие замечания Али. Спасибо.

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

Причина обращения: