Если не ошибаюсь года два назад разработчики отприсывались, что trash - это необязательный "атрибут" для функций, который включает обфурскацию выполняемого кода.
Это делает на порядок труднее разбор декомпилированных файлов, но так же снижает скорость исполнения кода из функций к которым был применен trash.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Защита авторства MQL кода в МТ5. security certificates
Renat Fatkhullin, 2009.11.22 16:54
Как раз для замусоривания/обфускации кода в MQL5 можно указывать для каждой функции специальный модификатор:
void MyFunc(int val) trash { Print("Val: ",val); }
Пока его назвали trash, но скорее всего изменим на protect.
В результате будет производиться глубокое замусоривание кода и замедление работы указанной функции.
Кроме того, компилятор MQL5 языка использует массу оптимизаций, что кардинально уменьшает возможность обратной декомпиляции.
Уже не имеет смысла.
Через некоторое время для MQL5 кода x64 версий мы представим возможность тотальной перешифрации промежуточного EX5 кода на наших серверах с дополнительной защитой, похожей на механизмы Маркета.
При включенном режиме дополнительной защиты скомпилированный локально в EX5 файл(без исходников, только EX5) будет отправлен на сервер защиты, где файл будет дополнительно зашифрован серверными ключами. В результате код будет иметь только x64 версию с дополнительным уровнем защиты.
Возможно, этого делать не будем. Но если будем, сроков нет.
Уже не имеет смысла.
Через некоторое время для MQL5 кода x64 версий мы представим возможность тотальной перешифрации промежуточного EX5 кода на наших серверах с дополнительной защитой, похожей на механизмы Маркета.
При включенном режиме дополнительной защиты скомпилированный локально в EX5 файл(без исходников, только EX5) будет отправлен на сервер защиты, где файл будет дополнительно зашифрован серверными ключами. В результате код будет иметь только x64 версию с дополнительным уровнем защиты.
Возможно, этого делать не будем. Но если будем, сроков нет.
Не понимаю, для чего эта защита? Ведь и сейчас же никак не взломать EX4/5. Неужели есть люди, которые не соглашаются переходить на MQL, потому что им кажется, что защита не достаточная?
Или это просто гиковская дань моде, чтобы можно было в сравнительной таблице поставить плюсик напротив использования самых совершенных методов защиты? У остальных этого плюсика не будет - типа маркетинга "зато у меня 70 мегапикселей в смартфоне".
Это практическая необходимость или все же маркетинг?
Не понимаю, для чего эта защита? Ведь и сейчас же никак не взломать EX4/5. Неужели есть люди, которые не соглашаются переходить на MQL, потому что им кажется, что защита не достаточная?
Или это просто гиковская дань моде, чтобы можно было в сравнительной таблице поставить плюсик напротив использования самых совершенных методов защиты? У остальных этого плюсика не будет - типа маркетинга "зато у меня 70 мегапикселей в смартфоне".
Это практическая необходимость или все же маркетинг?
вспоминается фраза "Вы или крестик снимите или трусы оденьте!"
Я конечно могу ошибаться но в какой то ветке были комментарии на тему "мт5 намного быстрее мт4 и делаются шаги для дальнейшего ускорения работы"
если данный тип не нужен почему его не удалить совсем?
если нужен то зачем целенаправленно замедлять работу?
вспоминается фраза "Вы или крестик снимите или трусы оденьте!"
Я конечно могу ошибаться но в какой то ветке были комментарии на тему "мт5 намного быстрее мт4 и делаются шаги для дальнейшего ускорения работы"
если данный тип не нужен почему его не удалить совсем?
если нужен то зачем целенаправленно замедлять работу?
мы и без треша успешно справляемся с замедлением кода своими кривыми костылями
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Задавая имя объекту случайно обнаружил, что trash подсветилось синим цветом и это имя для переменной использовать нельзя.
В журнале ошибок выдаёт как вроде это какой-то новый тип данных.
Было бы интересно узнать про это у разработчиков.