Я хотел бы ограничить, кто / что может использовать мою C ++ DLL. у меня есть .mq4
сценарий (или это может быть что-нибудь еще, я думаю), и я использую DLL
—#import
функции в нем.
Как я хочу сделать ограничение: в DLL есть статический путь к файлу, и в начале каждой функции я просто вычисляю новую контрольную сумму ( sha1
) файла (на который указывает filepath) и сравните его с исходной контрольной суммой (также статической). Это хорошо, потому что если кто-то изменить .mq4
, функция не будет работать.
Моя проблема: Если я просто оставлю оригинал .mq4
там, и я создаю новую, импортируя туда DLL, я могу использовать DLL без проблем, потому что в DLL я проверяю оригинал .mq4
, (где указывает статический путь к файлу) не там, где я его использовал.
Так или иначе, я должен выяснить, где DLL была импортирована и проверить сумму этого файла. Или, может быть, есть другая техника, я не знаю.
с целью узнать, кто импортировал / кто вызвал DLL-функцию, обычная #import
Механики слишком легкие и в основном с открытым исходным кодом для потенциального злоумышленника.
Самая сильная, умная и едва ли параллельная защита, когда-либо виденная, occam
язык параллельного выполнения (используется для транспортов), когда вызывающий и вызываемый абоненты имеют соглашение о протоколе связи или нет. Поэтому никто не может похитить и использовать удаленный сервис, просто отправив «незапрошенный» вызов.
Вторые ближайшие ( occam
— подписчики законности) языки с поддержкой схемы на основе CSP — будь то Python, Go или другой CSP-совместимый механизм.
Остальной мир привык жить в среде, где объекты и DLL-файлы бесконечно уязвимы для злоумышленников, которые могут в любой момент перегружать / неправильно использовать любой DLL-сервис или объектный метод, в то время как DLL-сторона или экземпляр объекта не имеет возможности защитить себя и отклонить / отклонить услугу, если вызывающему абоненту не разрешено / не разрешено запрашивать такую услугу.
MQL4
имеет возможность общаться с CSP- «безопасными» средами, поэтому, если у вас действительно есть такая необходимость, сделайте MQL4
-подключен к удаленной стороне и обеспечивает безопасность CSP во избежание несанкционированного использования услуги.
Если вы не хотите заходить так далеко, попробуйте связать свою C ++ DLL с прокси, что:
Других решений пока нет …