Сколько стоит установить защиту и обслуживание? Подготовительный этап включает в себя подготовку ex4 и dll файла на основе предоставленного заказчиком mql файла.

Переход от варианта: исходный файл на mql к связке ex4 + dll будет стоить столько, сколько за это берет программист.  Так сколько конкретно? Диапазон цен от 300 руб. до 5000 руб. Зависит от срочности, дополнительного функционала, добавляемого к dll, и пр. Кто-то из альтруистских побуждений может сделать ex4 + dll полностью бесплатно. Еще один хороший вариант – изучить, как создавать dll самому. После этого можно делать себе полностью бесплатно, а другим за вознаграждение.

Навешивание защищенного кокона на dll. Обычно дополнительно платить не надо, если заказывали подготовительный этап. Если дали готовую ex4 + dll, то работу оговариваете с установщиком защиты (можно назвать этого человека программистом, но программирования на этом этапе, как такового нет) отдельно. Что могут сделать и как.

1)    Клиент покупает себе MASTER с комплектом разработчика и монтирует его на своем компьютере, обеспечивая доступ удаленно к USB порту —  установщик защиты все делает на стороне заказчика (базовый вариант).

2)    Бюджетный вариант 1. Работает установщик защиты с сервером Фирмы, предоставляем заказчику dll в “коконе”, остается только докупить ключи по 220 руб. у Фирмы.

3)  Бюджетный вариант 2. Заказчик покупает 50 лицензий вместе MASTER ключом в комплекте разработчика. Обычно он просто дает деньги установщику защиты, а тот уже сам покупает пакет из 50 лицензий с вместе MASTER ключом в комплекте разработчика. Установщик настраивает, привязывает и предоставляет заказчику dll в “коконе” для данного комплекта. Часто установщик защиты берет себя возню по оффлайновой активации. Установщик получает файл с2v от покупателя (слепок, который ему прислал клиент), установщик генерирует v2c файл для покупателя и отсылает ему (обслуживание обычно стоит от 1 руб. за операцию). Установщик, как правило, берем на себя покупку следующих комплектов (на деньги заказчика) и оперативную смену “кокона” для нового комплекта (бесплатно).  Альтернативный вариант. Заказчик монтирует у себя MASTER из комплекта. В удаленном режиме установщик защиты делает “кокон” для его dll, дальше заказчик сам работает с с2v — v2c и меняет “кокон” для новый партий (по полученной от установщика инструкции).

Какие есть альтернативы (на примере известных решений).

1) Получаем ex4 и используем защитник полученного кода (например, обработка программой ex4_protector или ее налогом). По такому пути пошли владельцы известных советников Vslive Trader 2.0, Auto-prolet 3.0 и другие. Используя последнюю версию программы ex4_to_mq4, злоумышленник без проблем получает исходный mql код. Не верите? Возьмите ex4_to_mq4_demo. В этом варианте программа успешно восстанавливает одну функцию. Если демо восстановило одну, то, что мешает не демо восстановить весь файл? Ничего! Полагаете, что злоумышленника задушит жаба покупать эту программу за $799? А Вам известно, что можно заказать декомпилировать один файл всего за 39 баксов? И создатель программы его декомпилирует!  Такова структура ex4, как ее не накручивай. Хороша защита? Проехали!

2) Некоторые известные советники типа семейства Regressor 1.9 и 1.12  и им подобные комбинируют ex4  и dll.

#import «Regressor_v12.dll»

int FIG_Signal(int a0, int a1, double a2, double a3);

#import

int KEY = 3642959;

int acc_num = AccountNumber();

….

