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

刪除了后面的廣告。
[ 此帖被guochunyi在2011-08-07 13:42重新編輯 ]
本帖最近評分記錄:
  • 下載積分:+5(xqx666) 優(yōu)秀文章
  • 下載積分:+5(銘杰工控) 優(yōu)秀文章
    damo
    級別: *
    精華主題: * 篇
    發(fā)帖數(shù)量: * 個
    工控威望: * 點
    下載積分: * 分
    在線時間: (小時)
    注冊時間: *
    最后登錄: *
    查看damo的 主題 / 回貼
    1樓  發(fā)表于: 2011-08-06 17:20
    程序還得自己去寫了,呵呵。你能領(lǐng)悟到加密的思路,我相信編寫個小程序也并不困難了。