介紹PLC可編程控制器密碼破解程序 <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正!
朋友拿回來個plc,他們工作上用那控制電器柜里的變頻器,里面要輸程序(通過串口com1),每次找人家都要收費,而且程序是加密地,沒密碼導(dǎo)不出來,我覺定來個破解,找了很久破解工具,都是要匯款才行,自力更生把,看了不久的vb,就來編個程序吧,時間有限,經(jīng)歷有限,一個星期的測試,終于知道了破解方法。先說下思路把:: <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正!
我是在臺達的plc上測試的,條件有限,沒有測試種類,但方法差不多 <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正!
通過com1進行串口通訊,當(dāng)輸入密碼后pc向plc發(fā)出加密過的數(shù)據(jù),plc返回數(shù)據(jù)進行比對是否一致,錯誤則跳轉(zhuǎn)到錯誤提示,破解有兩個途徑,密碼比對是在pc端進行的,可以通過匯編把那個通信軟件改了當(dāng)比對時跳轉(zhuǎn)導(dǎo)正確地址,但程序太多的控件,找不到內(nèi)存的跳轉(zhuǎn)地址(還是本人的水平問題),但匯編發(fā)現(xiàn)大概是在0045210E 地址處,這種方法不太可行,也請通過此法研究的朋友和我交流 <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正!
第二種方法也我試驗成功的,通過對返回數(shù)據(jù)的解密來得到密碼,我測試的工具是串口精靈,通過無數(shù)次的分析本人知道了加密的方式
例:隨便輸入密碼后收到的數(shù)據(jù)為
3A 30 31 30 33 30 32 34 34 35 35 36 31 0D 0A 3A 30 31 30 31 30 31 32
44 44 30 0D 0A 3A 30 31 30 33 30 34 33 31 33 31 33 31 33 31 33 34 0D 0A <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正!
可以看出有的規(guī)律,從紅色的3a即最后一個,后數(shù)12位開始,去兩個數(shù)為一組,取八組即33 31 33 31 33 31 33 31 是在hex下,把這組數(shù)據(jù)按ASCII碼轉(zhuǎn)換為字符,得到31313131,再按hex----ASCII的方式轉(zhuǎn)換一次,得到明文密碼,1111,密碼不同,解不同,
這樣做太麻煩了,寫個程序,用vb完成。我剛看了基本vb的書,還不太熟悉程序還沒做完,只做了通信部分的代碼
我會盡快做完并在博客發(fā)布 <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正。》
先在窗體中加入MSComm控件,在部件中引用,迷你版的vb沒有,可以下載該控件并注冊,
Option Explicit’強制變量聲明
Private Sub Command1_Click()’按鈕單擊事件
MSComm1.PortOpen =ture ’關(guān)閉串口
MSComm1.CommPort = 1 ’設(shè)置串口為com1
MSComm1.Settings = "9600,n,8,1" ’通訊參數(shù) 波特率 奇偶校驗 數(shù)據(jù)位 停止位
MSComm1.InputMode = comInputModeBinary ’二進制接收
MSComm1.InBufferCount = 0 ’清空接收緩沖區(qū)
MSComm1.RThreshold = 1 ’緩沖區(qū)中接收到一個字符,就產(chǎn)生一次OnComm事件
End Sub <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正!
Private Sub MSComm1_OnComm() ’有數(shù)據(jù)傳送時觸發(fā)
Dim w As Variant’定義變量
Dim a,b,c As Byte’定義字節(jié)數(shù)組
Select Case MSComm1.CommEvent ’’CommEvent屬性:返回最近的通訊事件或錯誤。通過對它具體屬性值的查詢,我們就可以獲得通訊事件和通 訊錯誤的完整信息。當(dāng)其值是comEvReceive時表示接收到數(shù)據(jù)。 <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正!
Case comEvReceive ’有接收事件
w = MSComm1.Input ’接收到的數(shù)據(jù)存放到indata里
a = AscB(indata) ’返回indata的值
MSComm1.InBufferCount = 0’ 清空接收緩沖區(qū)
End Select
End Sub <<版權(quán)聲明:本文由容源電子網(wǎng)(www.4811775.com)整理提供,部分內(nèi)容來源于網(wǎng)絡(luò),如有侵犯到你的權(quán)利請與我們聯(lián)系更正。》
本文地址:http://www.4811775.com/dz/21/plc_85.shtml
本文標簽:
猜你感興趣:
無