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