PLC程序代碼如何混淆加密
在做項(xiàng)目工作當(dāng)中,出于一定的目的,比如使他人無(wú)法查看源碼或者不容易理清楚自己代碼或者保護(hù)知識(shí)產(chǎn)權(quán),可能需要對(duì)自己編寫的程序進(jìn)行一定加密或者混淆。就PLC程序代碼加密混淆實(shí)現(xiàn)方式探討(僅在西門子博途環(huán)境下的探討)
1、博途提供的“專有技術(shù)保護(hù)(Know-how protection)"功能實(shí)現(xiàn)。選擇需要加密的塊,右鍵點(diǎn)擊“專有保護(hù)技術(shù)"或者通過(guò)屬性->保護(hù)->專有技術(shù)保護(hù),在彈出的對(duì)話框里面輸入密碼并確認(rèn)即可。(如果有必要也可額外設(shè)置防拷貝保護(hù))
值得注意的是為了實(shí)現(xiàn)加密保護(hù)的作用,請(qǐng)?jiān)O(shè)置數(shù)字、大小寫字母、特殊符號(hào)混用、長(zhǎng)度至少8位的強(qiáng)密碼。否則可能會(huì)被暴力破解(比如設(shè)置6位純數(shù)字的弱密碼,僅有100萬(wàn)種可能,利用視頻中的Openness工具可能1小時(shí)左右就被窮舉破解掉了)
2、使用STL或者SCL進(jìn)行編程 目前行業(yè)中還是有不少?gòu)臉I(yè)人員僅僅會(huì)使用梯形圖進(jìn)行編程,對(duì)STL以及SCL存在看不懂、不會(huì)寫等情況,對(duì)此可以將需要加密的程序用STL以及SCL進(jìn)行編寫,將程序進(jìn)行"淺入深出"化。尤其是STL的可讀性較差,在程序中大量使用指針、地址寄存器、間接尋址、循環(huán)跳轉(zhuǎn)情況下大部分人都會(huì)比較懵(以下代碼相較于梯形圖略難理解),使其直接望洋興嘆。
3、代碼混淆法降低可讀性 1)變量均使用地址尋址,而不是使用符號(hào)(博途自動(dòng)生成類似tagXX變量除外)2)刪除必要的注釋、說(shuō)明等(在對(duì)注釋無(wú)要求情況下)3)使用SCL編程的時(shí)候進(jìn)行格式混淆,將編寫好的程序,將變量名進(jìn)行重命名、并刪除縮進(jìn)換行等格式化的顯示方式(如下圖之前實(shí)現(xiàn)的手寫bitsum功能),使代碼的可讀性降低,從而起到對(duì)程序有一定的保護(hù)作用(需要開啟博途的寫保護(hù),否則可以直接選中代碼格式化)。4)程序中的變量名使用無(wú)實(shí)際意義的命名(比如_、__、abc之類)。5)梯形圖程序中多重取反(not),降低可讀性。
針對(duì)博途中對(duì)程序塊進(jìn)行知識(shí)產(chǎn)權(quán)保護(hù)的方法,不同方式有不同的利用場(chǎng)景,可以混合使用。比如法二可針對(duì)項(xiàng)目必須開放源代碼,方法一在可不開放源碼情況下使用,方法一還有個(gè)進(jìn)階實(shí)現(xiàn)方式,就是在低版本的博途中進(jìn)行加密,然后將程序升級(jí)到高版本的博途后就無(wú)法進(jìn)行解密了(需要在原版本中解密,需要注意刪除升級(jí)記錄);方法三建議盡量不要使用,閱讀性實(shí)在太差,可能會(huì)挨打。
(請(qǐng)勿商用、非法使用,僅作為研究學(xué)習(xí)之用)。

提交
從農(nóng)場(chǎng)到餐桌,ABB解決方案助力全面推動(dòng)啤酒生產(chǎn)行業(yè)發(fā)展
ABB推出全新在線節(jié)能計(jì)算器,幫助企業(yè)規(guī)劃節(jié)能增效路線
到2030年,我們能否將能源效率的年增長(zhǎng)率提高兩倍?
Red Lion® 推出新款 N-Tron® NT116 非管理型 16 端口工業(yè)以太網(wǎng)交換機(jī)
安森美將攜創(chuàng)新的智能圖像感知產(chǎn)品組合亮相Vision China(上海)2024