Мужики!
Если есть у кого-нибудь информация по использованию STL-команды "BLD ххх" (интересует влияние значения параметра на процесс отображения програмы на дисплее) - поделитесь, please!
Best regards!
[?]: STL-команда "BLD xxx" и ее параметры
-
- Posts: 43
- Joined: Wed Dec 13, 2006 11:58 am
- Location: Russia
-
- Posts: 43
- Joined: Wed Dec 13, 2006 11:58 am
- Location: Russia
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Напиши программку с использованием сложных LAD операторов и затем попробуй найти закономерность в полученных номерах BLD в STL виде.
Защитить программу от постореннего взгляда такими командами нельзя, а вот себе самому ямок нарыть вполне возможно.
Ты сам понимаешь на каком форуме такие вопросы о защите можно задавать ?
Тут только могут ответить как снять кем то поставленную "защиту".
Я тут встретился с защитой типа проверки терпения и усидчивости крякующего - один объёмный пустой цикл (типа А+2 затем А-2) линейно повторялся в листинге сотню раз и где то в промежутках проскакивала одна рабочая операция (С=B+D...)
А некоторые недоумевают - загрузочной памяти не хватает, так как программа сложная и громадная.
Защитить программу от постореннего взгляда такими командами нельзя, а вот себе самому ямок нарыть вполне возможно.
Ты сам понимаешь на каком форуме такие вопросы о защите можно задавать ?
Тут только могут ответить как снять кем то поставленную "защиту".
Я тут встретился с защитой типа проверки терпения и усидчивости крякующего - один объёмный пустой цикл (типа А+2 затем А-2) линейно повторялся в листинге сотню раз и где то в промежутках проскакивала одна рабочая операция (С=B+D...)
А некоторые недоумевают - загрузочной памяти не хватает, так как программа сложная и громадная.
-
- Posts: 43
- Joined: Wed Dec 13, 2006 11:58 am
- Location: Russia
Не-е-е-т, ребяты!
Команда, на самом деле, исключительно полезная.
Я давно искал альтернативный (имею в виду Know-How Protection от SIEMENS) и эффективный способ защиты S7 программ, передаваемых заказчику. И наконец нашел (сразу уточняю: автор - не я).
Сейчас выложу примерчик "Protect" на "свалку". Примерчик очень простой - программа состоит из OB1, FC1 и SFC46.
В OB1 вызывается FC1, которой задаются параметры a,b и с. В FC1 вычисляется сумма a+b=c. Но открывая FC1 вы не видите ничего, кроме безусловного вызова SFC46 (перевод контроллера в "стоп"). После загрузки программы в ПЛК или симулятор все нормально работает, т.е. сумматор суммирует то, что ему подсовываешь.
Потренируйтесь, может у кого-нибудь получится вскрыть настоящий код FC1.
Best regards!
Команда, на самом деле, исключительно полезная.
Я давно искал альтернативный (имею в виду Know-How Protection от SIEMENS) и эффективный способ защиты S7 программ, передаваемых заказчику. И наконец нашел (сразу уточняю: автор - не я).
Сейчас выложу примерчик "Protect" на "свалку". Примерчик очень простой - программа состоит из OB1, FC1 и SFC46.
В OB1 вызывается FC1, которой задаются параметры a,b и с. В FC1 вычисляется сумма a+b=c. Но открывая FC1 вы не видите ничего, кроме безусловного вызова SFC46 (перевод контроллера в "стоп"). После загрузки программы в ПЛК или симулятор все нормально работает, т.е. сумматор суммирует то, что ему подсовываешь.
Потренируйтесь, может у кого-нибудь получится вскрыть настоящий код FC1.
Best regards!
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Мажешь ММС карту эпоксидкой или "супер-клеем" и вставляешь в щель, на щель приклеиваешь броневую накладку, заодно не забудь склеить две половинки пластмассового корпуса и приклеить намертво разъём питания.narkom wrote:Не-е-е-т, ребяты!
эффективный способ защиты S7 программ, передаваемых заказчику
При этом варианте действительно будут трудности для неразрушимого (для корпуса) считывания и раскодирования программы.
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
http://plctalk.net/qanda/showpost.php?p ... tcount=164
Кстати подобные "граблевые" методы обладают обоюдным ударом - как по лбу заказчика, так и по твоему.
Я только один раз столкнулся с ситуацией, когда пришлось помудрить при передаче исходников: с чистой совестью отдал 100% рабочий исходник, распечатанный из Степа в текстовом STL виде без символьных имён и комментариев. И то мудрил по причине того, что к заказчику на "обслуживание" пролез прямой наш конкурент специально для того, чтобы спереть наше ПО. А в контракте была строка о передаче прикладного ПО.
Кстати подобные "граблевые" методы обладают обоюдным ударом - как по лбу заказчика, так и по твоему.
Я только один раз столкнулся с ситуацией, когда пришлось помудрить при передаче исходников: с чистой совестью отдал 100% рабочий исходник, распечатанный из Степа в текстовом STL виде без символьных имён и комментариев. И то мудрил по причине того, что к заказчику на "обслуживание" пролез прямой наш конкурент специально для того, чтобы спереть наше ПО. А в контракте была строка о передаче прикладного ПО.
-
- Posts: 2
- Joined: Sat Feb 24, 2007 3:50 am
- Location: Russia
Чтобы увидеть "скрытую" часть можно сделать так:
1) чтобы убедится, что используется такая "защита", надо открыть проект в какой нибудь не сименсовской программе (например S7-Doctor)
2) Для открытия и работы в Степе с этим проектом: шестнадцатеричным редактором заменим код команды BLD 7 (0x10 0x07) на код команды NOP 0 (0x00 0x00) в файле
<Папка проекта>\ombstx\offline\00000001\SUBBLK.DBT (вместо "00000001" может быть другая папка)
и при открытии в Степе увидим (FC1 из проекта "PROTECT"):
Если NOP 0 заменим на BLD 7 и сохраним то получим:
CALL "STP"
т.е. "скроем" программу заново.
1) чтобы убедится, что используется такая "защита", надо открыть проект в какой нибудь не сименсовской программе (например S7-Doctor)
2) Для открытия и работы в Степе с этим проектом: шестнадцатеричным редактором заменим код команды BLD 7 (0x10 0x07) на код команды NOP 0 (0x00 0x00) в файле
<Папка проекта>\ombstx\offline\00000001\SUBBLK.DBT (вместо "00000001" может быть другая папка)
и при открытии в Степе увидим (FC1 из проекта "PROTECT"):
Code: Select all
NOP 0 // здесь было "BLD 7"
L #a
L #b
+I
T #c
BEU
= L 0.0
UC "STP"
BLD 8
CALL "STP"
т.е. "скроем" программу заново.
-
- Posts: 43
- Joined: Wed Dec 13, 2006 11:58 am
- Location: Russia
To CEZAR:
Сам вспомнил про S7-Doctor в тот же день - все показывает, собака...
Немного жаль...
To CoMod:
Да я и сам небольшой сторонник сокрытия всего и вся. Однако, сам знаешь - разные ситуации бывают...
И все-таки вопрос: есть у кого-нибудь подробное описание для операндов BLD-команды ?
Best regards!
Сам вспомнил про S7-Doctor в тот же день - все показывает, собака...
Немного жаль...
To CoMod:
Да я и сам небольшой сторонник сокрытия всего и вся. Однако, сам знаешь - разные ситуации бывают...
И все-таки вопрос: есть у кого-нибудь подробное описание для операндов BLD-команды ?
Best regards!
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Мне было бы интересно тебя самого увидеть при отладке этого кода на объекте, если бы вдруг твоё 2+2 вдруг стало <>4 ...narkom wrote:Да я и сам небольшой сторонник сокрытия всего и вся. Однако, сам знаешь - разные ситуации бывают...
Грабли для других - это одно, а зачем себе то их подкладывать.
Можно конечно держать в Исходниках, но ...
Как я понял двойное употребление БЛД воспринимется как скобка для операторов между ними.
А порядковый номер значения не имеет и меняется как счётчик по мере преобразования из LAD в STL
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Re: [?]: STL-команда "BLD xxx" и ее параметры
Продолжение темы: http://www.automation-drives.ru/forum/v ... c&start=20
Защита контроллера от считывания/записиЧлен Ограниченного Круга wrote:Хочу добавить в тему...
В принципе, есть и другие способы защиты S7 программ от просмотра и/или изменения.
Один из них достаточно давно известен - это использование команды BLD для сокрытия важной части программного кода. И если в совокупности с этим методом использовать системную функцию SFC46, то можно свалить процессор в СТОП после чьей-либо попытки изменить код программы.
Второй метод пока известен лишь очень ограниченному кругу специалистов.
Он позволяет полностью скрыть весь код, т.к. просто лишает "юзверя" возможности открыть защищенный этим методом FB,FC или OB, а следовательно и изменить его.
.............не Член Ограниченного Круга wrote:Ну вообще то ошибки компилятора тут не причем, компилятор тут вообще не причем.
В данном случае используется метод подмены в готовом коде правильной команды, на код, которого нет для данной системы.
В данном случае (т.к. таких кодов может быть несколько) 0300h.
А для контроллера сделать переход через этот неправильный код.
Пример:После компиляции имеем код (привожу не весь, а только конец)Code: Select all
L MW0 L MW2 -I T MW6 JU m001 NOP 0 // Пустой операцией резервируется место для последующей ручной замены недокументированным кодом, рушащим Степ7 m001: BE
После этого остается только подменить код 0000h кодом 0300h и дело в шляпе, т.е просмотреть такой блок редактором STEP7 невозможно.Code: Select all
700Bh 0003h (JU m001) 0000h (NOP 0) 6500h (BE)
Его можно скачать, переписать в другой контроллер, но просмотру и редактированию он не поддается.
Кстати, этот код взялся из STEP5, там он представляет команду TNB.
РосТехНадзор предупреждает: В худшем случае "защита дураков от таких же дураков" может повлечь тяжкие последствия.
Использование гвоздей для защиты дверей wrote: Дело было вечером, делать было нечего.
Борис: А у меня в кармане гвоздь! Я им умею двери закрывать. А у вас?
Петя: Ух ты! Расскажи, как ты это делаешь?
Борис: Рассказать не могу, потому что на этом кто-нибудь может заработать. Да и вообще я только папе с мамой это буду рассказывать. Могу показать дверь, закрытую гвоздём - вот она.
Петя: Ну и чего тогда хвастаешь? Уже много заработал?
Борис: Хотел просто сказать, что двери можно закрывать не только на ключ, но и на гвоздь. Вообще не все двери закрывать нужно, а только входную. Кто-нибудь может сделать замок из моего гвоздя и продавать другим.
Вася: А я открыл эту дверь! Закрой еще разок!
Коля: Двери можно взломать фомкой...
Борис: А зачем мне снова закрывать, чтобы все научились их открывать?
Вова: Ребята, я знаю, где он набрал этих гвоздей. Пойдём покажу. А ты, Боря, не задавайся.
Вася (щупая гвоздь в кармане): Хреновенькие у тебя гвозди. Не зря я просил закрыть ещё одну дверь.
Вова: Ну, гвоздь ещё можно изогнуть особым образом.
Вася: А всё равно можно потом догадаться. Спасибо тебе таки, что показал склад гвоздей.
Коля: Двери все равно можно взломать фомкой...
Борис: Ребята, я просто хотел сказать, что дверь можно гвоздём закрыть. Закрыл одну для примера. А вы можете ещё как-нибудь двери закрывать?
Лёлик: А я видел, как один мальчик закрыл дверь в детскую на гвоздь, и потом ушёл в кино. Пришли домой родители, пришлось им выломать дверь, чтобы достать зимнее пальто из шкафа. Мальчика лишили мороженого. Надо было с родителями заранее договариваться, чтобы в детскую не лезли.
Саша: Вообще можно открыть любую дверь, при наличии желания. Можно купить хороший замок. Если хотите, покажите свою дверь, я попробую её открыть для интереса.
Коля: А чего вы Борю ругаете, он интересненькое показал. Всё-таки есть двери, которые можно и гвоздём закрыть.
Лёлик: Не, он не показал. Он просто задавака. А на самом деле так закрывать двери многие могут. Но не закрывают, потому что можно дверь сломать. А хотите анекдот?
Вася (щупая гвоздь в кармане): Задавака! Задавака! Таки спасибо за показ дверей. Чего сразу всё не рассказал?
Борис: Я всё рассказываю только маме с папой. А кому надо - тот сам догадается.
Лёлик (зевая): Папу с мамой гвозди не интересуют. И потом, гвоздём можно дверь сломать.
Коля: Ребята, давайте жить дружно...
Вася (щупая гвоздь в кармане): Ты не папе с мамой хотел рассказать, ты дяденьке с соседнего подъезда хотел за кило печенья. Задавака! Задавака! Лучше б молчал, а то всё равно все уже догадались.
Борис: Эх, ребята...
-
- Posts: 43
- Joined: Wed Dec 13, 2006 11:58 am
- Location: Russia
Re: [?]: STL-команда "BLD xxx" и ее параметры
Натурально, картина маслом!
...Брат Салтан х..ет тихо, а ткачиха с поварихой мутят воду на постой: - "Ой! Нашёлся, б.я, герой!"...
...Брат Салтан х..ет тихо, а ткачиха с поварихой мутят воду на постой: - "Ой! Нашёлся, б.я, герой!"...