PLC程序解密,密碼破解方法步驟分析,有關plc的解決方法,在進行plc編程的過程中,有時需要plc解密的一些操作,這里說一說plc的解密方法,并總結了詳細的解密過程,有需要的朋友參考下。
plc解密方法
1、使用串口調(diào)試器。
2、設置好有關參數(shù)。
設置串口:COM1,波特率:9600,數(shù)據(jù)位:7,校驗:E偶,停止位:1
輸入:輸入EHX,顯示:顯示ASC
確定三菱PLC型號。根據(jù)PLC型號選擇在串口調(diào)試程序的 文本 中輸入對應字符串。
PLC型號 對應字符串
FX2 /STX0700808/ETX6A
FX2N /STX0300808/ETX66
FX2_EPROM /STX0800808/ETX6B
FXON/FXOX /STX0800808/ETX6B
FX1N/FX1X /STX0800808/ETX6B
3、發(fā)送后在接收框中顯示的字符串就是plc的密碼。
如果看不出來的話,將這些字符串拷貝到 HEX格式 中。發(fā)送一次看看。(發(fā)送前記得先斷開PLC)
建議你自己設置一個密碼,然后用這個方法讀取一次看看,以后就知道是怎么回事了。
密碼字符:0-9,A-F。
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系列:
返回: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、在發(fā)送字符欄輸入下面的字符串后點發(fā)送;
02 30 38 30 30 38 30 38 03 36 42
3、返回一串16進制的ASCII碼,30H為數(shù)字0,31H為數(shù)字1,以此類推;
例:02 30 38 30 30 38 30 38 03 36 42
( 37ms )
/STX4236353433323130/ETX41
密碼是:B6543210 《42=B》
以上就是plc解密方法及解密過程的全部內(nèi)容,希望對大家有所幫助。
TypeScript 中的整形和浮點數(shù)類型都是 number,這點和 JavaScript 是一樣的,比如:十進制、二進制、八進制和十六進制的類型都是 number。
let decAge: number = 22; let hexAge: number = 0x0016; let binaryAge: number = 0b10110; let octalAge: number = 0o026; // 以上變量使用 (number).toString(10) 轉換為十進制都為 22 復制代碼
可使用
(number).toString(進制)
將數(shù)字轉換為任意進制的類型。
字符串 → string
和 JavaScript 一樣,字符串的值使用單引號或者雙引號包裹:
let myName: string = "編程三昧"; let myHomepage: string = `example.com/${myName}`; 復制代碼
數(shù)組
TypeScript 中定義數(shù)組的方式有兩種。
第一種是元素類型后面接上 []
,表示由此類型元素組成的一個數(shù)組:
let arr: number[] = [1, 2, 3, 4]; // 如果在數(shù)組中加入其他元素會報錯 復制代碼
第二種是使用數(shù)組泛型定義數(shù)組:
let arr1: any[] = [1, "2", 3, "4"]; // 這個數(shù)組中可以假如任意類型的元素 復制代碼
元組 Tuple
元組類型允許表示一個已知元素數(shù)量和類型的數(shù)組,各元素的類型不必相同。
let arr2:[number, string, number] = [1,"2",3]; // 若果寫成 [1,2,3] 會報錯 復制代碼
元素是嚴格規(guī)定了數(shù)組的長度和每個位置的元素類型,并且在賦值時需要嚴格對應,否則會報錯。
枚舉
enum
類型是對JavaScript標準數(shù)據(jù)類型的一個補充。 像C#等其它語言一樣,使用枚舉類型可以為一組數(shù)值賦予友好的名字。
enum Color {Red, Green, Blue} let c: Color = Color.Green; 復制代碼
默認情況下,從0
開始為元素編號。 你也可以手動地指定成員的數(shù)值。 例如,我們將上面的例子改成從 1
開始編號:
enum Color {Red = 1, Green, Blue} let c: Color = Color.Green; 復制代碼
或者,全部都采用手動賦值:
enum Color {Red = 1, Green = 2, Blue = 4} let c: Color = Color.Green; 復制代碼
枚舉類型提供的一個便利是你可以由枚舉的值得到它的名字。 例如,我們知道數(shù)值為2,但是不確定它映射到Color里的哪個名字,我們可以查找相應的名字:
enum Color {Red = 1, Green, Blue} let colorName: string = Color[2]; console.log(colorName); ?// 顯示'Green'因為上面代碼里它的值是2
上一節(jié),我們已經(jīng)把gitlab、jenkins、harbor、k8s都已經(jīng)搭建好了,這一節(jié)我們來編寫jenkins的pipline將我們的服務通過jenkins完整的發(fā)布到k8s中。
2、部署中間件
將mysql、redis、es等部署到k8s之外 , 模擬用作線上獨立環(huán)境(至于線上你想把某些中間件部署到k8s內(nèi)部這個自行處理,本次重點是如何將go-zero開發(fā)的微服務部署到k8s集群內(nèi)部),這里我就直接使用項目下的docker-compose-env.yaml了,把所有依賴的第三方中間件環(huán)境直接安裝在srv-data.com(192.168.1.181)這臺服務器,前提是這臺服務器已經(jīng)安裝好docker、docker-compose。
登陸到 192.168.1.181
$ mkdir data && cd data && vim docker-compose.yml$ docker-compose up -d$ docker-compose ps #查看確認
3、獨立配置
將每個服務的配置都獨立出來,統(tǒng)一放在一個git倉庫,這樣只給一個人線上倉庫的權限,如果線上配置有變直接修改這個倉庫的文件,在jenkins做cd的時候,會先拉取代碼再拉取對應服務的配置自動構建,具體可以看后面的pipline。
【問】為什么不用配置中心?
1)修改db、redis等需要重啟服務,但是有一些配置又不需要重啟服務,運維又要去記,記混了比較容易造成線上事故
2)方便回滾。我們發(fā)新版本到線上,并且又改了新版本配置。這時候線上用戶反饋有問題,線上需要快速回滾的話,如果我們使用將文件構建到鏡像中,直接使用k8s一行命令就可以將上一個版本代碼加配置直接回滾回來。如果使用了配置中心,回滾了代碼,還要將上個版本的配置去配置中心改回來,很麻煩。
審核編輯:湯梓紅
評論