Как защитить расширение 1с от копирования
Вы разработчик, и разработали чудесный алгоритм, но не хотите ни с кем с ним делиться - используйте данную разработку, и тогда предполагаемый злоумышленник, глядя на такой код, просто плюнет и начнет писать свой.
Обфускация – приведение исходного текста или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.
Обычная форма |
---|
Управляемая форма |
Данная разработка является идейным продолжением разработки coder1cv8 [2 in 1] «Обфускация кода 1С» и «RegExp Тестер». В ней исправлены большинство ошибок разработки данного автора: корректно распознаются директивы компиляции, области, инструкции препроцессора, комментарии, корректно заменяются переменные (не знаю, как у вас, но у меня разработка автора просто так не шифровала код, все равно оставались какие-то частично не зашифрованные переменные.)
Как происходит обфускация:
- Удаляет комментарии.
- Удаляет области
- Заменяет не экспортные функции на guid.
- Заменяет не экспортные переменные и параметры на guid.
- Если необходимо шифрует с помощью capicom.dll строковые данные, каждый раз ключ разный.
- Директивы компиляции и инструкции препроцессора, всегда с новой строки
Обратите внимание, что если использовать шифрование строк в разработке, то это очень сильно замедляет работу, так как при расшифровки будет каждый раз создаваться comОбъект capicom, поэтому в вашем коде необходимо предусмотреть разовую инициализацию этой компоненты, тогда в разы ускорит работу.
Также на обычной форме есть кнопка "снять пометку с реквизитов формы" - она снимает пометку с тех переменных которые не соответствуют шаблону, где первые символы с маленькой буквы, а последующие с большой, либо один символ с маленькой буквы, это рассчитано на тех разработчиков, которые используют для идентификации переменных: глобальный - начиная с символа "м", локальных - "л" и т.д., хотя наверное эта кнопка и не нужна.
Также разработана аналогичная управляемая форма, работает в тонком и толстом клиенте.
Принимаются предложения и замечания. Если понравилась разработка, ставь плюс.
Дисклеймер. Я понимаю, что у программистов считается правилом хорошего тона делиться своим кодом, и сам не против этого, однако все мы взрослые люди, и никому не хочется, чтобы на нем наживались, поэтому делать код закрытым или открытым остается на усмотрение разработчика.
Поэтому не пишите, пожалуйста, комментарии «о этической стороне», «что закрываемый код и так никому не нужен» или что «данная защита ломается очень просто», да, такая защита ломается. Но данный способ защиты очень сильно замедляет разбор обработки, а стоимость защиты должна быть сопоставима со стоимостью разработки.
(0) разъясни чуть подробней в какой момент и на что именно должна работать защита? На исходные тексты? Или на запуск стыренного расширения, когда тобой было сделано для одного клиента, а этот клиент раздал готовое расширение кому попало
(6) ты думаешь пользователям-покупателям не наплювать, что там "под капотом"?
я тут имею сейчас продукт после внедрения топового франча
(0) "Установить пароль" - более чем достаточно. Если боишься, что - кто то "сворует" твою разработку то воспринимай это как "реклама разработки" - ибо они в любом случае ее бы не купили. Большинство купят и у них даже мысли не возникнет "украсть"
На каждой форме напиши про поддержку, сайт, телефон, все равно твой продукт никто кроме тебя поддерживать не будет, даже если к кому-то расширение попадет "по ошибке" им проще будет потом к тебе обратиться, чем искать со стороны.
(10) Смешно. Украдут не клиенты, а другие программисты и бесплатно поставят лоховатому клиенту чтобы за деньги потом дорабатывать. а то и свой пароль вместо твоего вставят.
(11) Думаешь он прям до setup.exe доведет и коробку сделает? сомневаюсь. Скорее пару общих модулей и всё. Телефоны все стираются легко тем, кто будет этот функционал своими черными пиратскими руками новому заказчику прикручивать.
(17) Ну один человек я думаю не страшно :) Тебя же все равно рано или поздно пасодют а ты не воруй (c)
Если честно сама постановка вопроса странна. То есть ТС планирует что-то написать в расширение, настолько ценное, что больше нигде не найдешь и сам не придумаешь? Закрыть текст - и чтоб на все доработки звали только автора? Что за глупость? Если мне придется нанять человека, и этот человек мне скажет - "я тебе сейчас всё сделаю, но за обслуживанием ты будешь обращаться только ко мне", я его сразу же пошлю нахер, потому что это никаких денег не стоит.
Прошу прощения, но чуть выше на форуме я задал вопрос: "Как добавить через расширения свои документы в журнал кадровых документов", может кто подскажет?
По моему самую лучшую защиту расширений придумала сама фирма 1С: постоянные изменения конфигураций и БСП - вызывают регулярную поломку расширений - тем самым потребитель расширений привязывается к разработчику.
(26) отдельно взятая программа не так быстро протухнет, как примочка к 1С.
Вот поменяют чёньть в кишках (в БСП там, или в общих модулях, или в релизе) - и привет примочке, протухла. А код закрыт.
Я бы такое не брал, даже бесплатно.
(26) подозреваю, что такие есть. но я не знаю ни одного примера программы с закрытым кодом(не лицензия, а именно закрытый текст кода), которую сопровождал бы только один человек и которая бы расходилась как горячие пирожки.
В 1С код воровать - послденее дело.
В 1С - 99 процентов функционала и идей кроется в кнопках, формах, последовательности действий.
Я бы сказал что именно последнее - самое главное. Именно то как сделаен визуальный интерфейс и налажена работа решения.
Вот это воруют.
Код вообще неважен, сколько важна сама работа.
ВЫВОД - закрытый код мало кого волнует. Основной тупик у тех кто не может сделать что то подобное, это как раз не могут наладить и построить джружелюбный интерфейс, а интерфейс ты никак не защитишь.
Даже иногда просто что то пытаются получить, только ради того чтобы понять какие реквизиты, форму сделать.
99 процентов 1Сников кодеры, но все забывают что формы и функционал кроется как раз в последовательности работы.
И вот это большинство не умеет.
Воруют не код, воруют МЕХАНИЗМЫ РАБОТЫ.
(29) а как же я?
У меня закрытые решения (код закрыт), ПО УМОЛЧАНИЮ.
Но я код сообщаю сразу же при первом требовании.
Так вот сколько у меня клиентов получают решения, и 1 процента нет тех кто бы попросил пароли.
Я специально сделал пароль. Потом все удивляются когда его видят. Но я его поставил как раз для того чтобы анализировать запросы от клиентов на предоставления пароля либо жалобы что код закрыт.
В итоге моя статистика такая, что и 1 процента нет тех кто бы спрашивал эти пароли. Вообще единицы. А продажи тысячами.
МОжет это также значит, что я реально сделал работающие программы, в которых нет нужды кому то ковырятся, функционал покрывает все задачи.
И да - удивительно что программисты моих клиентов добропорядочные. Даже очень часто других клиентов приводят.
И кидалова я в общем не наблюдал НИКОГДА.
А вот от тех кто становился ПАРТНЕРАМИ - три кидака, конкретных. Которые и своровали, и соврали, и клиентам врут.
Следующий вывод - работающие программисты более честные, чем партнеры, которые пальцем не ударив, просто хотели денег денег заработать с продаж.
Не стоит доверять тем кто говорит что хочет быть партнером и продавать наработки. Очень высокая вероятность кидалова от "продавцов".
(33) пароль - это другое, уже есть возможность туда залезть, если вдруг ты по каким то причинам не сможешь. плюс, насколько я понимаю твои продукты - это отдельные обработки и модули, которые просто добавляют возможностей и если получится так, что от них придется отказаться, то просто возвращаешься к "исходному уровню".
А кто-нибудь пробовал (2)? Мне кажется из Native API компонент проблематично вызывать методы 1С-ки.
(2) Или как вы предлагаете защищать тексты программ?
Добрый день уважвемые знатоки :). Вот у меня такая ситуация. Разработана конфа что-то типа документооборота одинэсовского, но упрощенная. Клиенты которые заказывали эту конфу очень довольны и говорят их партнеры тоже себе такую хотят. У меня появилась идея продавать ее, но тут встал вопрос. Что помешает ей попасть в интернет и пойти по рукам?
У меня была думка привязать конфу при первом запуске к компу или к сети, но не могу найти вариантов как это сделать? Может кто знает?
И вообще, у кого-нить был подобный опыт? И как наиболее эффективоно защитить свое тварение?
На платформе 8.3
Забыл сказать, пока рассматриваю вариант только с закрытым конфигуратором. Т.е. заходить в модули смогу только я.
(8) Долбодятловский подход.
У тебя договор с ними есть ? В договоре прописано что все что ты делаеш принадлежит тебе ? Не авторство а именно весь код твой ?
Если нет - то ты не имеешь права вырезать его.
(0) Да вот только что было тема
(15) Мне код не нужно защищать, я не хочу чтоб моя конфа запускалась на друзих компах.
(13) 1)Код я не защищаю, про авторство есть пункт, ну там и про код написано, все обработки они не имеют права продавать или использовать на левых фирмах.
(16) (17) у меня есть приемники 8) не в этом вопрос, а втом как не допустить запуск конфы на другом компе.
(18) самая лучшая защита это невозможность самому настроить систему - видел такие разработки, вроде бы работают, но сам ты их хрен настроишь
(18) "я не хочу чтоб моя конфа запускалась на друзих компах" - мало ли чего ты не хочешь. А если у клиента комп сгорел, ему что, по новой у тебя лицензию покупать?
(22) нет не нужно! Ребята, я у вас не юридической помощи прошу, а технический вопрос тут, как можно привязать конфу к компу или к сети.
(29) право на использование..
но будет защита от незаконного использования..
главное не закрывать код
(42) Да обычный документооборот, просто как мне кажется получился довольно удобный и простой в обращении.
(48) не стоит забывать, что защищенные конфигурации могут использоваться как триальные. Глупо выкладывать в общий демо-доступ обрезанные версии со словами - "купите, и будет вам то что надо, мы только в демо это убрали"
(0) смотри мой профиль
можно хасп прикрутить с проверкой в глобальном, а на глобальный модуль поставить пароль, я так делал, но то была семерка, но в восьмерке, что-то подобное можно сделать
(0) Уже упоминалось. Есть нормальный инструмент от 1С для партнеров - СЛК. Всё остальное - полумеры.
Суть - часть модулей выносится во внешние библиотеки, доступ к которым лицензируется.
Одна беда - оно только для партнеров. Кстати, почем они его партнерам продают, если используются программные лицензии, а не аппаратные?
(0) А вот интересный вопрос к чему можно привязать базу на компьютере и как эти данные надёжно получить?
(52) Он ломается, если знаешь как и нет специальных ухищрений за 10 минут.
Автор, ты готов обеспечить работу своего кода без ошибок на любой существующей И БУДУЩЕЙ операционке, в любом программно-аппаратом окружении, без сна и отдыха?
Тогда закрывай, и получай треть от продаж конечным потребителям, у которых нет программиста (2/3 отвалятся, т.к. не донесёшь информацию о нетленке, бОльшая часть остальных часть отвалятся из-за отсутствия главного преимущества 1с-ного кода, открытости и модифицируемости. Часть из купивших вернут его или заставят исправлять специфические ошибки.
Кстати, даже БИТ делает инструменты для деактивации своей защиты, и даёт их своим разработчикам. Видимо, черенок бывает убедителен.
(53) Принципы взлома?
(54) Почитал про технологию защиты. Всего лишь динамическая обфускация, затрудняющая написание универсального декомпилятора. Но вовсе не делающая его невозможным. А в отличие от разового взлома, взломаны будут одновременно все продукты.
(54) Но справедливости для, если бы мне было нужно - я бы, наверное, твой продукт купил. Потому что нужно здесь и сейчас, а когда взломают и взломают ли - бабка надвое сказала. Сильно зависит от темпов роста популярности продукта и защищаемых им продуктов.
(56) Rebelx в одном из роликов показывал взлом через утилиту для 7.7. Нашёл способ и проще, но по этическим причинам промолчу.
(56) при обфускации происходит потеря информации, так что часть данных никак не извлечь, а остальное может превратиться в такой 1С код, что его будет безумно сложно читать и желающих просто не найдётся.
(57) + Ыыыыы! Не, не купил бы :) Мне за глаза хватило бы GoldenKey, о котором я узнал с твоего сайта :)
(58) Речь ведь не об утечке идей, а о том, чтобы просто сделать защищенную конфигурацию работоспособной. Дорабатывать защищенный код ты и платной версии не можешь.
(58) Посмотрел на ролики про взлом. Они предельно невнятные. Говорится всего лишь о том, что автор якобы владеет методами взлома. Я вполне верю, что владеет. Но если этих методов нет в открытом доступе - такой защиты для меня достаточно.
(58) По этическим причинам, кстати, было бы неплохо уведомить авторов защит про найденные дыры безопасности. От этого выигрывают все. Заодно и bug bounty можно попробовать срубить.
(61) У кого как. Скорее обвинение во взломе получишь. И всё равно, на время расшифровки ведь ключ нужен, так что уязвимость небольшая.
(62) Ты о том, что при наличии ключа можно дампить расшифрованные блоки? От такого, наверное, стопроцентной защиты не существует. И это надо целенаправленно ломать конкретную конфу при наличии ключа.
(63) Нет, с дампами не получалось. Я говорю о получении внешней обработки, которая извлекается из файла dat и расшифровывается ключом.
(64) А что это даёт? Я не в курсе структуры СЛК просто. Что делает эта внешняя обработка? Она и содержит тексты шифрованных модулей?
Меня вот сильно заинтересовала концепция шифрования текстов запросов. Реализуется относительно легко и безболезненно. Спрятать несколько больших запросов в ключевых точках - этого вполне достаточно чтобы отбить охоту к халяве для поделок средней руки.
А для конфигураций с большими претензиями уже и СЛК не жалко.
Но при наличии хотя бы одной купленной версии, всё "ломается" мгновенно :) С другой стороны, купившие, как правило, не стремятся способствовать распространению пиратских версий. Ну, и минимум одну версию все-таки купят :)
(68) Ну, конфигурации с лицензированием рабочих мест - это, ИМХО, уже другая лига. В которой СЛК вполне себе оправдывается.
На самом деле, пользователям нужна не столько программа, сколько поддержка. Поэтому, нормально написанные версии и покупаются, так как их могут настроить и доработать под нужды заказчика.
Защищают решение обычно не от жадных пользователей, а от конкурентов, так как кто-то может взять ваше решение, пересобрать его и продавать под своей маркой.
Причём, никакая защита не остановит тех, кто уже имел дело со взломом - они всё равно справятся.
Поэтому, защита должна быть такая, чтобы рядовой пользователь или недопрограммист её не осилил, и не больше.
(65) Создание и использование защищенных обработок аналогично стандартному механизму при использовании конструкции ВнешниеОбработки.Создать(). Хотя там есть и другие способы работы с ключом, но их мало кто использует. Тем более что, например, заменить функцию ПроверитьКлюч на Истина, много ума не надо.
(69) Вот повезёт тем, кто купит решение на сотню мест, сколько всего переписать придётся. :)
(70) Так кто сказал, что эти рабочие места в одной базе или на одном сервере? Всем друзьям-коллегам раздадут, если смогут.
(72) Я правильно понял, что претензии к СЛК только в части защиты внешних обработок?
Обычно, остальная целевая аудитория продукта - это не друзья-коллеги, а прямые конкуренты.
(73) Основная претензия, что она сама на клиентские места ставиться и обновляться не может. Только отдельным установщиком с правами администратора. Если вышло обновление защищённых частей, то операцию надо повторить.
Ключ стоящий у пользователя может расшифровывать обработки-отчёты и файлик с параметрами (по сути структура), а ещё хранить в себе данных 400 байт, которые можно читать-писать зная пароль, и стереть их даже без знания оного. Вроде всё что он может перечислил, маловато функционала.
А ещё помню, там какая-то хитровывернутость была с тем, что ключи в паре работали, а не отдельно.
Про глюки не знаю, но жалуются Чем защитить код тиражного решения .
(73) А партнёры? А дома поработать?
(74) С дистрибьюцией - проблема понятная и ожидаемая. Меня интересовала надежность защиты в основном режиме - вынесение общих модулей. Насколько я понял - тут никаких претензий к надежности защиты нет.
Да ну маловероятно это всё. Продукт ведь будет развиваться. Это каждый раз при выходе обновления специально обученный человек должен его ломать и дистрибьютить по партнерам? Плюс если что не так - то и поддержка на нем? Не проще ли платить за то же самое автору?
(72)
>> (69) Вот повезёт тем, кто купит решение на сотню мест, сколько всего переписать придётся. :)
угу, а оно еще и закрытое.
(0) Сейчас наблюдаю, как потребители изменяют разработанную мною конфигурацию. Кошмар. Идеологии программы они восстановить по текстам не могут. Ноу-хау осталось у меня.
+ нестоит забывать, что многое любят халяву , но немногие готовы раздавать купленное нахаляву.
Приведу простую статистику : у меня в дистрибутиве есть текстовый файл "Внимательно читаем" и в нем почти в самом конце. Спасибо за внимательность .Вам скидка на покупку 30% и спец.код.
За четыре года . только 34 клиента нашли- это очень очень маленький процент из общего количества.
Если мне звонят, и просят помочь, я сразу спрашиваю: пиратка?
- да
- до свидания.
Человек изначально не готов оплачивать работу программиста. Он не ценит мою работу.
+(79) и да, многие подходили и просили "скопировать" то Винду, то 1С - всем, до-свидания, причем аргументировано.
(0) и да лучшее решение - это свое решение.
И всегда нужно помнить , что защита - для законопослушного гражданина.
Думай дальше: сделать проверку на проверку "взлома" твоей программы.
Еще лучше проверку на проверку взлома.
(Эксперементируй)
Лучшая защита - это твоя подержка и развитие продукта.
(Ломанули - молодцы! И вот только теперь твоя проверка.обновиться нельзя (или только с твоей помощью)
(81) Присоединяюсь. Лучше идти вперед и постоянно развиваться, чем цепляться за уже сделанное.
П.С. К слову. У кого-то слышал: любая, самая лучшая идея стоит максимум 20 долларов. А вот стоимость ее реализации уже практически не ограничена.
(0) автор, уже спит и видит как к нему ломятся сотни, нет сотни тысяч клиентов, и суют и суют деньги много денег, только бы получить его нетленку.
(0) лучшая защита это отсутствие документации по настройке:)
А если серьезно, то вполне можно ограничиться лицензионным договором.
Основным преимуществом 1С всегда был открытый код, только большие и малые 1С-долбодятлы стремятся убить это достоинство
(0) Эта защита тупость самая настоящая. Вот конфу ковыряю до сих пор - WMS Axelot 3.
Из-за гребенной защиты уже половину модулей переписал сам. Скоро от защиты то ничего не останется.
(87) +1 что интересно -защита ставится на конфигурации, которые сильно кастомизируется под бизнес-процессы заказчика и никаких обновлений от разработчика уже не ждут. Очевидно, что хащита это цепь для заказчика.
Поубивав-бы этих защитников :)
Честно говоря за то время что кромсаю этот акселот можно было уже свой взять и наваять. Так что уважаемый (0) автор нетленки. Никому на**** твоё решение не нужно. А если и нужно то только лишь с поддержкой.
(76) Нет, переписывать придётся разработчику или деньги возвращать.
(88) Не нравится не бери, не заставляют же.
(90) Ждём вашу версию акселота без защиты?
(91)
>>Не нравится не бери, не заставляют же.
Для этого надо, что нить свое сделать - а для этого мало умения на форуме возмущаться - надо еще, что то уметь делать - а с этим проблема.
>>Ждём вашу версию акселота без защиты?
Долго ждать придется - чуть больше чем вечность.
(93) Так ведь все очень просто - если проблема отсутствует - то зачем покупать чужое и хаять его на каждом углу?!
Гораздо проще написАть свое и наслаждаться жизнью :)
(93) Большинство решений не от 1С имеют защиту, к чему бы это.
Возражений против защиты много, но её всё равно разработчики ставят, а клиенты приобретают лицензии на решения с ней.
(94) +1
(94) . зачем покупать чужое и хаять его на каждом углу?! - с чего вывод о факте покупки чего-то чужого, перечисли углы нахаивания.
защита конфигураций вполне приемлема для ларечников, но применение защиты для систем с >10 пользователей считаю глупостью
(60) Ролики показывают, что методики существуют. И я точно знаю, что не только у меня, например с.м. (58)
(56) ты правильно написал - "динамическая обфускация". Она динамическая не только в пределах одного модуля. Она динамическая во времени - мы выпускаем обновления, а там алгоритмы меняются.
(95) Все, (!)абсолютно все(!) решения 1С имеют защиту от не лицензионного использования - такая защита встроена в платформу.
Данная статья рассчитана на новичков. Далее не последует никаких сложных алгоритмов, математических выкладок или оригинальных приемов использования механизмов платформы.
Этот материал призван ответить на один вопрос: "как доступными средствами сделать простую защиту внешних отчетов/обработок?".
Наверняка каждый, кто хоть немного занимается разработкой в 1С, сталкивался с задачей защиты результатов своего труда. У меня весьма небольшой опыт программирования в 1С, но за плечами имеется разработка, на которую было потрачено не мало сил. Да, на код местами страшно взглянуть; да, до соблюдения стандартов далеко; да, комментариев скорее нет, чем они есть; но созданный внешний отчет справляется со своей задачей - автоматизирует процесс ручного создания специфичного отчета (специфика организации + преемственность).
И все вроде замечательно, пока дело не доходит до взаиморасчетов. Оказалось, что был допущен ряд смертельных для проекта ошибок: от отсутствия ТЗ (я в проект вошел не с начала и в спешке) и согласования с ЛПР до условий приемки работы и ввода в эксплуатацию. Но все это лирика, выходящая за рамки публикации.
На повестке два классических вопроса "Кто виноват?" и "Что делать?". Вопрос с виной оставим ответственным за аналитику, а вот с действиям попробуем разобраться.
Защита и распространение
В описанных реалиях становится актуальным вопрос защиты кода, как для основного заказчика, так и при поиске других потенциальных клиентов.
С этой целью было прочитано несколько материалов и пара-тройка обработок по обфускации. Обфускация в принципе вариант весьма приемлемый, вот только, к сожалению, не всегда работоспособный. Первая обработка не справилась сразу. Вторая - сгенерировала код, который некоторое время функционировал, но при очередном обновлении внешнего отчета начал почему-то выдавать кучу ошибок. Третья меняла только локальные переменные и автор просит за нее 10sm. По запросу дружелюбно предоставил обфусцированный вариант фрагмента, который также не "взлетел".
Казалось, что простые варианты закончились, нужно приниматься за изучение создания внешних компонент или приобрести подписку на платный сервис по обфускации. Пока не попалась весьма примечательная статья (спасибо автору, но источник к сожалению не помню). В самой платформе существует возможность установки пароля на код модуля.
Но как можно установить пароль на код модуля внешней обработки или отчета? - спросите вы.
И вот тут то на помощь приходит механизм расширений. Создаем расширение, добавляем внешний отчет/обработку, заимствуем нужные подсистемы для удобства вывода и выносим критичные участки кода в общий модуль расширения с дальнейшим запароливанием. Вуаля, и мы защитили разработку чуть ли не самым простым способом из всех доступных.
Данный текст не претендует на оригинальность и исключительность. В комментариях приветствуются замечания, альтернативные способы защиты и просто интересные истории по теме.
Компания, в которой я работаю, разрабатывает (в том числе и я) свою собственную отраслевую конфигурацию (автоматизация швейного и ткацкого производства). На сегодняшний день конфигурация находится в стадии бурного развития — внедрили пяти клиентам, еще три на подходе. У клиентов масса пожеланий и мы их, по мере возможностей, реализовываем, и вообще готовим нашу конфигурацию к официальному представлению и размещению на сайте 1С.
И с недавних пор, появилась необходимость защищать нашу конфигурацию от воровства (различных швейных предприятий в Ивановской области немерено), мы провели небольшое исследование о методах защиты кода в 1С и результатами я спешу поделиться.
Штатные средства
Начнем со штатных средств защиты своего кода от копирования. Это можно сделать двумя способами.
Установить пароль на текст модуля.
Меню «Текст» -> «Установить пароль…».
Исключить текст модуля из поставки конфигурации.
Меню «Конфигурация» -> «Поставка конфигурации» -> «Настройка поставки…», нужно выбрать модули, которые требуется скрыть и не забыть включить пункт «Файл поставки может использоваться для обновления».
После этого нужно зайти в меню «Конфигурация» -> «Поставка конфигурации» -> «Комплект поставки…» и сформировать CF-файл со скрытыми от просмотра текстами модулей.
При использовании этих методов код модуля превращается в байт-код, который можно декомпилировать (если захотеть) и некоторые инструменты в помощь начинающим есть в свободном доступе (правда они, насколько я знаю, предоставляют только базовые возможности).
Кроме этого, штатными средствами не удастся спрятать код модуля формы (хотя код модуля объекта спрятать можно).
Обфускация кода 1С
Обфускация — приведение кода в нечитаемый вид. Это можно сделать как при помощи специальных обработок (в недавнем обзоре интересного есть подобный пример), так и при помощи специальных сервисов (Нетленка 1С, например).
Также этот обфускацию можно использовать совместно со штатными средствами — обфускации подвергается байт-код скомпилированных модулей 1С.
Плюсами данного способа является простота (вставил код — получил абракадабру) и возможно зашифровать любой код.
А к минусам относится низка степень защиты — на любой обфускатор можно создать деобфускатор.
Использование внешних компонент
Неплохой метод для случаев, когда ценность представляет сам код (какой-либо уникальный алгоритм, например), а не вся конфигурация. Так как вынесение проверки легальности запуска конфигурации во внешнюю компоненту поможет не более чем установка пароля на модуль.
К плюсам данного метода следует отнести высокую надежность скрытия кода: восстановить 1С код из скомпилированной DLL-ки написанной на C++, например, — это та еще задача.
К минусам же, относиться необходимость переписать код 1С на другом языке (что тоже, зачастую, задача нетривиальная) и большие трудности с отладкой.
Решения сторонних разработчиков
Есть компании которые профессионально занимаются вопросом защиты интелектуальной собственности разработчиков на 1С. Примером можно привести компанию WiseAdvice.
Суть их метода сводится к вынесению части кода в отдельную обработку, которая храниться в каком-либо зашифрованном хранилище. Доступ к это части кода осуществляется при помощи специальной внешней компоненты, которая и определяет доступ к зашифрованной обработке.
К плюсам такого подхода относится высока надежность защиты кода (во многих подобных решениях код в расшифрованном виде появляется только в оперативной памяти и только в момент исполнения этого самого кода) и отсутствие необходимости переводить код 1С в код какого-либо другого языка программирования.
А к минусам стоит отнести саму необходимость выносить код во внешние обработки и некоторые другие сложности связанные с использованием подобных систем.
Делая вывод, можно сказать, что нет абсолютно надежного способа защитить свою конфигурацию от нежелательного запуска (поправьте, если не так). В то же время для защиты частей кода от копирования есть немало надежных решений.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 4, средняя оценка: 4,75 из 5)
Читайте также: