Какие есть методы защиты кода в dll файле

 

Я собираюсь помещать логику программы и защиту в dll файл. В папке samples есть наглядные примеры создания и подключения библиотеки к

mq4 программе, так что с этим проблем нет. Осталось разобраться, как можно защитить dll файл от взлома.

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

dll я пишу на C++.


 

А как можно заглянуть в Dll? Дизассемблером?

С потерей всех функций, переменных и логики?

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

.

Или все-таки вопрос в том, как авторизовать доступ к выполнению Dll,

чтобы Dll у когото запускалась, а у кого-то- нет?

 

Например, есть декомпиляторы для файлов ex4. Аналогично и для dll, наверное. Должен сказать, что я начинающий C++ программист, и тему dll знаю поверхностно. Поэтому и спрашиваю: может более опытные коллеги чего-нибудь посоветуют.

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

 
Совет очень простой: усердно учить матчасть, и до поры до времени не забивать себе голову надуманными проблемами.
 
STill_ace >>:

Например, есть декомпиляторы для файлов ex4. Аналогично и для dll, наверное. Должен сказать, что я начинающий C++ программист, и тему dll знаю поверхностно. Поэтому и спрашиваю: может более опытные коллеги чего-нибудь посоветуют.

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

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

1). при прибыльности -30% (минус 30 процентов в месяц) в месяц - можете ничего не делать для его защиты.

2). -5% = тоже.

3). +0,1 % = экспортируемые функции назовите как-нибудь вычурно, вместо "correlation()" - "XCB34QRt()". Поставьте файерволл на комп, разрешите MT4 только 80 и 443 порты. Этого будет достаточно.

4). +1% = поместите весь метатрейдер на шифруемый диск-контейнер, например PGP или Jetico BestCrypt, убейте все геймы на компе, переустановите систему, поставьте приличный файерволл.

5). +2% = перепишите DLL чтобы она состояла из двух частей и части общались по протоколу TCP/IP, вторую часть поместите на отдельный шифрованный контейнер. Существуют программы-отладчики И ЛЮДИ, которые смогут понять как работает Ваша DLL - ка. Важным пунктом с этого момента является - нанять честного и опытного специалиста по безопасности, например AlexEro с форума MQL4.

6). +3% = купите отдельный сервер, на который поместите одну часть DLL-ки. Как и где его установить, и что на нём должно быть, я не могу здесь открыто писать, но при выполнении Вами п5 это не будет проблемой. Купите хардварный фаерволл.

7). +5% = застрахуйте свою жизнь, напишите завещание, наймите службу безопасности, подбирайте с лицами потупее, чтобы они не оказались хакерами. DLL-ка должна теперь состоять из 5-ти частей, две из них можете носить с собой на флешке.

8). +10% = переедьте в какую-нибудь глушь

9). +20% и выше = особые методы, которые могу рассказать только лично.

10). +50% = застрелитесь, потому что Вас и Вашу DLL ужЕ ничто не спасёт.

 
STill_ace >>:

Например, есть декомпиляторы для файлов ex4. Аналогично и для dll, наверное. Должен сказать, что я начинающий C++ программист, и тему dll знаю поверхностно. Поэтому и спрашиваю: может более опытные коллеги чего-нибудь посоветуют.

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


Dll, exe-файлы декомпилируется в ассемблерный код, логику системы в котором могут понять очень и очень немногие, да и тем потребуется на это достаточно много времени. То есть если вы начинающий программист, то я не думаю, что ваш советник может представлять на столько большой интерес для таких людей. От чего действительно имеет смысл защищать dll-файлы, так это от возможного взлома модулей, накладывающих какие-либо ограничения на использование советника. Что-то вроде ограничений по времени запуска или привязки к какому-либо конкретному компьютеру. Но это всё имеет смысл только, если вы собираетесь распространять свой советник на коммерческой основе.

 
AlexEro >>:


))) Ай, класс!

Вы будете очень богатым человеком! Представьте, вы разворачиваете рекламную компанию с таким посылом: Если ваша МТС приносит более 1% в месяц, знайте - вы в опасности! Только наша компания даст вам ощущение спокойствия!

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

 
jartmailru:


Или все-таки вопрос в том, как авторизовать доступ к выполнению Dll,

чтобы Dll у кого-то запускалась, а у кого-то- нет?

Здравствуйте. Мне нужно именно то, о чем вы говорите. Подскажите пожалуйста где мне найти информацию о том как это сделать? Что прочитать, что изучить. Я знаю только mql4 и mql5, хотел пойти сначала по более легкому пути и просто купить услуги по защите программных продуктов, написал уже в три таких сервиса и вот уже неделю жду ответов. 

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

 
Alexandr527:

Здравствуйте. Мне нужно именно то, о чем вы говорите. Подскажите пожалуйста где мне найти информацию о том как это сделать? Что прочитать, что изучить. Я знаю только mql4 и mql5, хотел пойти сначала по более легкому пути и просто купить услуги по защите программных продуктов, написал уже в три таких сервиса и вот уже неделю жду ответов. 

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

Чтобы "въехать" в тематику, погуглите, например, "аппаратные ключи hasp", в свое время сбербанк поставлял клиентам биржевые терминалы Transaq с такими ключами.

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

"запускать ее только на своем компьютере" - речь идет об одновременном запуске не более одного экземпляра? - даже здесь требуются уточнения. Не говоря о том, что такое свой компьютер в случае переустановки ОС, добавления или замены сетевой карты и пр.

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