Защита модулей обработок, отчетов и конфигураций от нежелательного просмотра, изменений и декомпиляции

Программирование - Защита и шифрование

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

Как пользоваться обработкой: выбираете файл, который необходимо защитить и нажимаете кнопку. 

Обработка ищет все модули, на которые установлен пароль и защищает их, запутывая байт-код. 

Результат действия защиты модулей на примере многим известного декомпилятора:

Обработка так же заменяет имена локальных переменных и имена локальных методов. Так же проверяются и не меняются методы-события, однако есть вероятность, что какой то метод-событие может быть случайно изменен. В таком случае есть возможность вручную указать методы, имена которых следует изменить:

 После выполнения в том же каталоге создается файл защищенный файл обработки с добавленным "_P" к имени. 

Рекомендации по усилению защиты:

1. Не давайте осмысленные имена важным экспортным методам и переменным типа "ЭтоПравильныйСерийныйНомер"

2. Используйте экспортные методы только для вызова локальных методов:

 
 ПРИМЕР

3. Шифруйте (например при помощи capicom) или вычисляйте важные значения (если таковые есть), присваиваемые переменным.

 
 методы для работы с capicom

4. Будет лучше, если в важных местах для проверки условий добавите функции:

 
 ПРИМЕР

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

6

Скачать файлы

Наименование Файл Версия Размер
Защита модулей:
.epf 106,96Kb
10.05.18
5
.epf 106,96Kb 5 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. kalyaka 396 11.05.18 10:00 Сейчас в теме
Антитезис: обработка сделает все возможное чтобы максимально затруднить использование Ваших решений :) Если Вы пишете простой, понятный, сопровождаемый код, то Вы все делаете неправильно! Обработка решит Вашу проблему, но и Вы можете помочь ей, следуя рекомендациям "правильного" написания кода, данным в статье.

Ну а если серьезно, то такое решение имеет специфическое применение: в системах шифрования, ведения персональных данных и т.д. Т.е. в системах изначально ориентированных на защиту данных, в том числе через защиту алгоритмов, защищающих эти данные.

Применение же такой обработки для защиты решений, встраиваемых в другие системы с открытой архитектурой не вижу смысла.

Защита же интеллектуальной собственности имеет смысл, если эта собственность имеет очень большую ценность с одной стороны и большую стоимость создания с другой - иначе при наличии спроса вероятнее найдется "свободное" решение и будет использоваться оно, а не закрытое. "Свободное" решение выигрывает за счет использования потенциала большого количества участников свободных сообществ (например github, infostart), а защищенное лишено таких возможностей.
Terve!R; lunjio; bulpi; Kott01; +4 1 Ответить
2. ice-net 14 11.05.18 10:14 Сейчас в теме
Для защиты решений от "неоплаты" вполне себе годная вещь. Плохо, что есть вероятность что-то сломать при кодировании.. Код закрыт?
5. boris.danilin 34 11.05.18 12:13 Сейчас в теме
(2) да, вероятность поломки есть и её не избежать. Код закрыт.
4. boris.danilin 34 11.05.18 12:09 Сейчас в теме
(1) Не первый раз обсуждается и всё равно разработчики нет нет - да и пытаются как то защитить свои труды зачем то. Демо версии обфусцируют, пароли на модули ставят и делают поставки без текстов.
8. d.zhukov 258 12.05.18 09:00 Сейчас в теме
(1) Приведите мне хотя бы одну причину, почему я не должен защищать свое коммерческое решение, в которое вложены огромные труды? Знаете ли, есть куча желающих перетянуть основной механизм, после просто навешать своих кнопочек и выдавать за собственную разработку, сделав цену немного ниже моей. Мне что в этом случае делать, как пострадавшему от плагиата и потери потенциальной прибыли? радоваться "звездочке", которую он мне поставил скачав мою обработку? нет уж спасибо)
9. kalyaka 396 12.05.18 21:47 Сейчас в теме
(8) Я исхожу из интереса потенциального покупателя Вашего ПО. Если покупатель заинтересован в использовании ПО, то его могут интересовать следующие его характеристики: качество, безопасность, сложность.

Качество - это потенциальные риски неоправданных ожиданий и дополнительных затрат.

Безопасность - потенциальные угрозы ПО: уничтожение данных преднамеренное или нет, кража данных.

Сложность - риск потенциальных затрат на сопровождение и также наличие ошибок.

Данное решение увеличивает риски по приведенным характеристикам. Т.о. конкурентных преимуществ защита ПО путем закрытия кода не будет приносить и при прочих почти равных условиях выбор будет в пользу открытого ПО.

Еще есть такой эффект как "коммодитизация ПО", который выдавливает коммерческие программные продукты в пользу отрытого ПО (см. подробнее в Николас Карр "Блеск и нищета ИТ")

