|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Защита кода конфигураций и обработок в 1С8х Введение В «восьмерке», также как и в «семерке» защита исходного кода штатными средствами не является достаточно надежной. В Интернете можно найти способы и средства для взлома защищенных конфигураций 1С. Относительно легко снять пароли на вход, как в режим «Предприятие», так и режим «Конфигуратор», а в версии 1С8х, где вместо исходного кода можно оставить только интерпретируемый байт-код, имеется возможность декомпилировать псевдокод в исходное состояние, хотя и без сопутствующих, первоначально, комментариев. Однако в большинстве случаев штатных средств 1С вполне достаточно для «защиты от дурака». Проблема возникает, когда существует необходимость защитить конфигурации от специалистов, заинтересованных во взломе, например, при распространении полнофункциональных демо-версий через Интернет. Поэтому если возникает потребность в использовании серьезной защиты, то необходимо применение нештатных средств. Те, кто уже заработал достаточно средств на своих программах, может использовать коммерческие решения от сторонних фирм, но для тех, кто только планирует разместить свои конфигурации, да еще на бесплатных сайтах, платить за защиту программ, которые не факт, что окупятся, не всегда есть возможность. Конечно, многие предложат выкладывать собственные программы безо всякой посторонней защиты, если они еще достаточно сырые, однако у авторов разработок на этот счет могут быть иные мнения. Другой вариант, это попытаться применить собственные нештатные средства, тем более что такое нередко встречается на практике. Применительно, к восьмой версии 1С задача может быть сформулирована более конкретно. Как самостоятельно защитить от декомпиляции байт-код 1С8х, так чтобы это не повлияло на работу интерпретатора данного псевдокода? Иначе говоря, как сделать, чтобы пи-код был легальным с точки зрения интерпретатора и нелегальным с точки зрения декомпилятора? Немного теории Известно, что языки высоко уровня (ЯВУ) делятся, по способу выполнения своего кода, на две большие группы: интерпретируемые и компилируемые. Интерпретатор выполняет промежуточный, предварительно оттранслированный код, который затем преобразуется в непосредственный код процессора, а компилятор готовит родной машинный код в виде исполнимого файла, для выполнения его средствами операционной системы. Здесь важно отметить тот факт, что декомпиляция бинарного кода хотя и возможна, но уровень декомпиляции (код ассемблера либо жалкое подобие языка Си) практически не позволяет эффективно использовать декомпилированую программу целиком. Зато промежуточный байт-код любых интерпретируемых языков относительно легко восстанавливается в исходный вид. Достаточно вспомнить про декомпиляторы Visual FoxPro, Java, Adobe Flash и т.п. Таким образом, перед нами стоит задача, если не защитить от декомпиляции байт-код 1С (что довольно трудно сделать без посторонних средств), то хотя бы максимально затруднить восстановление кода и его осмысление. Первое, что приходит на ум это обфускация или запутывание и усложнение кода для понимания и восстановления. И действительно, данный метод широко используется в защите конфигураций и обработок 1С, например, AWA ( http://infostart.ru/profile/13819/ ) таким образом защищает собственные обработки вроде, Декомпилятор1Сv8.epf, что подтверждается его словами: «если выдается сообщение, что "Возможно, модуль обфусцирован", в 99.9 процентах случаев модуль действительно обфусцирован. Обфускаторов байт-кода существует много, самый известный - WiseAdvice. После некоторых обфускаторов кода можно восстановить корявый текст, однако в открытом доступе таких средств на данный момент нет.» ( http://helpf.pro/files/view/60.html ). Тем не менее, он ничего не говорит о принципах самой обфускации, хотя для своих разработок он использует собственную обфускацию. Чисто теоретически принципы обфускации сформулировать нетрудно. Это: 1. Замена осмысленных пользовательских имен переменных, меток, функций и т.п. на бессмысленные. 2. Удаление форматирование текста, т.е. представление всего кода программного модуля в виде одной длиной строки. Хотя на самом деле это слабая защита, достаточно поставить символы перевода строк после каждой точки с запятой. Легко добавить и другие автоматические средства восстановления форматирования кода. 3. «Раздувание» кода за счет малополезных и не слишком эффективных действий и вычислений. Например, чтобы получить заранее известный параметр либо логическое условие, выполняется масса бестолковых операций, в конечном итоге выдающих гарантированный результат. 4. Замена простого и естественного кода на более сложный и менее понятный эквивалентный код. Например, все операторы выбора и циклов заменить сложными условными и безусловными переходами. Причем, за счет злоупотребления оператором «Перейти ~Метка;» можно строить чрезвычайно запутанный и малопонятный код. Данные принципы действуют на уровне ЯВУ. Но можно предложить достаточно эффективный метод, на уровне байт-кода, который заведомо положит на лопатки любой декомпилятор, пытающийся восстановить исходный код. Этот метод мы назовем методом «мусорных ям». Принцип его действия прост. Нужно, с помощью блоковых операторов, таких как операторы выбора, циклов, попытки- исключения, неиспользуемых процедур и функций, операторов безусловного перехода и т.п. сформировать области кода, которые заведомо не получит управление. Например, как в операторе вида: Код: sql 1. 2. 3.
Естественно, что это может быть реализовано менее явным образом. Затем в полученном байт-коде заменяем легальные команды мусорного кода на произвольный байт-код, например, нелегально используем легальный код, скажем, применяем стековые команды к пустому стеку, либо к чужим данным. Либо заменяем исходный байт-код на нелегальный или несуществующий псевдокод, который заведомо обрушит любой декомпилятор, пытающийся выполнять команды на уровне формы (заметим, что интерпретатор выполняет пи-код на уровне его содержания). А поскольку интерпретатор никогда не получит управление на ложный байт-код, то он никогда об него и не споткнется. Зато, декомпилятор, пытающийся восстанавливать весь код, сломает себе шею на бессмысленных командах. Его типичные сообщения при этом будут: «Выход за пределы стека либо индексов массивов» и «Несуществующая либо невыполнимая команда псевдокода». И действительно подобные сообщения выдает декомпилятор 1С от Авы, когда с его помощью пытаются декомпилировать его самого либо обфусцированный как надо исходный код. Таким образом, нас вполне устраивает подобный уровень защиты, который хотя и не абсолютный, зато может быть бесплатным и отсечь достаточный процент недобросовестных пользователей. Ну а от суперхакеров и профессиональных взломщиков защищаться особого смысла нет, эти ребята достанут и чёрта лысого из его нычки. Как правило, из любой нетривиальной идеи всегда можно получить нетривиальные выводы. Посмотрим, что нас ожидает в нашем случае. Первое, мы пришли к пониманию, что есть два вида интерпретаторов, одни выполняет команды на основе их содержания, а другие на основе их формы. Например, условные команды на уровне содержания: Код: sql 1. 2. 3.
присвоят переменной a числовое значение 123. А те же команды на уровне формы вернут строку текста: « a = 123». Т.е., в первом случае мы получаем числовую переменную, а во втором конкретную строку. Это различие, в принципе естественное, но не очевидное. Кстати, рассматриваемые нами декомпиляторы являются интерпретаторами формы. А интерпретатором содержания будет интерпретатор байт-кода 1С. Второе, данный метод защиты годится не только для интерпретируемого кода, но и для компилируемого. Действительно, размещая в уже скомпилированном коде, в областях закрытых для управления (помеченных заранее известным мусорным кодом), бессмысленный код, мы положим на лопатки любой декомпилятор или лучше сказать дизассемблер, даже такой как IDA PRO. Т.е. дизассемблерный листинг мы, скорее всего, получим, но местами абсолютно бессмысленный и не доступный для получения на его основе хотя бы более-менее осмысленного псевдосишного кода. Иначе говоря, трудную жизнь любителям восстанавливать бинарный код на уровне ассемблера, можно еще более усложнить. Возможно, я вернусь к этой теме в отдельной статье (достаточно будет привести простой код на ассемблере, бинарный вариант которого приведет IDA PRO в ступор, а его плагин по получению псевдо Си-кода не даст ничего путного). Итак, путем несложных рассуждений мы пришли к пониманию, как можно бесплатно защитить свой код в 1С8х, хотя бы на уровне Авы. Для этого пишем собственный двухуровневый (ЯВУ и байт-код) обфускатор по сформулированным выше принципам. При этом можно применять разные степени усложнения и запутывания. Причем байт-код 1С (после исключения текста модулей из поставки конфигурации) можно менять как штатными средствами, путем выгрузки конфигурации в xml-файлы, в последних версиях «восьмерки», так и нештатными, вроде V8Unpack. Данный метод относительно несложен и позволяет использовать собственные трюки и маленькие секреты. Однако следует сказать, что знание защиты позволяет использовать и пути ее обхода. В нашем случае, для того, чтобы не вызывать жалобы декомпилятора при пережевывании им обфусцированного псевдокода, нужно вообще отказаться от использования, в нашем понимании, интерпретатора формы, другими словами, стековой или Форт-машины. Иначе говоря, ограничится только дешифровкой команд и данных либо попытаться вместо стекового интерпретатора использовать некий синтаксический анализатор. Но последний должен уже обладать зачатками искусственного интеллекта, что наверняка вызовет избыточные трудности при программировании. Поэтому, самый простой вариант обхода защиты обфусцированного байт-кода это просто расшифровать его команды и данные и анализировать полученный полуфабрикат уже вручную. Конечно, это будет уже удовольствие на любителя, ведь при должной двухуровневой обфускации анализировать полученный результат будет непросто. Вот пример попытки частичного восстановления обфусцированого байт-кода обработки Авы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Как видим, здесь чёрт ногу сломит, поэтому на таком уровне пусть изучают наш код, сколько угодно. Заключение По идее мы должны были в данной статье предоставить собственной вариант программы по защите кода 1С. Но поскольку подобная задача только встала перед нами, то требовалось сначала разобраться с руководящими принципами. Теперь, когда стало ясно в каком направлении двигаться, можно заняться непосредственно программой, хотя ее принципы, как нам кажется, достаточно интересны сами по себе, чтобы начать их обсуждение до получения конкретного результата. Поэтому встречные рассуждения и конструктивная критика приветствуются. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2015, 15:40 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Компиляторы умные пошли. Они не включают невыполняемый код при компилировании. Как вариант возможна замена если тогда на цикл который прерывается. Также возможна и обратная замена допустим цикл с менее чем 20 итерациями заменить на если. Еще вариант замена 50 процентов служебных слов на английский вариант. А сейчас есть какой-нибудь бесплатный вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2015, 16:05 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Программист 1сКомпиляторы умные пошли. Они не включают невыполняемый код при компилировании. Очень даже включают. Сейчас проверил свой код: Код: sql 1. 2. 3. 4. 5.
Получил при частичной декомпиляции (без использования стековой машины): Код: sql 1. 2. 3. 4. 5.
Программист 1сКак вариант возможна замена если тогда на цикл который прерывается. Также возможна и обратная замена допустим цикл с менее чем 20 итерациями заменить на если. Обфусцировать код на уровне ЯВУ можно множеством способов, но малым количеством принципов. Программист 1сЕще вариант замена 50 процентов служебных слов на английский вариант. А что это даст? Восстанавливается элементарно, как отсутствие форматирования. Программист 1сА сейчас есть какой-нибудь бесплатный вариант? Как говорит Awa (а он у нас законодатель мод в этом вопросе, в смысле обфусцирую свой код сам и только для себя) в общем доступе такой программулины нет. Может быть, есть в привате, пишите ему на мыло. У меня же только очень сырой тестовый вариант, написанный на коленке, который, как пишут на Мисте, ваяется за неделю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2015, 16:30 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Паршивенький компилятор у 1с. Видел примеры с++. Там гораздо более сложные варианты не выполняемого кода убирались. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2015, 00:06 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Программист 1сПаршивенький компилятор у 1с. Видел примеры с++. Там гораздо более сложные варианты не выполняемого кода убирались. Понятно, что если бы деобфускацией байт-кода 1С занялись бы профессионалы, то они бы давно написали мощный синтаксический анализатор и этот вариант защиты отправили бы на свалку истории. Однако, поскольку этим никто не хочет заниматься, данный вариант защиты пока является вполне приемлемым. Скажем, до сих пор никто не заявил о том, что восстановил код обработки Декомпилятор1Сv8.epf от Авы. Причем не суть важно, чтобы его исходный код был понятным, главное, чтобы он был доступен для изменения и выполнялся бы без проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2015, 09:41 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
EmeryПрограммист 1сПаршивенький компилятор у 1с. Видел примеры с++. Там гораздо более сложные варианты не выполняемого кода убирались. Понятно, что если бы деобфускацией байт-кода 1С занялись бы профессионалы, то они бы давно написали мощный синтаксический анализатор и этот вариант защиты отправили бы на свалку истории. Однако, поскольку этим никто не хочет заниматься, данный вариант защиты пока является вполне приемлемым. Скажем, до сих пор никто не заявил о том, что восстановил код обработки Декомпилятор1Сv8.epf от Авы. Причем не суть важно, чтобы его исходный код был понятным, главное, чтобы он был доступен для изменения и выполнялся бы без проблем.Не восстановили потому что никому не нужно. Проще или купить или самому написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2015, 14:04 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Программист 1сНе восстановили потому что никому не нужно. Проще или купить или самому написать. Так речь идет не о том, чтобы не о том, чтобы сделать декомпилятор необфусцированного байт-кода 1С. Это задача относительно простая, вся сложность которой сводится к выяснению спецификации этого самого байт-кода. В данном случае нас интересует способ защиты от декомпиляции путем самостоятельного обфусцирования нашего псевдокода. По примеру, как это сделал Awa в своей известной обработке. Что он мог применить? Он не пишет, но можно предположить, что способов обфускации 1С-овского пи-кода не много. Один из них я здесь назвал, это заполнение областей, закрытых для управления, мусорными командами, способными завалить любой интерпретатор формы, коими является как обработка Авы, так и онлайновый сервис http://www.1csoftware.com/dotnet/ru-ru/decompiler , работающий с индивидуальными файлами байт-кода. С их помощью вы не получите никакого результата для обфусцированного пи-кода вообще. Хотя можно ограничиться только расшифровкой команд и данных псевдокода, без использования стековой ФОРТ-машины, это даст хоть что-то, но пример дешифровки Авовской разработки показывает почти бессмысленный текст, который достаточно трудно расшифровывать. Не скажу, что этот процесс невозможен, просто он очень трудоемок, и делать его придется вручную. Именно все это говорит о том, что метод защиты Авы вполне прост, дешев и эффективен на данном этапе. Кто не верит, пусть попробует восстановить работу его исходного кода. Другое дело, что он вряд ли ограничился только установкой «мусорный ям» для своего байт-кода, наверняка там присутствует еще несколько мелких трюков с модификацией контекста и команд, не очень чувствительных для интерпретатора их содержания. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2015, 14:55 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
>> Иначе говоря, как сделать, чтобы пи-код был легальным с точки зрения интерпретатора и нелегальным с точки зрения декомпилятора? Загнать функционал во внешние компаненты. А вообще, вопрос отдаёт "тёмной стороной". Автор формулирует вопрос так, что ответ подразумевает изучение механизма, как автор говорит пи-байт-кода. Что само по себе является изучением внутренних механизмов платформы. Запрещено лицензией. Обфускация, ИМХО, термин понятный. А что именно автор собрался абфусцировать... всю конфу? А какие накладные расходы на "это" и как "это" повлияет на быстродействие системы? Опять же, сугубо ИМХО, абфуская допустима для каких-то сторонних обработок. Пункт 1. Что автор продаёт: код или функционал (законченный программный продукт или модуль)? Если, речь идет о функционале, то что даст взлом кода? Есть предметная область, есть затраты на дэкомпиляцию, на изучение архитектуры... для реальных приложений затраты этого рода могут оказаться в разы выше, чем поддержка. Пункт 2. Кто тот "парень", что "смог"...? С точки зрения предприятия, будет очень не умно, взломать код, тем самым отказаться от официальной поддержки продукта и замкнуть всё обслуживание на "того парня". Завтра же, ему станет мало злата-серебра, он заболеет, ему станет не интересно и т.д... Что делать предприятию? Кроме того, зачастую, такие парни оказываются хорошими кодерами, но с плохим или посредственным знанием предметной области. Т.е. банально обратиться с вопросом неккому. Посмотреть по коду? Акей, это можно. Но это опять займет уйму времени. Тут надо сказать, что если конфа статична... т.е. поставив сегодня, её можно будет пользоваться и через год-два-три, то да, от поддержи можно и отказаться, потерпеть некоторое время на изучение. Но это не снимает пункта 1. Пункт 3. Обновления. Или их тоже нужно будет, сначала, декомпилировать, а потом уже накатывать. Или как? Поэтому, с точки зрения бизнеса, дешевле будет купить, чем искать какие-то способы. В отношении конфигураций - т.е. цельных программных продуктов. Раз нет спроса, то и предложения не будет. Посмотрите, хотя бы, на типовую БУ. У одних, это просто нечто, изоткуда печатаются документы. А другие и баланс из неё могут сдать. Разница в том, что первые купили "код" а вторые купили продут - услуги специалиста по настройке/адаптации (внедрению) ну и саму конфу. А вот в отношении конфигураций по расчету ЗП просто установок, без специалиста, единицы (из моего опыта). Потому что, нужно знание и предметной области и конфигурации, тех.поддержка/сопровождение. Ну и внедрение, само-собой (ну или адаптацией под предприятие). И ставятся и обновляются... Кому в карман идут фин.средства - вопрос другой. Ну была бы обфускация, что это изменило бы? Поэтому, опять же, сугубо ИМХО, для 1С (и прочих сходных, налаогичных продуктов) говорить о защите кода не имеет особого смысла. Просто, от любого дурака. Бороться нужно и нелегальными установками. А у них ноги понятно откуда растут. Матиировать своих и предоставлять вменяемый сервис покупателям своего ПО и всё будет хорошо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 01:10 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
да не надо бороться..надо делать сервис потдержки нормальный.. и ломать никто не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 09:45 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
The Dim!>> Иначе говоря, как сделать, чтобы пи-код был легальным с точки зрения интерпретатора и нелегальным с точки зрения декомпилятора? Загнать функционал во внешние компаненты. Это не ответ, это уход от ответа. С таким же успехом можно сказать, что пишите код не 1С, а на, скажем, Qt/C++. Здесь интересный момент в том, что Awa смог самостоятельно обфусцировать байт-код (наряду с обфускацией исходного кода 1С, что, впрочем, менее важно) своей известной обработки так, что он «сбивает с ног» любой известный декомпилятор. Хочется повторить его «подвиг». Теоретические размышления в этом направлении показывают, что принципиальных возможностей у Авы немного, главное, это использование мусорного псевдокода в областях закрытых для управления. Кроме этого, он, скорее всего, манипулирует размером команд и стека, убирает одни команды и добавляет другие, вероятно также, что «раздевает» тела некоторых функций и процедур и т.п. Это все делается для защиты его собственного кода. Наверное, полное знание его защиты позволит взломать его собственный код, хотя, как мне кажется, затея эта будет в любом случае очень трудоемкой. Но мы здесь не ведем речь об инструментальных средствах, только теория, а многие ли смогут самостоятельно воплотить теорию в практику? Ава смог, но таких как он единицы. Есть еще фирменные продукты, специализирующееся на защите, но тот же Awa не стал их почему-то использовать, а применил собственный. Это и интригует. The Dim!А вообще, вопрос отдаёт "тёмной стороной". Автор формулирует вопрос так, что ответ подразумевает изучение механизма, как автор говорит пи-байт-кода. Что само по себе является изучением внутренних механизмов платформы. Запрещено лицензией. Нет, об изучение псевдокода 1С речь не идет. В этом нет необходимости. Чтобы обфусцировать байт код, с целью защиты его от декомпиляции достаточно знать его очень поверхностно. Вроде, как его получить, как отличить от других компонентов, как заменить повторяющиеся специальные команды (которые являются местодержателем для «мусорного» байт-кода) и как пересобрать все заново (например, используя штатные средства сборки / разборки xml). Пожалуйста, это можно было бы не делать, если бы фирма 1С предложила бы более надежные штатные средства защиты исходного кода. Получается противоречие, мы вам даже относительно надежной защиты не даем, но сами вы усиливать нашу защиту от дурака не должны и не имеете права. Вы об этом речь ведете? Хорошо, а как же фирмы, предлагающие коммерческие продукты? Они что не вникали, хотя бы поверхностно в механизм работы пи-кода? Вы, покупая их продукцию, не способствуете косвенному нарушению лицензии? Кстати, почитайте обоснование для декомпиляции необфусцированного байт-кода на указанном здесь онлайн-сервисе. Они ссылаются на законодательство России, когда это можно делать. Или вы готовы вникать в юридические лицензионные тонкости? The Dim!Обфускация, ИМХО, термин понятный. А что именно автор собрался абфусцировать... всю конфу? А какие накладные расходы на "это" и как "это" повлияет на быстродействие системы? Опять же, сугубо ИМХО, абфуская допустима для каких-то сторонних обработок. В интернете нередко можно встретить конфигурации, защищенные обфусцированном байт-кодом практически полностью, точнее настолько, насколько это возможно. «Мусорный» байт-код вообще никак не влияет на производительность, поскольку никогда не получает управление, но не позволяет работать декомпиляторам, на уровне интерпретатора формы, вроде стековой Форт-машины. Написать программу заменяющие одни команды на другие совсем не трудно. Другие тонкости, это уже индивидуальные трюки и секреты, о которых мы по существу речь не ведем, хотя бы по тому, что не знаем их. The Dim!Пункт 1. Что автор продаёт: код или функционал (законченный программный продукт или модуль)? Если, речь идет о функционале, то что даст взлом кода? Есть предметная область, есть затраты на дэкомпиляцию, на изучение архитектуры... для реальных приложений затраты этого рода могут оказаться в разы выше, чем поддержка. Ситуации могут быть разные. Фирма купила защищенную конфигурацию, которая перестала сопровождаться либо предыдущий программист при увольнении незаконно защитил ее и т.п. А ситуация требует срочной модификации некоторого функционала. Что вы предлагаете, написать всю конфигурацию заново и перезалить туда объемные данные? Боюсь, что вас не поймут. Посмотрите в Интернете, там подобные ситуации описываются сплошь и рядом. И не всегда они нелегальны, с точки зрения российского законодательства. The Dim!Пункт 2. Кто тот "парень", что "смог"...? С точки зрения предприятия, будет очень не умно, взломать код, тем самым отказаться от официальной поддержки продукта и замкнуть всё обслуживание на "того парня". Завтра же, ему станет мало злата-серебра, он заболеет, ему станет не интересно и т.д... Что делать предприятию? Кроме того, зачастую, такие парни оказываются хорошими кодерами, но с плохим или посредственным знанием предметной области. Т.е. банально обратиться с вопросом неккому. Посмотреть по коду? Акей, это можно. Но это опять займет уйму времени. Если вас послушать, то продажа собственных (самописных) конфигураций не имеет смысла. Вполне имеет. Одни авторы защищают их, другие нет, но то, что любые программистские фирмы никогда не покрывают всех потребностей пользователей это как бы общее место. Посмотрите, сколько сторонних фирм кормится на расширении функционала, хоть «семерки», хоть «восьмерки». И далеко не все их них используют open source. The Dim!Тут надо сказать, что если конфа статична... т.е. поставив сегодня, её можно будет пользоваться и через год-два-три, то да, от поддержи можно и отказаться, потерпеть некоторое время на изучение. Но это не снимает пункта 1. Это все теория, практика гораздо сложнее. The Dim!Пункт 3. Обновления. Или их тоже нужно будет, сначала, декомпилировать, а потом уже накатывать. Или как? Если конфа аккуратно поддерживается, то вопросов нет. Однако даже в хорошо сопровождаемых, незащищенных конфах встречаются постоянные достаточно грубые ошибки. Вот и приходится после каждого обновления делать собственные модификации, что конечно сильно напрягает. Можно естественно жаловаться в фирму, но многие ли любят эту бюрократию? Тем более что не факт, что со всеми вашими предложениями согласятся. Проще как-то хотя бы частично автоматизировать процесс накатывания собственных изменений после каждого обновления. The Dim!Поэтому, с точки зрения бизнеса, дешевле будет купить, чем искать какие-то способы. В отношении конфигураций - т.е. цельных программных продуктов. Раз нет спроса, то и предложения не будет. А если вы работаете в области, которые «продают»? И не желаете раскрывать свой код. Можно как угодно осуждать таких производителей и бойкотировать их продукцию, но решит ли это проблему? The Dim!Посмотрите, хотя бы, на типовую БУ. У одних, это просто нечто, изоткуда печатаются документы. А другие и баланс из неё могут сдать. Разница в том, что первые купили "код" а вторые купили продут - услуги специалиста по настройке/адаптации (внедрению) ну и саму конфу. А вот в отношении конфигураций по расчету ЗП просто установок, без специалиста, единицы (из моего опыта). Потому что, нужно знание и предметной области и конфигурации, тех.поддержка/сопровождение. Ну и внедрение, само-собой (ну или адаптацией под предприятие). И ставятся и обновляются... Кому в карман идут фин.средства - вопрос другой. Ну была бы обфускация, что это изменило бы? Постепенно мы съезжаем в тему как правильно работать с 1С. На практике очень многое зависит от уровня квалификации пользователей, программистов и администраторов 1С. Этот уровень, как правило, ниже желаемого. Та же ЗП, предприятия часто требуют такие отчеты и такие данные, которые получить в стандартных конфигурациях практически невозможно. Либо надо ее существенно переделывать либо писать свою, полностью адаптированную под родную фирму. Очень трудно всерьез отвечать за программу, которую ты не писал. Но если с бухгалтерией и УПП подобное еще как-то проходит, то хороших «зарплат» (в смысле программ) я еще не видел. Думаю, что многие допускают там чисто концептуальные ошибки. Но это отдельный разговор, не для этого топика. The Dim!Поэтому, опять же, сугубо ИМХО, для 1С (и прочих сходных, налаогичных продуктов) говорить о защите кода не имеет особого смысла. Просто, от любого дурака. Бороться нужно и нелегальными установками. А у них ноги понятно откуда растут. Матиировать своих и предоставлять вменяемый сервис покупателям своего ПО и всё будет хорошо :) Речь идет о защите собственных разработок. Хотя бы на уровне чуть выше среднего. Если вам это не интересно, то не вникайте. Скажите вон Аве, что он зря защитил свою обработку, что он вам ответит? Если надо, то могу назвать автора, защищающего почти целиком свою собственную конфигурацию, просто не хочу без особой необходимости рекламировать его. Только я не уверен, что он получил бы свои доходы без дополнительной защиты собственных конфигураций, сначала на «семерке», а теперь на «восьмерке». ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 10:54 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Zerroда не надо бороться..надо делать сервис потдержки нормальный.. и ломать никто не будет. Почти, как у кота Леопольда: «Ребята, давайте жить дружно!». Давайте, кто против, но почему-то не живут. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 10:56 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
EmeryZerroда не надо бороться..надо делать сервис потдержки нормальный.. и ломать никто не будет. Почти, как у кота Леопольда: «Ребята, давайте жить дружно!». Давайте, кто против, но почему-то не живут. ну возьмем 1с бухгалетрию - все платят - так как нужно обновление. Небольшой кусок пиратов 1с не мешает. Рарус - делают 2-3 документа называют отраслевым решением и просят кучу денег за обновление и саму программу. Стоит их прога. обнова знаете сколько стоит? 60 тышь. как то не понятно за что. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 11:11 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Zerroну возьмем 1с бухгалетрию - все платят - так как нужно обновление. Небольшой кусок пиратов 1с не мешает. Рарус - делают 2-3 документа называют отраслевым решением и просят кучу денег за обновление и саму программу. Стоит их прога. обнова знаете сколько стоит? 60 тышь. как то не понятно за что. Проблема то в чем? Если поставщик ПО справляется со своей задачей, и к тому же код поставляет открытым, то кто же из пользователей будет против? Даже если код закрытый, но поставщик справляется с возложенной на него задачей, то народ тоже не будет особо против. Другое дело, если продавец программного обеспечения и код закрыл и, главное, работу делает принципиально неверно, либо просто тупо слинял с горизонта. Тогда надо либо ломать его код в интересах своего предприятия (которое, в случае чего, берет на себя ответственность) либо писать новый продукт в каком-то смысле лучше, чем у фирменного производителя. А если это целиком твой продукт и к тому же лучше, чем у других, то зачем его делать открытым? Если предприятие умное, то поручая собственному программисту разработку ПО с нуля должно как-то побеспокоится и о своих правах, иначе какие претензии к программисту? Но даже это не главное, Мало какой новый программист захочет разбираться в исключительном коде предшественника. Скорее он скажет, что ваш бывший программист – [вытирайте любой эпитет], а вот я предлагаю вам принципиально другой вариант. И фирма нередко вынуждена соглашаться, особенно на периферии, где мало хороших спецов. А если программист 1С не может писать самодостаточные продукты, то ему и остается только, что ругаться на официальных поставщиков, мол, делают свою работу спустя рукава, тяп-ляп, без любви, удовольствия и к тому же не совсем правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 12:02 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
>> Это не ответ, это уход от ответа. С таким же успехом можно сказать, что пишите код не 1С, а на, скажем, Qt/C++. Это суть Вашего опроса. Нравится Вам это или нет. И не имеет значения под каким соусом его подать. >> Здесь интересный момент в том, что Awa смог самостоятельно обфусцировать байт-код А Вы не задавались вопросом, что возможно, потому и молчит, что либо на грани фола, либо... По отношению к 1С - как 7.7 так 8-рки - существует много чего, тот же 1CDTools, энтерпрайз конфигуратор... или как там его. Безусловно, вещи полезные. Но почему они существуют? Да потому что сапорт самой 1С никакой. А франчи понятия не имеют о механизм платформы. Таков маркетинг 1С. Хороший или плохой... не суть. Главное, приносит прибыль. >> Есть еще фирменные продукты, специализирующееся на защите Для 1С? Приведите примеры продуктов и как там с легальностью? >>Получается противоречие, мы вам даже относительно надежной защиты не даем, но сами вы усиливать нашу защиту от дурака не должны и не имеете права. Вы об этом речь ведете? Я предложил вариант - внешние компаненты. Посмотрите конфигурации Бинома, например. >> Хорошо, а как же фирмы, предлагающие коммерческие продукты? Вы только о своём говорите. Но даже не пытаетесь понять что вам говорят в ответ. Нет. не пытаются. Потому что смысла нету. Они получают деньги не за саму конфу а за решение, в самом широком смысле этого слова. Интересует количество конечных пользователей. >> Вы, покупая их продукцию, не способствуете косвенному нарушению лицензии? Чью "их" и что я поупаю и в каком месте я какую лицензию я нарушаю? >> Или вы готовы вникать в юридические лицензионные тонкости? Видимо, в контексте, имелось в виду НЕ вникать? Есть лицензионное соглашение. При покупке вы его подписываете. >> В интернете нередко можно встретить конфигурации, защищенные обфусцированном байт-кодом практически полностью, точнее настолько, насколько это возможно В интернете много чего можно встретить. Мне не встречались конфигурации известных производителей с такой защитой. >> Фирма купила защищенную конфигурацию, которая перестала сопровождаться Я не припомню случая, когда вдруг раз! и закрылась конторка. Пусть так, кто и что мешает связаться с сотрудниками закрывшейся фирмы и решить вопрос в частном порядке? Ну или фирма сама игнорировала сообщения снятии с поддержи продукта. Но в этом случае, сами виноваты. Ну или автор конфы часное лицо. Но тут опять же, предприятие само виновато. >>предыдущий программист при увольнении незаконно защитил ее и т.п Ну опять же, предприятие само виновато, что не позаботалась о своей информационной безопасности. Откатиться на резервные копии. Обратиться к производителю конфы. Ну или отдать программисту пречитающеесе. Технически, выход найти, как правило, можно. Я могу вам сказать, что на практике, приходилось подключаться к клиенту и разбирать ситуацию на его реальной базе. Потому что у себя не смогли воспроизвести ошибку. Я думаю, рассказывать излишне, сколько "восторга" было, когда управление передавалось в закрытый модуль. Это при том, что и логику и архитектуру ты знаеш и этот модуль тебе доступен в виде нормально кода у себя на базе. Это требует огромных затрат времени. Повторю ещё раз, для производителя ПО интересней механизм лицензирования конечных пользователей, продажа не коробки, а решения, сапорт. Защита модулей делается, как правило, не с целью обеспечения защиты интеллектуальной собственности, а для того что бы абы кто не лез в код не разобравшись в логике всего решения. Как бы это дико Вам не казалось :) Потому что, разгребать всё это приходится разработчикам. При этом, возникает вопрос: кто будет платить и сколько. Т.е. конфликт. И да, смотря на сколько это запущено. Поэтому, такая "защита" (кода) не выгадна ни какой из сторон. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 12:51 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
The Dim!>> Здесь интересный момент в том, что Awa смог самостоятельно обфусцировать байт-код А Вы не задавались вопросом, что возможно, потому и молчит, что либо на грани фола, либо... По отношению к 1С - как 7.7 так 8-рки - существует много чего, тот же 1CDTools, энтерпрайз конфигуратор... или как там его. Безусловно, вещи полезные. Но почему они существуют? Да потому что сапорт самой 1С никакой. А франчи понятия не имеют о механизм платформы. Таков маркетинг 1С. Хороший или плохой... не суть. Главное, приносит прибыль. Молчать он может по разным причинам, например, могу вскрыть чужую защиту, но попробуйте взять мою. Сама его обработка может быть и на грани фола, но про ее защиту такого не скажешь. А мы здесь обсуждаем именно теорию Авовской защиты исходного кода 1С, с целью написать подобную. Я согласен с вами, что 1С это, прежде всего, коммерческое решение и уже потом техническое. Но с этим можно бороться. Например, полностью отказаться от сервера приложений 1С и работать с произвольным сервером баз данных через ODBC драйвера. В качестве клиента использовать толстый клиент, с базой 1CD, но данные, в произвольной структуре, дублировать на сервере, реализуя собственный механизм РБД. Это все сложно, но обозримо. Зато вместо трехзвенки можно работать с классической двухзвенкой. Не будет запрета на доступ к серверу БД, поскольку 1С-овскую прокладку для этого мы не используем. Но здесь не место для подробного обсуждения данной идеи. The Dim!>> Есть еще фирменные продукты, специализирующееся на защите Для 1С? Приведите примеры продуктов и как там с легальностью? Для «семерки» это КЗК-2, которую, по-моему, так никто и не взломал, может быть потому, что многие уже перешли на «восьмерку». А для 1С8х это, как сказано у Авы, WiseAdvice. С ним я дела не имел, поэтому ничего сказать не могу. Насчет их легальности – не знаю. Фирма 1С вроде бы на них не наезжала, ребята продают свои продукты без особых проблем. The Dim!Я предложил вариант - внешние компаненты. Посмотрите конфигурации Бинома, например. А на каком принципе они должны работать? Шифровать исходный код или байт-код? Так сама 1С прекрасно все шифрует. Но с их шифрованием никто не борется, поскольку непосредственно пи-код не шифруется, а восстановить его не трудно, если только он не обфусцирован, например, как у Авы. Если речь идет о платных компонентах, то это пока не интересно, а бесплатные надежней собственные. Но лично у меня потребности во внешних компонентах пока нет, чем они лучше простой обфускации байт-кода? The Dim!>> Хорошо, а как же фирмы, предлагающие коммерческие продукты? Вы только о своём говорите. Но даже не пытаетесь понять что вам говорят в ответ. Нет. не пытаются. Потому что смысла нету. Они получают деньги не за саму конфу а за решение, в самом широком смысле этого слова. Интересует количество конечных пользователей. У меня нет своего продукта для защиты исходного кода 1С, есть только пока желание разобраться с теорией. Кое-что я уже понял, кое-что еще нет. Поэтому и затеял это обсуждение. Хорошо, когда процесс двусторонний, одни пытаются понять, другие ясно объяснить :) . The Dim!>> В интернете нередко можно встретить конфигурации, защищенные обфусцированном байт-кодом практически полностью, точнее настолько, насколько это возможно В интернете много чего можно встретить. Мне не встречались конфигурации известных производителей с такой защитой. Посмотрите демо-версию «Камин-Зарплата». У нее несколько ключевых модулей идут без исходных текстов, а их байт-код обфусцирован. Чтобы в этом убедиться, достаточно пропустить конфигурационный файл через обработку Авы, которая естественно спотыкается, либо взять байт-код модуля защиты или там модуля расчета страховых взносов и скормить его вышецитированному онлайн-сервису. Он тоже предсказуемо сбойнет. А уж какой метод обфускации там применен, не суть важно. Видно и шифрование строк и неумеренное использование операторов безусловного перехода и бессмысленные имена. Что это как не обфускация? Или может быть производитель Камина недостаточно известен для вас? The Dim!Повторю ещё раз, для производителя ПО интересней механизм лицензирования конечных пользователей, продажа не коробки, а решения, сапорт. Защита модулей делается, как правило, не с целью обеспечения защиты интеллектуальной собственности, а для того что бы абы кто не лез в код не разобравшись в логике всего решения. Как бы это дико Вам не казалось :) Потому что, разгребать всё это приходится разработчикам. При этом, возникает вопрос: кто будет платить и сколько. Т.е. конфликт. И да, смотря на сколько это запущено. Поэтому, такая "защита" (кода) не выгадна ни какой из сторон. Естественно, что вы имеете право так думать, но лично мне кажется, что фирма 1С не для того открывала прикладной код для своей платформы, чтобы сторонние производители его закрывали нештатными средствами. И, я полагаю, что разработчик решения не всегда круче в концептуальном мышлении, чем программист-пользователь. Иногда это так, но только иногда. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 15:51 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Защита кода - зло. Для каких бы целей оно не применялось. Это всего лишь неумение разработчика создавать и продавать тиражный продукт. А проблема демо-версии в эпоху тонкого клиента и веб-доступа к 1С - не смешите мои тапочки. Считаю, что клиент, заплативший за приложение, должен иметь свободный доступ ко всей бизнес-логике. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 15:32 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Кстати, тема "Защита кода конфигураций и обработок в 1С8х" чаще всего сплывает именно весной и осенью, как разновидность шизо.., ой, молчу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 15:33 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
СисойЗащита кода - зло. Для каких бы целей оно не применялось. Это всего лишь неумение разработчика создавать и продавать тиражный продукт. А проблема демо-версии в эпоху тонкого клиента и веб-доступа к 1С - не смешите мои тапочки. Считаю, что клиент, заплативший за приложение, должен иметь свободный доступ ко всей бизнес-логике. +500. Пару раз переписывал куски от Раруса. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 15:35 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
И я четырежды переписывал код Раруса. А теперь подумайте - НАФИГА ЭТО ЭКОНОМИКЕ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 16:17 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
при том знаю десяток случаев поломки защиты Раруса...даже оленями ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 16:22 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
СисойЗащита кода - зло. Для каких бы целей оно не применялось. Это всего лишь неумение разработчика создавать и продавать тиражный продукт. А проблема демо-версии в эпоху тонкого клиента и веб-доступа к 1С - не смешите мои тапочки. Считаю, что клиент, заплативший за приложение, должен иметь свободный доступ ко всей бизнес-логике.apl android windows так и делают? У ахелота закрыт доступ к стороннему модулю для связи с терминалами. И исходников си шарп они не дают. Мы продаем не исходники, а бизнес логику. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 18:07 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Вдогонку сайты продающие обработки 1с не имеют права на существование или это нормальная бизнес модель? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 18:09 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
СисойЗащита кода - зло. Для каких бы целей оно не применялось. «Защита кода - зло», взлом кода – тоже зло, писать плохой (в переводе на литературный язык) код – еще большое зло. Так много злости по весне, это надо уметь. Лучшие действия юзера – не пользоваться защищенным кодом, не платить денег за коммерческие программы, применять только опенсорс. Если не все так думают, то значит что-то не так с рассуждениями. СисойЭто всего лишь неумение разработчика создавать и продавать тиражный продукт. Это всего лишь версия, кстати, одна из многих. Иногда имеет место быть. СисойА проблема демо-версии в эпоху тонкого клиента и веб-доступа к 1С - не смешите мои тапочки. А кому он нужен этот тонкий клиент и веб-доступ? Точнее говоря, он нужен «не только лишь всем». Есть разные парадигмы клиент-серверной работы, совершенно не обязательно использовать рекомендованные именно фирмой 1С. СисойСчитаю, что клиент, заплативший за приложение, должен иметь свободный доступ ко всей бизнес-логике. Я тоже считаю, что давно пора ввести «цифровой коммунизм», хотя бы в отдельно взятой стране. Но кто же меня послушает? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 18:50 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
Программист 1сВдогонку сайты продающие обработки 1с не имеют права на существование или это нормальная бизнес модель? ты у нихъ покупал? я нет..мне пофиг -пусть живут ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2015, 19:25 |
|
Защита кода конфигураций и обработок в 1С8х
|
|||
---|---|---|---|
#18+
ZerroПрограммист 1сВдогонку сайты продающие обработки 1с не имеют права на существование или это нормальная бизнес модель? ты у нихъ покупал? я нет..мне пофиг -пусть живутНет не покупал. Но раз они существуют - значит кому-то надо. ps Подозревают что вся проблема из-за недостаточной защищенности средствами 1с. Было бы нормально - не было бы споров. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2015, 14:10 |
|
|
start [/forum/topic.php?fid=28&msg=38898401&tid=1518860]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
146ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 265ms |
0 / 0 |