超级加密,便是不必软件给三菱plc加密,而是给不合法的寄存器写入值,你就读不到程序。
这个是我在三菱FX1S的PLC无数次试验,加密能够成功,这个有具体的进程解说和简略的协议剖析,知道这个的加密进程,逆向解密不是不可能的,我们都宣布一下自己的观点与定见,高手就不要见笑,期望高手纠正过错,三菱FX1N 2N的协议有所不同,只需弄懂我给你这么具体的解密进程,那是也能够的,这个就需求我们一起学习,评论。3U 3G也需求我们来剖析和捣鼓,不要那种衣来伸手,饭来张口哦,这种人你看了这帖子,也是白看,要重复的研讨和揣摩。高手就不要扔砖头和臭鸡蛋,需求我们献上鲜花支撑哦。
加密进程如下,说了这么多的废话,上主题:
第一次翻开串口
[00000000] IOCTL_SERIAL_SET_BAUD_RATE Baud Rate: 9600 (此处设置波特率)
[00000000] IOCTL_SERIAL_SET_LINE_CONTROL StopBits: 1, Parity: Even, DataBits: 7(通讯格局)
[00000001] IRP_MJ_WRITE Length: 0001, Data: 02 ( "STX"通讯开始符02H)
[00000001] IRP_MJ_WRITE Length: 0005, Data: 37 32 35 30 46(此处CMD的置位指令37H,32 35 30 46及是要置位的地址‘250F’操作位元件的)
[00000001] IRP_MJ_WRITE Length: 0001, Data: 03 (此处是終,及到这儿完毕的意思代码‘03H’)
[00000001] IRP_MJ_WRITE Length: 0002, Data: 31 37 (校验和,从37H到此处的03H的和,如果有溢出,取最终两位)
[00000008] IRP_MJ_WRITE Length: 0001, Data: 02 ( "STX"通讯开始符02H)
[00000008] IRP_MJ_WRITE Length: 0005, Data: 37 32 35 30 46(此处CMD的置位指令37H,32 35 30 46及是要置位的地址‘250F’
[00000008] IRP_MJ_WRITE Length: 0001, Data: 03 (此处是終,及到这儿完毕的意思代码‘03H’)
[00000008] IRP_MJ_WRITE Length: 0002, Data: 31 37 (校验和,从37H到此处的03H的和,如果有溢出,取最终两位)
[00000015] IRP_MJ_WRITE Length: 0001, Data: 02 ( "STX"通讯开始符02H)
[00000015] IRP_MJ_WRITE Length: 0011, Data: 31 38 30 30 30 30 32 30 30 30 30 (此处的CMD功用码31H,便是写入数据,38 30 30 30便是写入数据的首地址‘8000’30 32便是写入的操作位数这儿是2位 那便是一个双字,30 30 30 30便是这个双字的数据为'0'
[00000015] IRP_MJ_WRITE Length: 0001, Data: 03 (此处是終,及到这儿完毕的意思代码‘03H’)
[00000016] IRP_MJ_WRITE Length: 0002, Data: 31 45 (校验和,从37H到此处的03H的和,如果有溢出,取最终两位)
[00000022] IRP_MJ_WRITE Length: 0001, Data: 02 ( "STX"通讯开始符02H)
[00000022] IRP_MJ_WRITE Length: 0011, Data: 31 38 30 30 30 30 32 30 30 30 30 (此处的CMD功用码31H,便是写入数据,38 30 30 30便是写入数据的首地址‘8000’30 32便是写入的操作位数这儿是2位 那便是一个双字,30 30 30 30便是这个双字的数据为'0'
[00000023] IRP_MJ_WRITE Length: 0001, Data: 03 (此处是終,及到这儿完毕的意思代码‘03H’)
[00000023] IRP_MJ_WRITE Length: 0002, Data: 31 45 (校验和,从37H到此处的03H的和,如果有溢出,取最终两位)
[00000030] IRP_MJ_CLOSE Port Closed 封闭串口
第2次翻开串口
[00000000] IOCTL_SERIAL_SET_BAUD_RATE Baud Rate: 9600
[00000000] IOCTL_SERIAL_SET_LINE_CONTROL StopBits: 1, Parity: Even, DataBits: 7
[00000000] IRP_MJ_WRITE Length: 0001, Data: 02 ( "STX"通讯开始符02H)
[00000000] IRP_MJ_WRITE Length: 0005, Data: 38 32 35 30 46 (此处CMD的复位指令38H,32 35 30 46及是要复位的地址‘250F’操作位元件的,这儿把刚刚置位的205F的地址复位了)
[00000001] IRP_MJ_WRITE Length: 0001, Data: 03 (此处是終,及到这儿完毕的意思代码‘03H’)
[00000001] IRP_MJ_WRITE Length: 0002, Data: 31 38 (校验和,从37H到此处的03H的和,如果有溢出,取最终两位)
[00000007] IRP_MJ_WRITE Length: 0001, Data: 02 ( "STX"通讯开始符02H)
[00000007] IRP_MJ_WRITE Length: 0005, Data: 38 32 35 30 46 (此处CMD的复位指令38H,32 35 30 46及是要复位的地址‘250F’操作位元件的,这儿把刚刚置位的250F的地址复位了)
[00000008] IRP_MJ_WRITE Length: 0001, Data: 03 (此处是終,及到这儿完毕的意思代码‘03H’)
[00000008] IRP_MJ_WRITE Length: 0002, Data: 31 38 (校验和,从37H到此处的03H的和,如果有溢出,取最终两位)
[00000010] IRP_MJ_CLOSE Port Closed