Обсуждение статьи "Защита MQL5-программ: пароли, ключи, ограничение по времени, удаленная проверка лицензий" - страница 5

 

и что означает "Сервер лицензий не подключен. " ?

Кстати, знаете ли вы: https://www.mql5.com/en/forum/432897?

Простой поиск по RemoteProtectedEABase6.

Communicating with an api/custom server using a HTTP request inside of .mq5 indicator code - I'm trying to find out what I was doing with A. Mq5 indicator and Winlet DLL?
Communicating with an api/custom server using a HTTP request inside of .mq5 indicator code - I'm trying to find out what I was doing with A. Mq5 indicator and Winlet DLL?
  • 2022.09.19
  • www.mql5.com
Indicator code: python flask server code: so i was toying with the idea of just using winlet or using something like curl in a c++. In essence a service and a script behave basically the same, but to keep a service alive and running you have to use a loop
 
Carl Schreiber #:

и что означает "Сервер лицензий не подключен. " ?

Кстати, знаете ли вы: https://www.mql5.com/en/forum/432897?

Простой поиск по RemoteProtectedEABase6.

и, что это говорит вам: "Лицензионный сервер не подключен. " ?

Что он мне говорит? Ну что, нет соединения... Я не знаю, что вы имеете в виду под этим вопросом.

Статья по ссылке хорошая, но мне не помогла.

Я использую WinInet.dll.

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

 

Я также пытался использовать сокеты в прошлом, но остановился, потому что сервер блокируется, пока не получит что-то...

Также когда-то было решение с использованием общей памяти - я не смог заставить это работать.

Я бы использовал RAM-диск, а затем просто записывал, читал и удалял файлы на нем с помощью функций Windows(kernel32.dll), это работает и довольно просто.

 
Carl Schreiber #:

Я также пытался использовать сокеты в прошлом, но остановился, потому что сервер блокируется, пока не получит что-то .....

Правильно ли я понимаю, что сначала я должен отправить все данные, а затем спросить, есть ли соединение?

 

Ну, согласно модели клиент-сервер, сначала запускается сервер, потому что он ждет вопросов от (многих) клиентов, а затем клиент (клиенты).

В программе сервера ничего не происходит (он заблокирован), пока что-то не поступит от клиентов, тогда он делает что-то короткое, а затем возвращается в состояние ожидания.

Поиск торгового копира в CodeBase...
 
Carl Schreiber #:

Ну, согласно модели клиент-сервер, сначала запускается сервер, потому что он ждет вопросов от (многих) клиентов, а затем клиент (клиенты).

В программе сервера ничего не происходит (он заблокирован), пока что-то не поступит от клиентов, тогда он делает что-то короткое, а затем возвращается в состояние ожидания.

Логично, сначала отправляем все, потом сервер отвечает. Если сервер отвечает, соединение установлено, и я могу запросить ответ и отреагировать соответствующим образом. Если ответа нет, появляется сообщение " Лицензионный сервер не подключен. "
 

Дипл говорит следующее: https://www.deepl.com/translator#en/de/License%20server%20not%20connected

Теперь вопрос: почему? Он запущен? Защищено? ...

 

Здравствуйте, как я могу поместить элемент 7 в мой советник, чтобы избежать декомпиляции файла ex.5?

Есть ли у вас примеры кода, чтобы избежать этого?

Не могли бы вы объяснить подробнее?

 
Спасибо за эту статью.

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

Один из методов, который можно применить, - это обфускация кода. Переименование каждой переменной и метода в случайное имя. double Signal станет double AB1234, double IndicatorValue - CD1234. Это не решает проблему, но, конечно, делает ее головной болью для человека, который декомпилирует код. Из-за этого очень трудно найти место проверки лицензирования, чтобы потенциально изменить его.

Другим решением было бы обрабатывать все внутренне, каждый индикатор, каждый советник рассчитывается только на сервере владельца. Пользователь отправляет на сервер лицензию, данные бара, время сервера и т. д. Сервер отвечает значением индикатора или действием эксперта. Это само по себе было бы довольно дорого и трудоемко для реализации, и решает большинство проблем.

Надеюсь, это вызвало любопытство и может быть полезно.
 
Winged Trading #:

Небольшое замечание: в MQL5 компилятор уже вырезает имена переменных, функций и комментарии при генерации .ex5.

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