PLC程式密碼破解方法,並總結了詳細的解密過程

公眾號“電路一點通

”聚各種電路技術資源庫、電路圖、電路原理圖等;數百萬電子工程師彙集學習交流

PLC程式解密,密碼破解方法步驟分析,有關plc的解決方法,在進行plc程式設計的過程中,有時需要plc解密的一些操作,這裡說一說plc的解密方法,並總結了詳細的解密過程,有需要的朋友參考下。

PLC程式密碼破解方法,並總結了詳細的解密過程

plc解密方法

1、使用串列埠偵錯程式。

2、設定好有關引數。

設定串列埠:COM1,波特率:9600,資料位:7,校驗:E偶,停止位:1

輸入:輸入EHX,顯示:顯示ASC

確定三菱PLC型號。根據PLC型號選擇在串列埠除錯程式的 文字 中輸入對應字串。

PLC型號 對應字串

FX2 /STX0700808/ETX6A

FX2N /STX0300808/ETX66

FX2_EPROM /STX0800808/ETX6B

FXON/FXOX /STX0800808/ETX6B

FX1N/FX1X /STX0800808/ETX6B

3、傳送後在接收框中顯示的字串就是plc的密碼。

如果看不出來的話,將這些字串複製到 HEX格式 中。傳送一次看看。(傳送前記得先斷開PLC)

建議你自己設定一個密碼,然後用這個方法讀取一次看看,以後就知道是怎麼回事了。

密碼字元:0-9,A-F。

A系列:

傳送: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

傳送: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系列:

返回:34 31 34 32 34 33 34 34 34 35 34 36 34 31 34 32

密碼:ABCDEFAB

分析:接收到的是ASC碼,對應的字元為 4 1 4 2 4 3 4 4 4 5 4 6 4 1 4 2,以每2字元為單位組合,即

41 42 43 44 45 46 41 42,

再譯為對應的字元即為 ABCDEFAB。

1、在傳送字元欄輸入下面的字串後點傳送;

02 30 38 30 30 38 30 38 03 36 42

3、返回一串16進位制的ASCII碼,30H為數字0,31H為數字1,以此類推;

例:02 30 38 30 30 38 30 38 03 36 42

( 37ms )

密碼是:B6543210 《42=B》

以上就是plc解密方法及解密過程的全部內容,希望對大家有所幫助。

TypeScript 中的整形和浮點數型別都是 number,這點和 JavaScript 是一樣的,比如:十進位制、二進位制、八進位制和十六進位制的型別都是 number。

let decAge: number = 22; let hexAge: number = 0x0016; let binaryAge: number = 0b10110; let octalAge: number = 0o026; // 以上變數使用 (number)。toString(10) 轉換為十進位制都為 22 複製程式碼

可使用 將數字轉換為任意進位制的型別。

字串 string

和 JavaScript 一樣,字串的值使用單引號或者雙引號包裹:

let myName: string = “程式設計三昧”; let myHomepage: string = `example。com/$`; 複製程式碼

陣列

TypeScript 中定義陣列的方式有兩種。

第一種是元素型別後面接上 ,表示由此型別元素組成的一個數組:

let arr: number[] = [1, 2, 3, 4]; // 如果在陣列中加入其他元素會報錯 複製程式碼

第二種是使用陣列泛型定義陣列:

let arr1: any[] = [1, “2”, 3, “4”]; // 這個陣列中可以假如任意型別的元素 複製程式碼

元組 Tuple

元組型別允許表示一個已知元素數量和型別的陣列,各元素的型別不必相同。

let arr2:[number, string, number] = [1,“2”,3]; // 若果寫成 [1,2,3] 會報錯 複製程式碼

元素是嚴格規定了陣列的長度和每個位置的元素型別,並且在賦值時需要嚴格對應,否則會報錯。

列舉

型別是對JavaScript標準資料型別的一個補充。像C#等其它語言一樣,使用列舉型別可以為一組數值賦予友好的名字。

enum Color let c: Color = Color。Green; 複製程式碼

預設情況下,從開始為元素編號。你也可以手動地指定成員的數值。例如,我們將上面的例子改成從 開始編號:

enum Color let c: Color = Color。Green; 複製程式碼

或者,全部都採用手動賦值:

enum Color let c: Color = Color。Green; 複製程式碼

列舉型別提供的一個便利是你可以由列舉的值得到它的名字。例如,我們知道數值為2,但是不確定它對映到Color裡的哪個名字,我們可以查詢相應的名字:

enum Color let colorName: string = Color[2]; console。log(colorName); // 顯示‘Green’因為上面程式碼裡它的值是2

上一節,我們已經把gitlab、jenkins、harbor、k8s都已經搭建好了,這一節我們來編寫jenkins的pipline將我們的服務透過jenkins完整的釋出到k8s中。

2、部署中介軟體

將mysql、redis、es等部署到k8s之外 , 模擬用作線上獨立環境(至於線上你想把某些中介軟體部署到k8s內部這個自行處理,本次重點是如何將go-zero開發的微服務部署到k8s叢集內部),這裡我就直接使用專案下的docker-compose-env。yaml了,把所有依賴的第三方中介軟體環境直接安裝在srv-data。com(192。168。1。181)這臺伺服器,前提是這臺伺服器已經安裝好docker、docker-compose。

登陸到 192。168。1。181

$ mkdir data && cd data && vim docker-compose。yml$ docker-compose up -d$ docker-compose ps #檢視確認

3、獨立配置

將每個服務的配置都獨立出來,統一放在一個git倉庫,這樣只給一個人線上倉庫的許可權,如果線上配置有變直接修改這個倉庫的檔案,在jenkins做cd的時候,會先拉取程式碼再拉取對應服務的配置自動構建,具體可以看後面的pipline。

【問】為什麼不用配置中心?

1)修改db、redis等需要重啟服務,但是有一些配置又不需要重啟服務,運維又要去記,記混了比較容易造成線上事故

2)方便回滾。我們發新版本到線上,並且又改了新版本配置。這時候線上使用者反饋有問題,線上需要快速回滾的話,如果我們使用將檔案構建到映象中,直接使用k8s一行命令就可以將上一個版本程式碼加配置直接回滾回來。如果使用了配置中心,回滾了程式碼,還要將上個版本的配置去配置中心改回來,很麻煩。

資料推薦

/

大傢伙都關注了這個公眾號

關注電子技術控,回覆:進群

(涉及領域:電子、電氣/電工(考證題庫)、通訊、維修、自動化、程式等)

點個

「贊+在看+分享+收藏」

4連

TAG: letcolorNumber0034