PLC加密技術(shù),其實(shí)就是開(kāi)發(fā)者的一種思路,只要明白了作者的加密思路,就能對(duì)它很快的解密。其實(shí),在自然界中不管是PLC,還是電梯主板只要有加密的存在就會(huì)有破解它的秘籍,呵呵,這二者永遠(yuǎn)都是矛和盾的結(jié)合體。好了不說(shuō)廢話(huà)了,入正題。
先介紹兩種PLC解密方法: 1,直讀法。2,暴力破解法。
直讀法就以三菱FX2為例: 先打開(kāi)串口監(jiān)控軟件(到網(wǎng)上百度一下就有很多,這里我用論壇PLC版里的串口并口監(jiān)控軟件),監(jiān)控串口的進(jìn)出數(shù)據(jù)。然后讓再運(yùn)行FXWIN(PLC編程軟件)和PLC聯(lián)機(jī),選了型號(hào)后點(diǎn)程序讀取這時(shí)候在串口監(jiān)控軟件中可以看見(jiàn)電腦和PLC間互發(fā)了幾串字符,最后一行由PLC發(fā)給電腦的就是密碼,只是它是ASII碼對(duì)照一下表格,把它翻譯成字符就得出密碼了。呵,這是三菱PLC的漏洞,它的編程軟件是先將密碼讀到電腦內(nèi)存在和用戶(hù)輸入的密碼進(jìn)行比較,密碼對(duì)就可以讀出程序。我試驗(yàn)了一下,用串口軟件把倒數(shù)第二行字符發(fā)到PLC,PLC同樣返回了密碼。說(shuō)到這大家知道這個(gè)解密軟件怎么做了吧?整個(gè)解密軟件只要發(fā)一串字符到PLC,再把PLC返回的帶密碼的字符翻譯成密碼就可以了。 有些PLC就沒(méi)這樣的漏洞了,像OMRON和FUJI NB2,它們都是把用戶(hù)輸入的密碼傳到PLC由PLC判斷密碼是否正確才判定能否讀取程序。
對(duì)付它們就用第二種方法了,暴力破解: 同樣運(yùn)行串口監(jiān)控軟件,打開(kāi)編程軟件聯(lián)機(jī),點(diǎn)程序讀取,再輸入密碼1234,如果讀出了程序,那就不用解了。如果顯示密碼錯(cuò)誤,那就看看監(jiān)控軟件里的數(shù)據(jù).查找1234這個(gè)字符串,在含有1234的字符后會(huì)有一行PLC返回的表示密碼錯(cuò)誤的信息,把這行錯(cuò)誤信息記錄下來(lái)。然后打開(kāi)VB,做個(gè)小工程:讓電腦發(fā)那行含有1234的字符串到串口,當(dāng)然,要有個(gè)循環(huán)語(yǔ)句,就是把1234改成從0000到FFFF,讓電腦不停的嘗試。用IF語(yǔ)句把返回的信息和剛才記錄下來(lái)的那條錯(cuò)誤信息比較,如果信息不同則停止嘗試,試到的密碼就是PLC的密碼了。
看到這您是否已經(jīng)感覺(jué)到PLC加密技術(shù)也不過(guò)如此。海闊天空的感覺(jué)。恭喜你,說(shuō)明你已經(jīng)領(lǐng)會(huì)了加密和解密的真理。具體的實(shí)現(xiàn)方法很多種。但領(lǐng)會(huì)真理是最重要也是最難的。俗話(huà)說(shuō):大道無(wú)術(shù),中到有形,小道若巧。呵呵,先說(shuō)到這吧,一些細(xì)節(jié)一時(shí)半會(huì)也不能介紹的太清楚。大家自己動(dòng)手多嘗試,多動(dòng)腦,多領(lǐng)悟定有收獲。有什么疑問(wèn)也可在論壇給我留言!
記住,我們掌握加解密技術(shù)只是為了更好的學(xué)習(xí),切勿用于其它非法用途哦。在這里提個(gè)醒,以免誤人子弟了。
大家看后,覺(jué)得有不對(duì)的地方還望指正,互相交流。覺(jué)得有道理的話(huà),別忘了頂下帖哦。
刪除了后面的廣告。
[ 此帖被guochunyi在2011-08-07 13:42重新編輯 ]