Простой пример защиты конфигурации (1с8)

Самый простой пример защиты конфигурации от несанкционированного использования. Базируется на привязке конфигурации к номеру тома флешки. Не претендует на особую новизну или оригинальность но антиламерскую защиту способна обеспечить. Использует WMI.

После установки вставьте флешку, откройте единственную в конфигурации обработку и запишите на флешку ключевой файл. Раскомментируйте процедуру ПриНачалеРаботыСистемы() в модуле приложения и все, защита готова. Конфигурация запускается только при вставленной флешке.

44 Comments

  1. WiseSnake

    А если закомментировать ПриНачалеРаботыСистемы()… то запустится….

    Reply
  2. YVolohov

    Включать модуль приложения в поставку в скомпилированом или запароленом виде, тогда не закомментируют.

    Reply
  3. artem666

    (2) а раскомпиляция запороленной конфы???

    Reply
  4. Valet

    (3)<антиламерскую защиту способна обеспечить>

    Много ламеров или пользователей могут вскрыть запороленный модуль — не думаю.

    Reply
  5. alexk-is

    Несколько вопросов:

    Будет работать при нескольких пользователях?

    Будет работать в терминале?

    Будет работать в на виртуальной машине?

    Reply
  6. Tatitutu

    присоединюсь к (5)

    а если флешка накроется?

    Reply
  7. Abadonna

    Уже априори под конфигурацией понимается только 8х?

    Почему я должен тыкать в картинку, чтобы посмотреть подо что это?

    Надо писать в заголовке под какую платформу

    Reply
  8. YVolohov

    (3) В смысле, если конфа запаролена и знаешь пароль то какие могут быть проблемы если надо что-либо изменить в модуле ?

    (5) При нескольких пользователях работать будет, но у каждого должна быть вставлена флешка.

    В терминале работать будет, причем с одной флешкой на всех.

    На виртуальной машине не знаю.

    (6) Если флешка накроется, всегда можно создать ключ на новой. Принцып такой, сама конфа не хранит каких либо идентификаторов внутри себя, есть номер тома флешки, который можно считать с помощью WMI и такой же номер записанный внутри зашифрованного ключевого файла, если они совпадают то конфа запускаеться, если нет то не запускаеться.

    Reply
  9. karetir

    ха-ха Любой пользователь скачивает эту обработку и делает себе ключей с флешками сколько хочет — программа будет запускатся!

    Reply
  10. YVolohov

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

    Reply
  11. YVolohov

    Вообще зря я это выложил наверное без подробного описания всей системы, нужно будет создать.

    Reply
  12. zaic

    11. Не нужно подробного создавать. И так нормально. Тем более, что не так много идей на тему защит по 8-ке.

    Кстати, надо бы закупить партию флешек, пока они еще доступны..)

    Reply
  13. Jivchic

    а для 7.7 решение есть такое?

    Reply
  14. YVolohov

    (13) К сожалению в семерке нельзя нормально закрыть модуль с помощью штатных средств. Поэтому там такое решение не прокатит.

    Reply
  15. YVolohov

    Есть такая контора «Интелис», так они разработали интересное решение подходящее и для семерки и для восьмерки. Суть вот в чем — часть кода выносится в шифрованный файл, извлечь его оттуда может только внешняя компонента, которая в свою очередь не работает без аладиновского ключа.

    Reply
  16. YVolohov

    (15) Таким образом модуль можно вообще не закрывать, поскольку если отвязать защиту то конфа просто перестанет работать.

    Reply
  17. RomanUzmov

    (15) Защита от Интелис — отличная вещь, я её использую. Но, к сожалению, только под 8.Х. Под 7.7. не работает. Под 7.7. есть КЗК ПРОФ (старой версии), выложенный автором в свободный доступ.

    Reply
  18. marty

    (3) Причем раскомпилировать модули дело очень не легкое и как мне рассказывали расскомпилированный код трудно четабелен.

    (17) А как можно получить такую вещь?

    Reply
  19. master-vic

    класс

    Reply
  20. RomanUzmov

    (18) Какую именно?

    Защиту от Интелис’а можно купить или попробовать сначала демо-версию. Ссылка на продукт на их сайте: http://www.intelis-it.ru/software/intelis/safety.html

    КЗК я слил с этого сайта… поищи поиском… 🙂

    Reply
  21. YVolohov

    (18) Я очень долго гуглил насчет раскомпиляции модуля но так ничего стоящего и не попалось

    Reply
  22. RomanUzmov

    (21) V8UnPack28 — отличный декомпилятор.

    Reply
  23. lav_andrew

    (2) ну это очень просто

    Reply
  24. damacon

    Раскомпилировать модуль не просто, а очень просто… Даже неподготовленный пользователь в инете может найти. А способов защиты более грозных море, посмотрите например на самом сайте аладина (вот они от ламеров точно спасут, но только от них)

    Reply
  25. YVolohov

    (24) ссылку

    Reply
  26. WKBAPKA

    2(18): а кто вам такое сказал? есть обработка которая успешно декомпелирует зашифрованные модуля и они очень даже читабельны…

    самое примечательное ну и печальное, что обработка написана на самой же 1С, ВК используется только для раззиповки *1CD файла…

    тока не просите, высылать не буду…

    Reply
  27. marty

    (26) Значит все эти исключения исходников и паролирование модулей до одного места? А что Вы скажете о защите Интелис’а?

    Reply
  28. marty

    (22) Раскрывает все исходники?

    Reply
  29. WKBAPKA

    а какой принцип генерации ключа?

    Reply
  30. YVolohov

    (29) При генерации считываеться номер тома указанной флешки и вместе с дополнительной информацией (название клиента, код клиента, срок действия ключа) записываеться в шифрованный файл на ту же самую флешку.

    При запуске конфигурации опять считываеться номер тома с флешки и номер тома записанный в шифрованном файле. Если они совпадают, значит доступ разрешен.

    Reply
  31. WKBAPKA

    2(20): но защита от Интелиса требует наличие аппаратного ключа, что не всегда удобно 🙁

    Reply
  32. WKBAPKA

    2(27): да до одного места… думаю что защита от Интелиса чуть посложнее будет, главное что бы они не пулили расшифрованный модуль во временный файл, как это было у Инталева 🙂

    Reply
  33. RomanUzmov

    (31) Можно и без аппаратного ключа обойтись, использовать программный ключ Aladdina — Интелис тоже с ним работает…

    Reply
  34. WKBAPKA

    2(33): а с этого места поподробнее пожалуста…

    Reply
  35. RomanUzmov

    (34) У Aladdin’а есть продукт «HASP SRM», — это новый вид ключей HASP, являющийся развитием линейки HASP HL. Начиная с версии 3.6, этот продукт позволяет формировать так называемые «программные ключи» — полный аналог обычного ключа HASP. Ключ представляет собой драйвер(?), который устанавливается в систему. Обычные методы обнаружения ключа такой ключ также увидят. Система защиты Интелис, о которой идёт речь, также может работать с программными ключами. Проверено. По-моему, триал-версию пакета разработчика можно скачать с Аладдина.

    Reply
  36. Sheyko
  37. IamAlexy

    кстати прикольно получается.

    это решение + защита от интелис = экономия на hasp sl ключах.

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

    соответственно нет необходимости высылать заказчику хардварные ключи.

    понятное дело до hasp sl недотягивает, но в принципе защиту и не только от ламеров обеспечит.

    Reply
  38. serega3333

    включать в поставку можно и весь код в принципе…тогда будет еще лучше

    Reply
  39. lenna_1985

    а в сетевом режиме будет работать ?

    Reply
  40. YVolohov

    (39) Нет, только локально. На каждое рабочее место нужна флешка с ключом.

    Reply
  41. lenna_1985

    а доработать можете ???

    lenna_1985@mail.ru — моя почта для связи..

    Reply
  42. YVolohov

    (41) Это не имеет смысла. Создание нормальной системы защиты заняло бы кучу времени, к тому же я не специалист в таких вопросах.

    Reply
  43. CaSH_2004

    (42) В принципе неплохая защита если добавить немного инструкции и фантазии для доработки, ну скажем для других:

    1. есть возможность указать срок работы ключа — тут конечно при проверке система не скажет точно закончился срок или еще не начался — исправляется программистом просто

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

    эти данные также шифруются поэтому их не подделать

    3. чтобы заработало по сети можно использовать для хранения файла не жесткий диск (оттуда могут запросто удалить), а справочник «Внешние обработки» — но тогда придется отказаться (убрать в коде) от привязки к жесткому диску. Но зато можно привязаться к имени сервера где лежит база, к его IP и прочим достаточно статическим вещам (например к названии организации)

    Reply
  44. join2us

    Взял за основу. Автору респект.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *