И ещё несколько слов о защите разработок...
Разработка - Защита ПО и шифрование
1) Штатными средствами - т.е. поставка без исходных текстов, т.е. скомпилированный . Эта защита являлась действенной (для меня по крайней мере) до тех пор, пока не понадобилось изменить защищенный таким образом код. Взлом защиты в этом случае состоит из двух этапов - получение из базы (структура ее не документирована) необходимых модулей и декомпиляция их. На данный момент существует как минимум две методики получения необходимых модулей. Создание качественного декомпилятора занимает у специалиста (у меня ) неделю. На просторах интернета в свободном доступе можно найти несколько версий декомпилятора. В связи с этим, защита данным методом считается защитой очень слабой. Тем не менее, некоторые разработчики систем защиты (например АЗК http://www.ailant-distribution.ru/goods/protect/ ) считают, что защита действенна.
2) Портирование кода на другие языки. Надежность защиты в этом случае зависит от возможности восстановления исходных текстов (или логики) и возможности модификации для удаления защиты. С учетом того, что восстановление текста на С++ (например) задача не тривиальная (как минимум для подавляющего числа людей хорошо знакомых с 1С), защиту можно считать надежной. Однако такой же не тривиальной задачей является портирование кода с 1С на С++. Поэтому данный вариант применяется очень редко.
Тиражных решений, которые позволяют использовать этот вариант для защиты конфигураций я не знаю (если не считать таким вариантом СЗК).
3) Вынесение кода внешних обработок (т.е. модулей, которые не являются частью конфигурации, и хранятся в отдельных файлах) в какое-либо зашифрованное хранилище. В этом случае создание объекта такого модуля возможно только при использовании внешней компоненты, которая проверяет возможность работы с таким модулем. Примером такой системы защиты могут служить комплексы СЗК (http://www.1c.ru/news/info.jsp?id=3046), СЛК (ссылку найти не удалось, может кто подскажет?), Интелис: Защита Конфигураций в.1 (http://www.intelis-it.ru/software/intelis/safety.html ). Однако с учетом логики работы 1С с внешними обработками (например, 1С хочет расшифрованный файл на диске как минимум на время создания объекта, ...), есть возможность получить эту обработку как файл и далее взлом защиты сводится к декомпиляции кода (как правило, защищаемые обработки поставляются без исходного текста). Замечу, что такой возможности при использовании системы ИЗК нет — обработка не появляется в расшифрованном виде на диске никогда.
4) Исполнение зашифрованных исходных текстов 1С во внешней компоненте. Для этого могут использоваться как собственные компиляторы / интерпретаторы (например, в СЗК), так и особенности 1С (возможность, доступная только при особой интерпретации документации 1С, используется в Интелис: Защита Конфигураций в.1 и в КЗ (http://keyprotect.ru/ )). Надежность данного метода можно считать высокой, т.к. исполняемый текст появляется только в памяти и только на время выполнения этого текста. Недостатком является сложность отладки такого кода и необходимость обработки конфигурации перед созданием поставки. Таким образом, этот метод стоит использовать для защиты текстов запросов и алгоритмов построения текстов, т.е. объемных, но не сложных по структуре алгоритмов, для создания которых наличие отладчика не обязательно.
Хотя я и сказал, что "надежность данного метода можно считать высокой", это не совсем так. Точнее это зависит от реализации. Методику применненную в СЗК я особо не исследовал, т.к. не нашел реальных примеров. Реализация используемая в КЗ не представляет особых сложностей для взлома. Реализация ИЗК 1 чуть лучше, но со временем я нашел и в ней дыры.
5) Прочие мало применяемые на практике механизмы – например сохранение и выполнение зашифрованных текстов запросов (например это используется в КЗ и в GoldenKey - отдельного сайта я не нашел, пример применения: //infostart.ru/public/78661/ ). Однако, с учетом того, что подавляющее большинство запросов, которые имеет смысл защищать, строятся в результате работы какого-либо алгоритма, данный способ мало применим. Так же в зависимости от реализации этот способ может быть надежным, а может быть только видимостью защиты (как в КЗ и в GoldenKey ) (см. http://forum.infostart.ru/forum24/topic61383/message675325/#message675325 и несколько постов ниже)
Есть и другие варинты - обфускация текстов, ...
6) Обфускация п-кода скомпилированного модуля 1С (т.е. изменение п-кода, таким образом, чтобы 1С могла работать с этим кодом, а декомпилятор не смог бы восстановить исходный текст). Этот метод на данный момент мало распространен, хотя защита в этом случае достаточно высока, по крайней мере до тех пор, пока не будут созданы декомпиляторы, которые умеют работать с таким п-кодом.
С другой стороны, широкое использование данного метода приведет к появлению инструментов, которые будут позволять изменять непосредственно п-код для достижения требуемой задачи (например отвязка от ключа или изменение функционала). Этот медод защиты наиболее трудоемок для взлома на данный момент, поэтому я считаю его наиболее надежным.
На момент написания этих строк, существует единственное тиражное решение использущее эту методику: Интелис: Защита Конфигураций в.2 (http://www.v8-zk.ru , http://www.intelis-it.ru/software/intelis/safety.html , //infostart.ru/public/68368/ ) и не существует инструментов, позволяющих получить исходный текст защищенного модуля.
Принцип обфускации кода для защиты от декомпиляции основан на том, что при компиляции конструкции языка 1С транслируются в определенные последовательности команд исполняющей машины. Конкретные конструкции в конкретные последовательности. На этом строится алгоритм декомпиляции. Если же заменить эти последовательности команд на идентичные по логике но отличные по составу команд - декомпилятор не может распознать исходную конструкцию. Если же новая последовательность будет к тому же случайной по составу команд (но не по общей логике) то задача декомпиляции еще усложнится.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Защита ПО и шифрование Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)
Настоящее современное криптостойкое шифрование с помощью сертификатов.
9 стартмани
01.09.2026 1111 0 SerVer1C 9
Защита ПО и шифрование Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Россия Абонемент ($m)
Дешифровка PEM файлов с SGN пакетом. PEM - стандартизированный текстовый формат текстовых контейнеров, используемый для безопасного хранения и передачи криптографических ключей, SSL/TLS-сертификатов и запросов на подпись (CSR). (Privacy-Enhanced Mail). SGN - стандартизированное расширение файла, содержащего отсоединенную (detached) электронную цифровую подпись для целевого документа. Пример файла: reportfile.zip.sgn.pem
1 стартмани
21.08.2026 752 0 DrZombi 1
Защита ПО и шифрование Разработчик 1С 8.3 1С:Розница 2 Бесплатно (free)
Учебная обработка показывает, как 1С шифрует номер карты публичным ключом RSA перед отправкой в платёжный шлюз и подписывает тело запроса - на чистом встроенном языке, без COM, .NET и внешних компонент. Почти все реализации RSA в 1С зовут .NET через COM, а он требует регистрации сборки и не работает на Linux и в тонком клиенте. Здесь RSA написан целиком на BSL: длинная арифметика, деление Кнута, возведение в степень по модулю. Корректность сверена с эталоном на больших числах байт в байт. Демо-ключ 256 бит, всё локально, одной кнопкой. Код открыт.
07.08.2026 1272 13 nedomolkov.ivan 2
Защита ПО и шифрование Разработчик Бесплатно (free)
Платёжный шлюз принимает номер карты только зашифрованным по RSA, а почти все реализации RSA в 1С зовут .NET через COM - и это молча ломается на Linux-сервере, в тонком клиенте и на голой Windows без regasm. Разбираю, как написать RSA целиком на встроенном языке: как хранить большие числа лимбами по основанию миллион, откуда берётся деление Кнута и square-and-multiply, почему первая версия считала 25 секунд и как это ускорилось в 8 раз. С проверкой байт в байт против внешнего эталона на больших числах.
07.08.2026 2090 nedomolkov.ivan 3
Защита ПО и шифрование Разработчик 1С:Предприятие 8 Бесплатно (free)
Платформенная защита модулей конфигураций, внешних обработок и расширений 1С легко «взламывается» общедоступными декомпиляторами, а использование СЛК (Система лицензирования и защиты конфигураций) часто избыточно из-за необходимости установки дополнительного ПО и покупки ключей. Рассмотрим использование методики защиты логики через обфускацию байт-кода, а именно частный случай использования метода, который позволит привязать решение к «железу» пользователя без использования внешних компонент и онлайн-активации.
19.02.2026 4635 1c-izh 10
Защита ПО и шифрование Разработчик Бухгалтер Пользователь 1С:Предприятие 8 Россия Абонемент ($m)
Обработка для подписи с помощью сертификата (ЭЦП) произвольных файлов, средствами платформы 1С.
5 стартмани
19.06.2025 2601 4 krundel 2
Защита ПО и шифрование 1С:Предприятие 8 Абонемент ($m)
Как спрятать свои секретные файлы от глаз любого? Всё просто, прячем все свои файлы (видео. документы, архивы, фото, да вообще любые файлы) в картинку или фото. Картинка при этом остается такой же красочной и визуально не изменившейся (лишь подрастет её вес). Стало интересно? Посмотри, как это делается, на скриншотах, если лень читать описание.
1 стартмани
03.06.2025 3212 user1195929 13
Защита ПО и шифрование Разработчик 1С:Предприятие 8 Абонемент ($m)
Статья посвящена практическому применению XOR-шифрования в среде 1С:Предприятие. Рассматривается теоретическая основа операции XOR, её особенности как метода шифрования, а также преимущества и недостатки в контексте защиты данных. Подробно описываются методы реализации XOR-шифрования и дешифрования на языке 1С, включая примеры кода и практические сценарии использования, такие как шифрование паролей, защита конфиденциальных данных в файлах и передача зашифрованной информации между системами. Обсуждаются аспекты безопасности, выбор ключей, а также интеграция с другими механизмами защиты данных в 1С. Статья ориентирована на разработчиков 1С, стремящихся повысить уровень защиты информации в своих решениях.
1 стартмани
09.04.2025 4926 user1195929 6
2. На самом деле вариант это применяется достаточно часто, т.к. действительно является самым надежным.
3. Любую защиту, которая сохраняет что-либо в открытом виде на диск даже рассматривать не имеет смысла.
4. Надежность этого метода не выше, чем при сохранении кода на диск. Пример первой версии КЗК явно доказал, что взломщику безразлично в памяти код сохраняется или на диске. Если код появляется в открытом виде, значит защиты считай уже нет.
5. То же, что и предыдущий пункт.
6. А вот это единственный достаточно надежный вид защиты для тех, кто не хочет платить за вынос функционала в dll.
1 Защищенный код дорабатываетс, когда нет оригинала :)
2 В общей массе очень мало примеров, из этого я сделал вывод что редко. Есть примеры? я могу вспомнить только ИТРП
3 но не стоит забывать, что 1С сама пытается сохранять на диск открываемые обработки
4 не правда. это уже не вскроешь на коленке, без использования каких либо дополнительных инструментов кроме мозга и 1С. также мне интересно, как снять дамп, когда текст появляется в памяти на долю секунды?
5 я согласен, что это слабая защита
6 это очень спорный момент, например я уже практически сделал для себя редактор п-кода
Это примерно как разбираться с дизассемблированным кодом - при достаточно больших объемах кода понять суть алгоритма практически невозможно (я говорю про обфусцированный п-код). Дело усугубляется тем, что нет отладчика в таком режиме. Конечно, при очень большой настойчивости, взломать можно практически всё)) Но в любом случае такой взлом не будет хоть сколько-нибудь автоматизирован и следовательно доступен широким массам. Разработка же специализированных декомпиляторов обфусцированного кода - задача на порядок сложнее разработки декомпиляторов простого п-кода, и при этом результат все равно не будет сколь-нибудь удовлетворительным, так как в обфусцированном коде происходит большая потеря информации по сравнению с просто п-кодом (в простом п-коде потеряна информация только о комментариях).
для себя я принял позицию - для возможности лицензирования использования.
в этом случае есть привязка к ключу, файлу лицензий, ...
т.о. взлом считается выполненым, если система запустится и будет работать без ключа.
для выполнения этой задачи не обязательно анализировать полностью весь код, достаточно найти условие проверки ключа, и его изменить / удалить.
поэтому я считаю наиболее надежным на данный момент средством защиты - шифрование обработок. кстати говоря это наиболее простое средство.
(6)
1 да, но разработчик закрыл все и тексты не давал :)
2 т.е. других примеров нет? да, некоторые конфигурации так защищались, но очень мало
3 "но не стоит забывать, что 1С сама пытается сохранять на диск открываемые обработки" - тут важное слово "пытается" :) (в случае использования ИЗК)
4 и тем не менее такая защита активно используется - Катран, для взлома не надо никаких инструментов. а отладчик (не 1С) - это уже большая проблема для 99% жаждующих
5 -
6 не стоит забывать, что автоматизировать создание грамотно "обработанного" п-кода практически довольно трудно. а с учетом простоты используемой виртуальной машины, анализ п-кода человеком да еще при наличии "дизасемблера" не представляет сложностей
---
1. На фиг такого разработчика.
2. Ну, перечислю я несколько фирм, о которых ты даже не слышал, легче от этого станет? Хочешь считать, что не распространено, считай. Я только на основании своего опята высказался.
3. Еще раз - по фиг где и на сколько появаляется обработка в открытом виде. Если она появилась, то она уже не защищена.
4. Что-то я не видел удачных взломов Катрана. Можно какую-нибудь ссылку? 99,9% страждущих не будут сами даже пытаться что-либо взломать. Они просто кинут на любом форуме просьбу и тут же найдется 0,1% для которых отладчик - дом родной.
5. -
6. Отложим это на некоторое время. Ты уже кинул подобную заяву в другой ветке (на которую тут ссылаешь) и на мое встречное предложение пока как-то не сильно отреагировал.
2(24) Т.е. ты предлагаешь своим клиентам самим писать запускающие обработки, разбираться какой еще нужен софт и т.д.?
если кому-либо из наших клиентов понадобится защитить одну отдельно взятую обработку, мы поможем ему в этом вопросе. но в плане разбираться какой нужен софт - ВЕСЬ нужный софт поставляется вместе с комплектом разработчика ИЗК
А вот как запустить полученный от тебя файл - это, похоже, не тривиальная задача. Именно в этом, наверное, и состоит главная фишка защиты?
наш вариант отличается только тем, что используется механизм лицензирования HASP SRM, который можно использовать и для ограничения лицензий в сети.
т.е. обработка, защищенная ИЗК может считать количество экземпляров, запущенных в сети (правда только при наличии физического ключа).
Абсолютно не измененная 1С запросто понимает, при условии наличия precomp.dll, которая и компилирует p-коды. Т.е. все абсолютно так, как и должно быть ;)
1. Код, который требует доработки, ни в коем случае нельзя защищать. Это азы корректного отношения с клиентом.
2. У нас очень разный взгляд на общую массу. В моей лично практике (особенно до появления КЗК :)) практически все защиты были именно на этом основаны. ИТРП - это просто самый яркий пример из-за своей распространенности.
3. Именно поэтому кодировать разработку целиком (а не только код) особого смысла не имеет.
4. Мне кажется, что "защиту", которая вскрывается просто "на коленке" без каких-то средств, даже упоминать нет смысла. И совершенно не важно на сколько появляется в памяти код. Да хоть на один такт процессора. Ставим точку останова в отладчике и получаем все, что хотим. Естественно, я не про отладчик 1С говорю.
5. -
6. Ну и что даст это редактор практически? Автоматизировать восстановление грамотно "обработанного" п-кода практически невозможно. На выходе получится исходник, который придется практически полностью переписывать ручками. Так зачем тогда вообще что-то декомпилдировать? Проще уж сразу переписать защищенный код, как это делается для кода, зашитого в dll.
(4)могу продемонстрировать (но нужен ключ), ссылки не дам, ибо сам не видел, и описывать процесс не буду. скажу только что вариантов несколько. %% - ты занимаешься взломом за деньги? я нет, т.е. одним из 0.1% меньше.
Итог:
я никогда не хотел сказать что КЗК - г..., тем более что ИЗК разрабатывалась под 8.1 и никак иначе, а КЗК работает только под 7.7.
и вообще, тема была о методах защиты в принципе и возможных реализациях в частности.
Система ИЗК использует методику (3) и (4) для реализации лицензирования конфигураций на 8.1. Но в принципе может использоваться с минимальными трудозатратами и для защиты отдельных обработок.
я считаю, что АЛьФ умный человек и хороший специалист, не смотря на то, что планирует вывести на рынок конкурирующий продукт.
я считаю, что система лицензирования HASP SRM лучшая из имеющихся на рынке.
я знаю, что системы защиты от Катран ломаются за 5мин
я знаю, что любая система защиты ломается, только время может быть разным
Хочу еще только добавить, что ко мне недавно обратились за помощью в защите разработки под 8.1, я первым делом порекомендовал посмотреть ИЗК. Люди посмотрели, им это показалось слишком заморочным и не тривиальным в использовании. В итоге они опять вернулись ко мне с просьбой вынести функционал в dll.
Я это к тому, что дружественней надо быть к потенциальным клиентам, а не давать им непонятное нагромождение в расчете, что они сами во всем разберуться и купят ИЗК. Ближе надо быть к народу.
использование ИЗК - в версии 1.04 (скоро) будет я надеюсь более понятно.
(46) запустить обработку в нужной конфиге - надо написать соответствующий код. что именно написать - для этого есть комплект разработчика ИЗК. Достаточно с помощью конструктора понять, какие шаги надо выполнить, и скопировать созданные тексты в реальную конфигу.
типа сама шифрует, сама запускает - да одна компонета выполняет всю работу. а приложенная конфигурация/обработка (SDK) - демонстрирует возможности компонеты, и методы работы с ней, и не предназначена для глобальной автоматизации установки защиты и ее использования.
Альф ждемс твой продукт по защите 1С 8... делай его в русле КЗК-2 и ты всех своих конкурентов заткнешь за пояс (конкуренты без обид)
- не вопрос :) а только ты найди такую точку - все же в открытом доступе, бери да ломай
а концепция Альфа - была реализована в платформе 1С 8.x - поставка без исходных текстов, и этот скомпилированный код как не странно тоже шифровался и расшифровывался перед выполнением полностью (Альф поправь если я не прав). Т.о. задача сводилась к декомпиляции. Для 8.х эта проблема решена, а для 7.7 наверное просто небыло людей, которые захотели бы заплатить за взлом
Что в этом сложного?
1) мы не позиционируем систему ИЗК как механизм защиты отдельно взятых обработок, а как пакет, позволяющий лицензировать использование конфигураций в целом. Для облегчения этой задачи был создан конструктор исходного текста на языке 1С. Т.е. в простейшем случае не надо писать ни одной строчки - комплект разработчика выдает готовый код (при этом можно выбрать даже язык представления методов компоненты - RU/EN)
2) в случае возникновения у нашего клиента задачи защитить одельно распространяемую обработку - эта задача достаточно легко решается. И для защиты обработки не надо каждый раз писать еще одну - конверт достаточно сделать однократно, и в него можно вкладывать любую обработку (или если надо - несколько)
3) Если бы для работы конфигурации/обрабоки, защищенной ИЗК не требовался бы ключ HASP, мы бы тоже обошлись бы одной dll. Но это не изменяет подхода - требуется открытый текст, который запускает защищенный функционал. В КЗК этот текст в модуле обработки, в ИЗК - должна быть отдельная обработка, у которой в макете (например) лежит защищенная обработка и dll.
4) но ИЗК требует для работы ключ. Он используется в т.ч. и для лицензирования. И система лицензирования HASP SRM была выбрана не случайно - более гибкой настройки схем лицензирования не предлагает ни один разработчик систем защиты.
единственно, ПЕРВЫЙ раз, на закладке "Установка параметров ключа" надо нажать ссылку "Зашифровать код разработчика".
все необходимые файлы лежат в каталоге "C:\Program Files\1cv81\tmplts\Intelis\ИЗК\1.03\ДемоДанные\",
кроме компоненты, она лежит в каталоге "C:\Program Files\1cv81\tmplts\Intelis\ИЗК\1.03\"
система запоминает указанные параметры для в зависимости от введенного имени объекта.
я лично реализовал два метода из описанных:
- методика 6
- методика 3
а так же я реализовал методику промышленного взлома защиты СЗК и ИЗК1 (т.е. любой вариант по методике 3) - но это "только для сэбэ" или за вознаграждение.
Как разработчику мне конечно хотелось бы защитить некоторые свои разработки от нелегального копирования.
Однако как клиент я сам никогда не куплю конфигурацию с закрытой частью исходного кода.
Единственное применение защиты, которое я считаю приемлемым - демо версии.
Однако для демо версии не может идти речь ни о каких ключах защиты.
В остальных случаях - я за открытый исходный код!
Те же, кто готов предложить что-то действительно уникальное и ценное - тот пишет код на универсальных языках и продаёт дистрибутивы с экзешниками и длл-ками, под х32 и х64, с поддержкой разных поколений Windows.
Во многих западных странах все с этим гораздо хуже.
Раздражают такие диванные специалисты, которые чуть что, типа "Россия, и этим все сказано".
Сами максимум на дачу ездили, знатоков из себя строят.
Назовите отладчик, пожалуйста!
Обо мне: защиту ломать самому не приходилось, платить за это - тож не собираюсь. Ключ от конфигурации (Катран) - имеется. Хочу лишь сам для себя проверить верность утверждения о возможности достаточного быстрого извлечения псевдо-кода. Пока результат такой: пол часа ушло на извлечение всех секций, кроме "Cmd", которая размыта в памыти и собрать ее не получается.
Вот и думаю "Может знающие люди не тот отладчик юзают"?
Спортивный интерес, но вот уже неделю не сплю... знаю, вытащить можно, но не получается.
Пытался освобождать память, перезагружался много раз, каждый раз по разному видно, но дальше определенной строчки ни разу не видел.
Прошу помощи гуру по создании дампов, может надо как-то память дефрагментировать? Или плюнуть и искать способ
МенеджерОбъекта.Записать() (метод объекта не обнаружен.
МенеджерОбъекта это внешняяобработкаобъект, у которого есть имя которое ведет в temp, на файла этого там нет.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 57362
Создание 30.10.08 12:11
Обновление 19.06.20 09:18
Просмотры 47505
Загрузки 0
Рейтинг
89
Комментарии 82
Код открыт Да
Рубрики Защита ПО и шифрование
Кому Разработчик
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)