if (FIG_Signal(acc_num, KEY, g_imacd_480, g_imacd_488) == 3) {

Print(«Expert key is not activate»);

Comment(» Expert key is not activate»);

return (0);

….

if (f0_3() && FIG_Signal(acc_num, KEY, g_imacd_480, g_imacd_488) == 1 && gi_520 == FALSE) {

Видно, что библиотеку просто так злоумышленнику после получения исходника не выкинуть, так как на нее завязана часть функционала.  Злоумышленник, однако, знает, что код регистрации KEY 3642959 соответствует номеру аккаунта 122345. А что мешает злоумышленнику внести такое изменение в код и распространять восстановленный исходник вместе с библиотекой?

#import «Regressor_v12.dll»

int FIG_Signal(int a0, int a1, double a2, double a3);

#import

int KEY = 3642959;

int acc_num = 122345;

….

if (FIG_Signal(acc_num, KEY, g_imacd_480, g_imacd_488) == 3) {

Print(«Expert key is not activate»);

Comment(» Expert key is not activate»);

return (0);

….

Ничего не мешает! Защиты нет, работает на любом счете. Хороша защита? Проехали!

3) А вот советник из жарких Казахских степей Baran 2.0. Создатели сделали сложную библиотеку проверки лицензии и продают программу за 500 баксов, а так же сдают в аренду за 7 баксов в сутки. Для защиты раздули ex4 до монстроразмеров, добавив большие функции пустышки, надеясь, что декомпилятор не справится. В общем, используем обфускацию по-научному или запутывание кода, если по-русски.

Посмотрев на код

#import «LOSS.dll»

int fu(int a0, int a1, int a2);

#import

int xxx;…

int init() {…

if (xxx == 1) gi_unused_356 = StrToDouble(asd());

else

if (fu(AccountNumber(), 1, TimeMonth(TimeCurrent())) == 12345) gi_348 = TRUE;

gd_264 = MarketInfo(Symbol(), MODE_SPREAD) * Point;

return (0);} … string asd() {

int li_8;    int li_0 = 21;    int li_4 = 23;    li_8 = li_0 + li_4 + li_0 + li_4 + li_8; И так далее мегабайта 3-4

return («»);

Злоумышленник видит, что а) переменной xxx ничего не присвоено, значит по умолчанию 0, а раз нет изменений, то равно 1 никогда не будет. Убрали монстра или оставили — дело вкуса, он все равно не работает. б) А функция fu — только проверка лицензии. Или злоумышленник пишет dll, которая, при любом вызове fu, возвращает 12345 и заменяет оригинал или правит mql код. Исправленный код:

int init() { …  gi_348 = TRUE;

return (0); }

Трудное ли убрать лишнее, имея исходник? Архисложная задача для незнающего MQL человека, а если знает чуток, то ничего сложного.  Хороша защита? Проехали!

4)    Написали программу aivserver-profit, которая из dll проверяет наличие лицензии на сервере 89.163.94.95, обращаясь удаленно и постоянно. Клиент, купивший программу, заходит крупным лотом. В это время у провайдера  89.163.94.95 летит канал и сервер недоступен 70 минут. Советник ничего не делает. Клиент сначала ловит “лося”, потом, родив ежика, вопит на весь Интернет о том, как он слился. Хороша защита? Проехали!

Такие защиты для программ под MT4 сегодня в моде. Защите на HASP SL/HL совершенно все равно декомпилирован ex4 или нет, так как весь важный функционал в dll (вариант 1, не проходит). Важный функционал советника в dll, но вариант 2 тоже не проходит, т.к. на другом компьютере защита без ключа HASP не запустится. Вариант 3 – если настолько глупы, что не перенесли критически важную часть кода в dll и dll’ка только для красоты, то HASP SL/HL Вам не поможет, т.к. он должен защищать важный код, а не пустышку, которую можно вырезать из восстановленного ex4 в mql.

Кому не подходит защита HASP SL/HL

1)    У Вас дешевая программа и Вы не хотите нести накладные расходы на ее защиту.

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

3)    Вы очень умны и экономны. Разобраться, как заказать установку и эксплуатировать – это примитив. Если описанный алгоритм титану мысли сразу не понятен, то и пытаться выяснять его не надо. Диагноз – эта защита разводка лохов, мог бы поставить все сам, но, это развод. Нанять же установщика защиты и человека на саппорт экономность не позволяет, ведь им надо деньги платить.

Вопросы FAQ.

Можно ли дать пользователю лицензии так, чтобы он работал на нескольких компьютерах? Можно. Один компьютер – одна лицензия. Каждая лицензия за отдельную плату.

Можно ли запускать защищенную dll в виртуальной среде и не размножат ли  виртуальные машины с программой?  В защите стоит контроль исполнения в виртуальной среде. Его можно отключить, тогда программа привязывается к виртуальной машине. Перенести ее в другую вирутальную машину нельзя, но, запустить несколько копий существующей виртуалки можно. Отключать или нет выполнение в вирутальной среде – решать Вам самим.

А как с удаленным доступом по RDP? Настраиваемо. Можно указать, что будет работать только в варианте локального сеанса на компьютере или возможна поддержка RDP протокола.

* * *

Этим постом завершаю FAQ по установке защиты HASP SRM на программы для торговли на рынке Форекс. Успешная борьба с компьютерными пиратами дает значительное увеличение объема продаж. Однако, надо учитывать не только эту составляющую, а решать вопрос комплексно. Например, привлекать покупателей с помощью рекламы, в том числе контекстной, создать эффективный продающий сайт и т.д., но об этом в других выпусках. На этом на сегодня все.

Ананченко Игорь Викторович Контактная информация Моб. телефон: +79213201586 ICQ: 361916132 Веб-сайт: http://anantchenko.ru E-mail: igor@anantchenko.ru Вконтакте: http://vkontakte.ru/id8574436 https://mcp.microsoft.com/authenticate/validatemcp.aspx Transcript ID 793398 and the Access Code 9213201586 Microsoft Certification Status: Microsoft Certified IT Professional, Microsoft Certified Technology Specialist, Microsoft Certified Desktop Support Technician, Microsoft Certified Professional, Microsoft Certified Trainer