oyle
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 5 個(gè)
工控威望: 123 點(diǎn)
下載積分: 523 分
在線時(shí)間: 10(小時(shí))
注冊時(shí)間: 2011-09-20
最后登錄: 2018-07-10
查看oyle的 主題 / 回貼
樓主  發(fā)表于: 2013-05-28 15:45
如題,現(xiàn)在大家都知道豐煒的PLC難解密,于是豐煒的PLC在我目前這個(gè)行業(yè)很流行,隨處可見。那么豐煒的PLC到底能不能解呢?論壇里的郝大俠很久前就發(fā)過一個(gè)帖子,為我等拉開了破解豐煒PLC的序幕!無奈,再也沒有回音了,還是自己動(dòng)手,自力更生吧!
進(jìn)入正題:
        豐煒PLC密碼傳遞方式是:在電腦上鍵入密碼,傳回PLC主機(jī),在PLC內(nèi)部完成比對(duì),然后將結(jié)果回饋到電腦。整個(gè)過程不限制次數(shù)!可以無限次的猜測密碼,這也是軟件破解的理論根據(jù)。,這是最原始的破解方法,由于不限制次數(shù),理論上可以得到正確的密碼!

密碼比對(duì)正確的回應(yīng)是:06 30 30 B8 30 30 30 03 B2 42
密碼比對(duì)錯(cuò)誤的回應(yīng)是:06 30 30 B8 30 B2 33 03 33 30


自己定義一個(gè)函數(shù),功能是:如果1的個(gè)數(shù)為奇數(shù)個(gè),則返回1,如果1的個(gè)數(shù)為偶數(shù)個(gè),則返回0。這個(gè)函數(shù)在豐煒的解密當(dāng)中,相當(dāng)有用。為什么這樣說呢?郝大俠早說過這個(gè)規(guī)律:

30 A0 A0 A0 A0 A0 A0 A0 03 44 42 /0

B1 A0 A0 A0 A0 A0 A0 A0 03 44 C3 /1

B2 A0 A0 A0 A0 A0 A0 A0 03 44 44 /2
                
33 A0 A0 A0 A0 A0 A0 A0 03 44 C5 /3

B4 A0 A0 A0 A0 A0 A0 A0 03 44 C6 /4

35 A0 A0 A0 A0 A0 A0 A0 03 C5 30 /5

36 A0 A0 A0 A0 A0 A0 A0 03 C5 B1 /6

B7 A0 A0 A0 A0 A0 A0 A0 03 C5 B2 /7

B8 A0 A0 A0 A0 A0 A0 A0 03 C5 33 /8

39 A0 A0 A0 A0 A0 A0 A0 03 C5 B4 /9

30 33 35 36 39 B1 B2 B4 03 36 39 /03569124

30 33 35 36 B1 B2 B4 B7 03 36 B7 /03561247

B1 B2 B4 B7 B8 A0 A0 A0 03 33 B1 /12478

30 33 35 36 39 A0 A0 A0 03 33 B2 /03569

63 65 66 69 6A 6C 6F 71 03 B1 B8 /cefijloq

72 74 77 78 A0 A0 A0 A0 03 B2 30 /rtwx

E1 E2 E4 E7 E8 EB ED EE 03 30 B7 /abdghkmn

F0 F3 F5 F6 F9 FA A0 A0 03 C3 C3 /psuvyz

任取一位密碼的ASCII碼 根據(jù)上面函數(shù)校驗(yàn)結(jié)果是奇數(shù),就加80H;是偶數(shù)則不加80H,但是加80H的規(guī)律僅適用于猜測的密碼。
下面就剩下一個(gè)難題:校驗(yàn)碼的規(guī)則!
如果 有了校驗(yàn)碼的規(guī)則,那完全能自己編寫一個(gè)自動(dòng)填密碼的程序,一刻不停的向豐煒PLC發(fā)動(dòng)沖擊!直到它發(fā)來一個(gè)正確的回應(yīng):06 30 30 B8 30 30 30 03 B2 42
oyle
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 5 個(gè)
工控威望: 123 點(diǎn)
下載積分: 523 分
在線時(shí)間: 10(小時(shí))
注冊時(shí)間: 2011-09-20
最后登錄: 2018-07-10
查看oyle的 主題 / 回貼
1樓  發(fā)表于: 2013-05-29 08:31
的確,解密就像摸著石頭過河,此路不通,你可以繞著走嘛!走之前,給這條路插上一個(gè)路牌,走不通是今天的事,也許睡一覺就迷竇頓開!要的就是不驕不躁,不離不棄
進(jìn)入正題:
    昨天提供的一條思路是:從正面猜測密碼校驗(yàn)規(guī)則,該語句82 30 30 B8 30 E1 A0 A0 A0 A0 A0 A0 A0 03 30 C3  /pass(a) 比對(duì)的密碼是小寫a,從第五字節(jié)開始向后鋪開:
