淺談西門子S7-200系列PLC之反拆機加密
1.先了解普遍的PLC解密方式。知己知彼才能百戰不殆,你只有全面的了解了現行的PLC普遍解密方式,才能以此作出更好的加密方案。現在出售的都是拆機解密軟件,還沒有直讀軟件出世,都是通過拆取EEPROM芯片,修改其系統塊而去除了密碼保護得到程序的。這樣的解密方法確實達到了讀取程序的目的,但是這個藥方副作用太大,完全改變了系統塊的原始設置。由于不知道也無法知道原始系統塊的設置,匆匆忙忙就用一個從其他PLC得到的系統塊替換過來,完全改變了原有的設置,那么由此我們就可以根據他的這個缺陷而制造出有針對性的反拆機加密。現在您可以先下載例程看看了
2.一定要設置4級密碼保護。2.0以上版本的PLC都具備4級加密功能,這也是最高級別的加密,如果您單獨設置3級加密那么很容易被破解。因為只需拆機讀取了芯片就得到了原始密碼,無需修改芯片,有了密碼憑密碼就可以上載程序了。所以您如果只是設置了3級加密保護那么等于是白給,必須設置最高級別4級保護。那么4級保護怎么厲害呢?看下圖說明,4級密碼保護是無法上載的,無論你是否知道密碼,意思是你即使已經知道了密碼你也無法上載。拆機解密為了能夠達到上載的目的采用的是整個系統塊替換的方法,替換后就是沒有加密功能的系統塊了,程序就可以上載了,但是他改變你原有的設置,所以接下來我再教你如何對付這種替換系統塊解密。
3.通訊端口設置不能默認。你點擊一下下圖中的那個 默認值 按鈕就可以知道,系統塊的通訊設置默認值都是波特率9600站號2,為了能夠達到破解后讓敵人無法通訊的目的你最好設置187.5kbps的波特率,但是如果您的電纜不支持這個通訊速率那么還是算了吧!PLC的地址不要默認2,這樣太低級了,選擇其他站號地址吧。這樣搞,即使被破解也可以達到讓別人無法通訊連接的目的,特別你有觸摸屏或者上位機與之通訊就更好了,破解后由于跟你原先的通訊設置對不上, 外部的設備就無法通訊了,最后還得找您。好,真好!
4.設置特種斷電保持區,不要默認。看下圖的斷電數據保持區的設置,都是系統默認的數值,如果你懶得從這里做一下手腳,完全使用系統默認的設置,那么你的加密即使是4級也是枉然,因為他們就是采用的系統默認的系統塊替換你的4級加密文件的。
那么到底如何從這個系統塊是設置里改變默認設置來達到防破解的目的呢?這個方法就多了,千變萬化,就看你的聰明才智了,下面我舉例一個方法您看看,你可以依次類推,舉一反三。
5.檢測掉電保持區數據是否丟失。用編程的方法檢測查找你預先埋入的數值是否還完好,運行后埋入的地雷是否爆炸了,檢測你的程序是否遭到了拆機解密,廢話少說看圖:
當然這只是簡單的加密,實際應用中不可能這么簡單好懂,你應做得當盡量復雜,以至于無法讀懂程序,數據要多變換、傳送、轉移、計算等進行一系列復雜的邏輯運算,最后才用于停機。你在系統塊的掉電保持區中可以設置vb0-vb40為掉電保持區,而vb40以后的要求掉電清空,你在程序中可以設置在plc上電的初始時期是否有數據,如果有數據 那么停機,如果沒有開機,然后再檢測掉電保持區的數據,你事先埋下數值地雷,檢測你之前寫入的數值如果沒有了那么停機吧!總結:要設置與系統默認值相反的掉電保持區!