Здраствуйте, такой вопрос как сделать чтобы из ПЛК100 нельзя было считать программу.
Заранее спасибо.
Вид для печати
Здраствуйте, такой вопрос как сделать чтобы из ПЛК100 нельзя было считать программу.
Заранее спасибо.
все очень просто, её туда не надо "заливать"
Обычно серьёзным заказчикам ПО передаётся, чтоб местные инженеры потом сами с оборудованием разбирались.
Ну и меня не материли.
Поищите по форуму, защита здесь уже обсуждалась. И определитесь, Вам чтоб не считать, не декомпилировать или не тиражировать в другие ПЛК?
А то звучит как "как заработать денег?"
Программа в ПЛК заливается в уже скомпилированном формате. Поэтому от туда исходные коды взять ни кто не сможет. Даже если кто-то и вытащит из ПЛК бинарник, он должен многое учесть, чтобы тот-же бинарник заработал на другой железке.
Предложу аппаратный ключ. RS232 или RS485.
Бинарник могут скопировать и перезалить на ещё один плк.
А без аппаратного ключа, работать не будет.
Могу изготовить такой. Мы себе изготавливаем, когда требуется защита.
Проблема в том что заливая программу в ПЛК на постоянную работу. я на следующий день прихожу с обычным ноутом подключаюсь к ПЛК и через codesys спокойно считываю свой проект. Нужно сделать чтобы либо его нельзя было считать, либо он был под паролем.
Еще раз.
1. В контроллере выполняемая программа - "набор 0 и 1". Даже если Вы её считаете - это ничего не даст.
2. Связываетесь Вы с контроллером только по тому, что используете не измененный проект для CoDeSys, который клиенту Вы, по моему мнению зря, отдавать не хотите. Если исходный проект изменен - Вы просто сотрете программу в контроллере (о чем CoDeSys конечно предупреждает).
3. По паролированию проектов - в документации все расписано.
А может дело все в пункте меню КДС: "Онлайн -> Загрузка исходных текстов", так это делать не обязательно при заливке проекта
Возьмем для примера мою ситуацию - я разрабатываю ПО для сторонних фирм. Оплатить всю разработку сразу фирме чаще всего невыгодно, главным образом потому, что в случае оплаты "за каждый экземпляр" фирма уверена, что а) я никуда не пропаду б) я точно исправлю в процессе все ошибки и дополнения в) оплачивать покупку будет реальный покупатель.
В случае Windows вопрос защиты решался применением hasp, под AVR - лок-битами при прошивке. Теперь вопрос - каким образом я смогу организовать подобную схему используя оборудование Овен + CoDeSys? Что помешает фирме-покупателю после покупки первого образца просто скопировать выполняемую программу?
Предложение использовать самодельные аппаратные ключи не устраивает хотя бы из-за отсутствия свободных портов под это дело.
Есть ли способ программно получить любые уникальные идентификаторы контроллера (заводской номер, еще что-то), к чему можно было бы привязаться?
Тема не раз обсуждалась.
Можно привязываться к IP. Можно специально на диск класть файл с нужным Вам кодом, и в начале программы проверять...
например дата последнего изменения файла
Аппаратный ключ на RS485. Надёжно.
И не дорого.
Вообще эта тема из разряда параноидальных, для того чтоб с программы ПЛК сделать клон, специалисты должны быть более высокого класса чем просто программист, не вижу смысла отдавать заказы на сторону, если самим можно получить за работу. По поводу подделки файла, пускай пять минут для этого надо включить ПЛК, а контроллер за один цикл может определить не соответствие и выключить питание функцией SysShutdownPLC, а можно еще и сбросить RESET_HARD
сначала создаем в новом плк файл-бирку с поддельными датами, а потом копируем .prg. и ничего ваша программа в новом плк не заметит.
:) вместо того чтобы спорить, поискали бы какую нибудь функцию в библиотеках КДС вызывающую идентификатор ПЛК, если файл не подходит, помогли бы товарищам в решении вопроса
тема не раз обсуждалась. нет никаких уникальных id, смиритесь. задача КДС - программирование ПЛК, а не защита ПО.
Два порта, RS-232 занят, на 485 контроллер сидит как слейв. Куды пихать ключ? ---- А кто мастер в сети, тот и опрашивает ключ.
Вы таки его от чего именно защитить хотите? От "реверс-инжиниринга"? Так ведь исходный текст программы (если его не загружали в ПЛК) из скомпилированного бинарника все равно не восстановишь. Проще свою программу разработать и отладить, "по образу и подобию".
От несанкционированного тиражирования? Что толку в 10 экземплярах прошивки, если упомянутый аппаратный ключ, необходимый каждому из них для работы, имеется только в одном экземпляре и представляет собой не поддающийся тиражированию "черный ящик"?
Или от самого события "слива" бинарной прошивки из ПЛК? А зачем от него защищаться, если слитые файлы можно использовать только при ремонте установки, в случае замены погоревшего ПЛК?