E1 A0 A0 A0 A0 A0 A0 A0,豐煒默認(rèn)有八位密碼,你沒填上的那些空缺豐煒會(huì)自動(dòng)給你補(bǔ)上 A0 ,這里只輸入了一個(gè)小寫a,于是豐煒補(bǔ)了7個(gè) A0 : E1 A0 A0 A0 A0 A0 A0 A0。這里再重復(fù)一下,密碼字符的處理規(guī)則:對(duì)每一個(gè)密碼字符,參照它的ASCII碼,如小寫a,ASCII碼是61(Hex),把61H化成二進(jìn)制,對(duì)1的個(gè)數(shù)進(jìn)行奇偶校驗(yàn),是奇數(shù)個(gè)加80H,是偶數(shù)個(gè)原封不動(dòng),如大寫字母 A 100,0001  B100,0010 D100,0100,G100,0111。這條規(guī)則早就是郝大俠給提出的,經(jīng)過我反復(fù)比對(duì),實(shí)踐證明準(zhǔn)確可靠。26個(gè)小寫字母,26個(gè)大寫字母,10個(gè)阿拉伯?dāng)?shù)字經(jīng)過奇偶性校驗(yàn)后分為兩類,原ASCII碼再加80H的有:小寫abdghkmnpsuvyz,大寫CEFIJLOQRTWX,數(shù)字12478,其他的保持ASCII碼原封不動(dòng)。
   這一條規(guī)則,貫穿著整個(gè)解密過程,各種思路都用到這條規(guī)則!感謝郝大俠
  
oyle
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 5 個(gè)
工控威望: 123 點(diǎn)
下載積分: 523 分
在線時(shí)間: 10(小時(shí))
注冊時(shí)間: 2011-09-20
最后登錄: 2018-07-10
查看oyle的 主題 / 回貼
2樓  發(fā)表于: 2013-05-29 08:51
今天剛上班,今天開始另一條思路:深挖指令地址規(guī)則!

82 30 30 B8 30 E1 A0 A0 A0 A0 A0 A0 A0 03 30 C3  /pass(a) 比對(duì)的密碼是小寫a

這一條指令給PLC的動(dòng)作是:我給你密碼,你拿著!你回家比比看看對(duì)是不對(duì),回來告訴我一聲!

82 30 30 B8 B1 B1 B2 33 B4 35 36 B7 B8 03 B7 30 / pass set  這條指令給PLC:喂!我給你密碼,你拿著!回家掛在門上,咱家終于有鎖了!---那么PLC回家之后把鎖掛在哪兒呢?
                             /12345678
06 30 30 B8 B1 30 30 03 B2 C3 /receive done! PLC給我回答一句:老公,我回家把鎖掛上了,你放心吧!---草,沒告訴我掛哪兒了

06 30 30 38 30 30 30 03 32 42 >right! PLC給回答一句:老公,你終于答對(duì)了,進(jìn)來吧!
oyle
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 5 個(gè)
工控威望: 123 點(diǎn)
下載積分: 523 分
在線時(shí)間: 10(小時(shí))
注冊時(shí)間: 2011-09-20
最后登錄: 2018-07-10
查看oyle的 主題 / 回貼
3樓  發(fā)表于: 2013-05-29 10:10
繼續(xù)摸著石頭過河!
現(xiàn)在假定:PLC內(nèi)部寄存器D10的內(nèi)容我設(shè)為12345,十六進(jìn)制是3039H。然后讓PLC給我監(jiān)控這個(gè)寄存器D10,我呢再去監(jiān)控PLC是怎么監(jiān)控的!

82 30 30 35 30 B1 C3 B1 B4 30 B2 03 30 33 /D10:12345,1C1402 讀取寄存器D10的內(nèi)容

06 30 30 35 30 30 30 33 30 33 39 03 C6 B7 /003039

指令:82 30 30 35 30 B1 C3 B1 B4 30 B2 03 30 33 / D10 @ 1C1402  讀取寄存器D10的地址在1C1402

回應(yīng):06 30 30 35 30 30 30 41 41 42 42 03 B2 C5 /D10=00AABB 寄存器D10的內(nèi)容是AABB
以下格式雷同:
82 30 30 35 30 B1 C3 B1 36 30 B2 03 30 35 / D11 @ 1C1602

06 30 30 35 30 30 30 41 41 42 42 03 B2 C5 /D11=00AABB

82 30 30 35 30 B1 C3 B1 36 30 B2 03 30 35 / D11 @ 1C1602

06 30 30 35 30 30 30 36 39 B8 B7 03 30 36 /D11=6987

82 30 30 35 30 B1 C3 B1 B8 30 B2 03 30 B7 /D12 @ 1C1802

06 30 30 35 30 30 30 B4 35 36 33 03 C6 41 /D12=004563

82 30 30 35 30 B1 C3 30 30 30 B2 03 C6 C5 /D0 @ 1C0002

06 30 30 35 30 30 30 B4 35 36 33 03 C6 41 /D0=4563

82 30 30 35 30 B1 C3 30 B2 30 B2 03 30 30 /D1 @ 1C0202

06 30 30 35 30 30 30 B1 B2 33 36 03 C6 B4 /D1=1236