Кстати, можно проанализировать выложенное на Инфостате коммерческое ПО и посмотреть продажи ПО с отрытым кодом и закрытым. Я попробовал посмотреть и заметил, что если код открыт, то это прямо упоминается в описании, а если закрыт - обычно нет.
10. d.zhukov 258 13.05.18 06:47 Сейчас в теме
(9) Качественно реализованное решение прямо сказывается на результат его работы. не думаю что большинство полезет в модуль объекта для оценки данной характеристики. На счет безопасности.. ну начнем с того, что язык 1с не предназначен для поиска паролей или пин-кодов на компьютере пользователя. Тем более если хотя бы один покупатель решения заметит подозрительные процессы и заявит об этом на инфостарте, поверьте проблем разработчику хватит. Потенциальные затраты покупатель может выявить сам, да и в любом случае можно заранее все уточнить у разработчика.
3. yurii_host 1832 11.05.18 10:34 Сейчас в теме
Я использовал эту, и ее модификацию для управляемых форм (эту).

Чем ваша обработка лучше, чем ее аналоги, уже проверенные временем?
6. boris.danilin 34 11.05.18 12:21 Сейчас в теме
(3) Это не аналоги. Изменить обфусцированный код модуля 1С значительно проще, чем разбираться в скомпилированном байт-коде.
grumagargler; +1 Ответить
7. raietchie 11.05.18 12:21 Сейчас в теме
(3) +
Monkey Coder, очень хорошо себя зарекомендовала ...
11. Tatitutu 3721 13.05.18 15:16 Сейчас в теме
11 лет продаю коммерческое решение - MAGAZKA - программа для розничного магазина
Основной код закрыт , но это не мешает никому - тех.поддержка 24 часа 7 дней в неделю 365 дней в году

Все "детские" болезни вылечены.
Любой объект можно заменить на свой.
внешние обработки и отчеты и внешние печатные формы.

14 стран , более 4000 клиентов ...
И только свои коллеги программисты иногда "сетовали" на то что код закрыт - остальным - главное чтобы качественно работало
12. klinval 262 24.05.18 13:52 Сейчас в теме
(11)
Основной код закрыт , но это не мешает никому ...
И только свои коллеги программисты иногда "сетовали" на то что код закрыт - остальным - главное чтобы качественно работало

Обращались ко мне уже давно по вопросу доработки Вашей программы. Закрыто как по мне на самом деле много. Сделал для себя такой вывод, т.к. помочь по абсолютному большинству вопросов не смог из-за закрытости кода. Отправил к Вам.
13. sytkosa 16.08.18 20:58 Сейчас в теме
(0) Где ссылка на автора этой обработки? Хотя его уже и нет среди нас, пусть земля ему будет пухом. Про 10 стартмани вы конечно прикольнулись :) аналогичная обработка гуглится легко и непринужденно.
14. boris.danilin 34 16.08.18 22:17 Сейчас в теме
(13) Вы, уважаемый, часто стремитесь к таким сомнительным сатанинским ритуалам, как пытаться хоронить ещё живых людей или такое случается только по четвергам? Да ещё комментарием номер 13. Бесовщина какая то, свечку бы за упокой Вашей души поставить, так не поможет ибо атеист :) Ладно, по сути: дайте ссылку на аналогичную обработку или подскажите запрос для гугла, чтобы её найти. Искал, не нашел. Нашел бы, не писал обработку. Сейчас поискал - нету. Если и правда есть, буду только рад этому.
15. sytkosa 18.08.18 16:14 Сейчас в теме
(14) Меня уважаемый, ввел в заблуждение скрин с декомпилятором автором которого является _awa_ которого к сожалению уже нет с нами. По сути не разобрался в теме вашей обработки, признаю мой косяк. У данного автора также был свой обфускатор который делал аналогичные действия что и ваша обработка. Вот про него и имелось что его можно найти во всем известном месте.
16. boris.danilin 34 20.08.18 07:06 Сейчас в теме
(15) А, тогда наоборот благодарю Вас. Вы указали на недостаток в описании. И правда, никак не указано, что этот скрин - это результат обфускации байт кода и многим известный декомпилятор тоже "спотыкается". Того, что автора нет среди нас - не знал. Для меня это новость, печальная новость, пусть земля ему будет пухом. Его декомпилятор обфусцирован, но самого обфускатора, которым это сделано, я к сожалению, не видел.
17. Denis_CFO 8 20.08.18 08:05 Сейчас в теме
(16)
самого обфускатора, которым это сделано, я к сожалению, не видел
по его AWA (RIP) высказываниям на форуме - это его собственный обфускатор и в сеть он его не выкладывал.
Кстати,
(16)
декомпилятор тоже "спотыкается"
это вообще не сложно сделать, достаточно в байт коде добавить несуществующий оп-код команды, или "не ожидаемое" число параметров.

А редакцию для УФ будете делать?
18. boris.danilin 34 20.08.18 09:56 Сейчас в теме
(17)
это вообще не сложно сделать, достаточно в байт коде добавить несуществующий оп-код команды, или "не ожидаемое" число параметров

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

А смысл? Если у кого есть необходимость заколдовать своё творение, то необходимость создания чистой конфиги для этого не будет великим препятствием. Разработки на УФ она может защитить так же, как и на обычных.
Оставьте свое сообщение