? ?廣州龍躍自動(dòng)化專業(yè)破解解密各類plc加密,全國(guó)24小時(shí)聯(lián)系手機(jī):18520649527 【關(guān)技術(shù)】 微信:guanshiyou009如有任何問(wèn)題請(qǐng)打手機(jī)或者添加微信,謝謝支持
各位高手可以給出個(gè)三菱PLC程序密碼解除軟件.謝謝
三菱FX,A系列PLC解密方法
1,使用串口調(diào)試器,設(shè)置好有關(guān)參數(shù)。
2,確定三菱PLC型號(hào),根據(jù)PLC型號(hào)選擇在串口調(diào)試器中輸入對(duì)應(yīng)字符串。
附:
PLC型號(hào) 對(duì)應(yīng)字符串
FX2 \STX0700808\ETX6A
FX2N \STX0300808\ETX66
FX2_EPROM \STX0800808\ETX6B
FXON/FXOX \STX0800808\ETX6B
FX1N/FX1X \STX0800808\ETX6B
3、發(fā)送后在接收框中將顯示一串字符串,如果你聰明的話一定會(huì)發(fā)現(xiàn)這些字符串的奧妙了。
(就是返回的密碼)
如果看不出來(lái)的話,將這些字符串拷貝到 HEX格式 中,發(fā)送一次看看。(發(fā)送前記得先斷開(kāi)PLC)
建議你自己設(shè)置一個(gè)密碼,然后用這個(gè)方法讀取一次看看,以后就知道是怎么回事了。
密碼字符:0-9,A-F。
4,舉例說(shuō)明破解A和FX系列PLC密碼:
A系列:
發(fā)送:A2 07 00 FF 02 05 AE 00 08 C3
接收:0B 00 FF 02 00 AA 77 55 BB EF CD AB A4 00
密碼:ABCDEF
發(fā)送:A2 07 00 FF 02 05 AE 00 08 C3
接收:0B 00 FF 02 00 AA 77 55 BB C1 B1 A1 A4
密碼:A1B1C1
分析:密碼為返回字符中BB至A4之間的字符,以每2字符為單位,從右往左讀出。
FX系列:
設(shè)置串口:COM1,波特率:9600,數(shù)據(jù)位:7,校驗(yàn):E偶,停止位:1
輸入:EHX,顯示:ASC
群里找我63506472
發(fā)送:
02 30 38 30 30 38 30 38 03 36 42
返回一串16進(jìn)制的ASCII碼,30為數(shù)字0,31為數(shù)字1,01為A,02為B,以此類推;
例:02 30 38 30 30 38 30 38 03 36 42
\STX4236353433323130\ETX41
密碼是:B6543210 《42=B》
三菱PLC如何加密,解密
三菱的FX1S,FX1N,FX2N的是很好解密,如確實(shí)要對(duì)程序保密,最好選擇FX3U,FX3G或者Q系列PLC。
加密的方法是在GX軟件下:“在線”菜單——“登錄關(guān)鍵字”——“創(chuàng)建,更改關(guān)鍵字”。
[img]能給我發(fā)個(gè)VB與三菱PLC通訊的源代碼實(shí)例嗎,非常感謝啊
得說(shuō)明是什么型號(hào)的PLC啊,串口還是網(wǎng)口,VB6還是VB.NET?
算了,寫(xiě)段代碼,VB.NET與Q系列以太網(wǎng)通訊的:
Imports?System.Net
Imports?System.Runtime.InteropServices
Public?Class?Form1
????Dim?Handle1?As?Int32
????Dim?EntLink1?As?Boolean
????Dim?ScanCount1?As?Long
????Dim?PLC?As?New?EntQsPlc_Asc.PlcClient'EntQsPlc_ASC.DLL是Q系列以太網(wǎng)通訊組件
????Public?Declare?Function?timeGetTime?Lib?"winmm.dll"?()?As?UInt32
????Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
????????Me.CenterToScreen()
????????cmbReadMry.Items.Clear()
????????cmbReadMry.Items.Add("X")
????????cmbReadMry.Items.Add("Y")
????????cmbReadMry.Items.Add("M")
????????cmbReadMry.Items.Add("D")
????????cmbReadMry.Items.Add("R")
????????cmbReadMry.Items.Add("Z")
????????'
????????cmbWriteMry.Items.Clear()
????????cmbWriteMry.Items.Add("X")
????????cmbWriteMry.Items.Add("Y")
????????cmbWriteMry.Items.Add("M")
????????cmbWriteMry.Items.Add("D")
????????cmbWriteMry.Items.Add("R")
????????cmbWriteMry.Items.Add("Z")
????????'
????????cmbBitMry.Items.Clear()
????????cmbBitMry.Items.Add("X")
????????cmbBitMry.Items.Add("Y")
????????cmbBitMry.Items.Add("M")
????????'
????????cmbReadType.Items.Clear()
????????cmbReadType.Items.Add("INT16")
????????cmbReadType.Items.Add("UINT16")
????????cmbReadType.Items.Add("DINT32")
????????cmbReadType.Items.Add("HEX32")
????????cmbReadType.Items.Add("REAL32")
????????cmbReadType.Items.Add("BIN16")
????????'
????????cmbWriteType.Items.Clear()
????????cmbWriteType.Items.Add("INT16")
????????cmbWriteType.Items.Add("UINT16")
????????cmbWriteType.Items.Add("DINT32")
????????cmbWriteType.Items.Add("HEX32")
????????cmbWriteType.Items.Add("REAL32")
????????cmbWriteType.Items.Add("BIN16")
????????cmbReadMry.SelectedIndex?=?3
????????cmbWriteMry.SelectedIndex?=?3
????????cmbBitMry.SelectedIndex?=?2
????????cmbReadType.SelectedIndex?=?0
????????cmbWriteType.SelectedIndex?=?0
????????lstRead.Items.Clear()
????????txtWrite.Text?=?""
????????'
????????cmbCmdType.SelectedIndex?=?0
????End?Sub
????Private?Sub?butLink_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butLink.Click
????????Dim?re?As?Short
????????Dim?restr?As?String?=?""
????????re?=?PLC.EntLink(Trim(txtLocalIP.Text),?Val(txtLocalPort.Text),?Trim(txtRemoteIP.Text),?Val(txtRemotePort.Text),?"DEMO",?Handle1,?1000,?CBool(cmbCmdType.SelectedIndex))
????????txtReLink.Text?=?re.ToString
????????If?re?=?0?Then
????????????EntLink1?=?True
????????????MsgBox("PLC聯(lián)接成功!?")
????????Else
????????????EntLink1?=?False
????????????MsgBox("PLC聯(lián)接失敗:?"??restr)
????????End?If
????End?Sub???????????
????Private?Sub?butClose_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butClose.Click
????????Dim?re?As?Short
????????If?Not?EntLink1?Then
????????????MsgBox("還未與PLC建立聯(lián)接!")
????????????Exit?Sub
????????End?If
????????re?=?PLC.DeLink(Handle1)
????????txtReClose.Text?=?re.ToString
????End?Sub
????Private?Sub?butRead_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butRead.Click
????????Dim?re?As?Short
????????Dim?i?As?Short
????????Dim?RD()?As?Object
????????ReDim?RD(Val(txtReadCnt.Text?-?1))
????????If?Not?EntLink1?Then
????????????MsgBox("還未與PLC建立聯(lián)接!")
????????????'?Exit?Sub
????????End?If
????????Dim?mry?As?EntQsPlc_Asc.PlcClient.PlcMemory?=?cmbReadMry.SelectedIndex?+?1
????????Dim?typ?As?EntQsPlc_Asc.PlcClient.DataType?=?cmbReadType.SelectedIndex?+?1
????????re?=?PLC.CmdRead(Handle1,?mry,?typ,?CInt(txtReadAdd.Text),?CUShort(txtReadCnt.Text),?RD)
????????txtReRead.Text?=?re.ToString
????????lstRead.Items.Clear()
????????For?i?=?0?To?UBound(RD)?Step?1
????????????If?Not?IsNothing(RD(i))?Then?lstRead.Items.Add(RD(i))
????????Next?i
????????If?re??0?Then
????????????Timer1.Enabled?=?False
????????????butScan.Text?=?"Cycle?R/W"
????????End?If
????End?Sub
????Private?Sub?butWrite_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butWrite.Click
????????Dim?re?As?Short
????????Dim?i?As?Short
????????Dim?temp()?As?String
????????Dim?WD()?As?Object
????????If?Not?EntLink1?Then
????????????MsgBox("還未與PLC建立聯(lián)接!")
????????????Exit?Sub
????????End?If
????????ReDim?WD(Val(txtWriteCnt.Text)?-?1)
????????temp?=?Split(txtWrite.Text,?vbCrLf)
????????For?i?=?0?To?UBound(WD)?Step?1
????????????If?i??UBound(temp)?Then
????????????????WD(i)?=?0
????????????Else
????????????????WD(i)?=?Trim(temp(i))
????????????End?If
????????Next?i
????????Dim?mry?As?EntQsPlc_Asc.PlcClient.PlcMemory?=?cmbWriteMry.SelectedIndex?+?1
????????Dim?typ?As?EntQsPlc_Asc.PlcClient.DataType?=?cmbWriteType.SelectedIndex?+?1
????????re?=?PLC.CmdWrite(Handle1,?mry,?typ,?CInt(txtWriteAdd.Text),?CUShort(txtWriteCnt.Text),?WD)
????????txtReWrite.Text?=?re.ToString
????????If?re??0?Then
????????????Timer1.Enabled?=?False
????????????butScan.Text?=?"Cycle?R/W"
????????End?If
????End?Sub
????
????
????Private?Sub?butScan_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butScan.Click
????????If?Not?EntLink1?Then
????????????MsgBox("還未與PLC建立聯(lián)接!")
????????????Exit?Sub
????????End?If
????????Timer1.Enabled?=?Not?Timer1.Enabled
????????If?Timer1.Enabled?Then
????????????ScanCount1?=?0
????????????butScan.Text?=?"Stop?R/W"
????????Else
????????????butScan.Text?=?"Cycle?R/W"
????????End?If
????End?Sub
????Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
????????Timer1.Enabled?=?False
????????Dim?tim?As?Integer?=?timeGetTime
????????If?Not?EntLink1?Then
????????????MsgBox("還未與PLC建立聯(lián)接!")
????????????Exit?Sub
????????End?If
????????'
????????Call?butRead_Click(Nothing,?Nothing)
????????Call?butWrite_Click(Nothing,?Nothing)
????????'
????????If?(Val(txtReRead.Text)??0)?Or?(Val(txtReWrite.Text)??0)?Then
????????????butScan.Text?=?"Cycle?R/W"
????????????Exit?Sub
????????Else
????????????ScanCount1?+=?1
????????????txtScanCnt.Text?=?ScanCount1
????????????txtScanPrd.Text?=?(timeGetTime?-?tim)??"ms"
????????End?If
????????Timer1.Enabled?=?True
????End?Sub
????Private?Sub?butBitTest_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitTest.Click
????????If?Not?EntLink1?Then
????????????MsgBox("還未與PLC建立聯(lián)接!")
????????????Exit?Sub
????????End?If
????????Dim?rd?As?Boolean
????????Dim?re?As?Short
????????Dim?mry?As?EntQsPlc_Asc.PlcClient.PlcMemory?=?cmbBitMry.SelectedIndex?+?1
????????re?=?PLC.Bit_Test(Handle1,?mry,?CUShort(txtBitAdd.Text),?rd)
????????txtBitTest.Text?=?rd
????????txtReBit.Text?=?re
????End?Sub
????Private?Sub?butBitSet_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitSet.Click
????????If?Not?EntLink1?Then
????????????MsgBox("還未與PLC建立聯(lián)接!")
????????????Exit?Sub
????????End?If
????????Dim?re?As?Short
????????re?=?PLC.Bit_Set(Handle1,?cmbBitMry.SelectedIndex?+?1,?Val(txtBitAdd.Text))
????????txtReBit.Text?=?re
????End?Sub
????Private?Sub?butBitRst_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?butBitRst.Click
????????If?Not?EntLink1?Then
????????????MsgBox("還未與PLC建立聯(lián)接!")
????????????Exit?Sub
????????End?If
????????Dim?re?As?Short
????????re?=?PLC.Bit_Reset(Handle1,?cmbBitMry.SelectedIndex?+?1,?Val(txtBitAdd.Text))
????????txtReBit.Text?=?re
????End?Sub
End?Class
三菱Q系列PLC程序解密方法?
如果用戶忘記了PLC的密碼,將無(wú)法解碼。因?yàn)樗械膮?shù)都已經(jīng)被加密了。這時(shí),用戶應(yīng)當(dāng)初始化PLC的程序和密碼。
根據(jù)PLC型號(hào)不同,初始化PLC的方法也不一樣。用戶可以通過(guò)除去PLC CPU模塊中的電池的方法來(lái)清除密碼和程序。
在Q系列PLC的密碼是一個(gè)小難以找到的串行接口單元,現(xiàn)在跟蹤的USB數(shù)據(jù)包。密碼被讀回至電腦,就可以找到它。
會(huì)發(fā)生什么是數(shù)字是由前9封裝。尋找一個(gè)fffffff的后整批再看看之前,就會(huì)找到答案。90 9193 9504 0700 06幾段幾段幾段幾段幾段幾段幾段幾段。
現(xiàn)在看到答案是密碼0135。通過(guò)上面使用的任何數(shù)據(jù)USB數(shù)據(jù)渠道。三菱公司的PLC系列ACPU的舊與COM- LITE32開(kāi)裂為十六進(jìn)制數(shù)字的密碼與QCPU系列PLC的AA,0到9可以被指定為小型或大型的字母表。
擴(kuò)展資料:
三菱PLC狀態(tài)編程方法:
1、對(duì)狀態(tài)進(jìn)行編程處理,必須使用步進(jìn)接點(diǎn)指令STL,它表示這些處理(包括驅(qū)動(dòng)、轉(zhuǎn)移)均在該狀態(tài)接點(diǎn)形成的子母線上進(jìn)行。
2、與STL步進(jìn)接點(diǎn)相連的觸點(diǎn)應(yīng)使用LD或LDI指令,下一條STL指令的出現(xiàn)意味著當(dāng)前STL程序區(qū)的結(jié)束和新的STL程序區(qū)的開(kāi)始。RET指令意味著整個(gè)STL程序區(qū)的結(jié)束,LD點(diǎn)返回左側(cè)母線。
每個(gè)STL步進(jìn)接點(diǎn)驅(qū)動(dòng)的電路一般放在一起,最后一個(gè)STL電路結(jié)束時(shí)(即步進(jìn)程序的最后),一定要使用RET指令,否則將出現(xiàn)“程序語(yǔ)法錯(cuò)誤”信息,PLC不能執(zhí)行用戶程序。
3、狀態(tài)編程順序?yàn)椋合冗M(jìn)行驅(qū)動(dòng)處理,再進(jìn)行轉(zhuǎn)移處理,不能顛倒。驅(qū)動(dòng)處理就是該狀態(tài)的輸出處理,轉(zhuǎn)移處理就是根據(jù)轉(zhuǎn)移方向和轉(zhuǎn)移條件實(shí)現(xiàn)下一個(gè)狀態(tài)的轉(zhuǎn)移。
參考資料來(lái)源:百度百科——三菱QPLC
? ?廣州龍躍自動(dòng)化專業(yè)破解解密各類plc加密,全國(guó)24小時(shí)聯(lián)系手機(jī):18520649527 【關(guān)技術(shù)】 微信:guanshiyou009如有任何問(wèn)題請(qǐng)打手機(jī)或者添加微信,謝謝支持