工控網首頁
>

應用設計

>

PLC程序代碼如何混淆加密

PLC程序代碼如何混淆加密

2024/7/2 9:50:58

在做項目工作當中,出于一定的目的,比如使他人無法查看源碼或者不容易理清楚自己代碼或者保護知識產權,可能需要對自己編寫的程序進行一定加密或者混淆。就PLC程序代碼加密混淆實現方式探討(僅在西門子博途環境下的探討)

1、博途提供的“專有技術保護(Know-how protection)"功能實現。選擇需要加密的塊,右鍵點擊“專有保護技術"或者通過屬性->保護->專有技術保護,在彈出的對話框里面輸入密碼并確認即可。(如果有必要也可額外設置防拷貝保護)

1.png

 值得注意的是為了實現加密保護的作用,請設置數字、大小寫字母、特殊符號混用、長度至少8位的強密碼。否則可能會被暴力破解(比如設置6位純數字的弱密碼,僅有100萬種可能,利用視頻中的Openness工具可能1小時左右就被窮舉破解掉了)

2、使用STL或者SCL進行編程 目前行業中還是有不少從業人員僅僅會使用梯形圖進行編程,對STL以及SCL存在看不懂、不會寫等情況,對此可以將需要加密的程序用STL以及SCL進行編寫,將程序進行"淺入深出"化。尤其是STL的可讀性較差,在程序中大量使用指針、地址寄存器、間接尋址、循環跳轉情況下大部分人都會比較懵(以下代碼相較于梯形圖略難理解),使其直接望洋興嘆。

2.png3、代碼混淆法降低可讀性 1)變量均使用地址尋址,而不是使用符號(博途自動生成類似tagXX變量除外)2)刪除必要的注釋、說明等(在對注釋無要求情況下)3)使用SCL編程的時候進行格式混淆,將編寫好的程序,將變量名進行重命名、并刪除縮進換行等格式化的顯示方式(如下圖之前實現的手寫bitsum功能),使代碼的可讀性降低,從而起到對程序有一定的保護作用(需要開啟博途的寫保護,否則可以直接選中代碼格式化)。4)程序中的變量名使用無實際意義的命名(比如_、__、abc之類)。5)梯形圖程序中多重取反(not),降低可讀性。

4.png

針對博途中對程序塊進行知識產權保護的方法,不同方式有不同的利用場景,可以混合使用。比如法二可針對項目必須開放源代碼,方法一在可不開放源碼情況下使用,方法一還有個進階實現方式,就是在低版本的博途中進行加密,然后將程序升級到高版本的博途后就無法進行解密了(需要在原版本中解密,需要注意刪除升級記錄);方法三建議盡量不要使用,閱讀性實在太差,可能會挨打。

(請勿商用、非法使用,僅作為研究學習之用)。

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

從農場到餐桌,ABB解決方案助力全面推動啤酒生產行業發展

ABB推出全新在線節能計算器,幫助企業規劃節能增效路線

到2030年,我們能否將能源效率的年增長率提高兩倍?

Red Lion® 推出新款 N-Tron® NT116 非管理型 16 端口工業以太網交換機

安森美將攜創新的智能圖像感知產品組合亮相Vision China(上海)2024