PLC解密网-PLC培训学习-工控自动化人才技术交流

超级管理员

453

帖子

1378

回复

3116

积分

楼主
发表于 2020-02-06 15:25:44 | 查看: 22937 | 回复: 5

经笔者试验,信捷PLC在设计方面有几个漏洞,可以用于PLC解密。  先说软件方面的两个漏洞:  第一, 在PLC已加密的情况下,如果最后一次PLC与电脑连接时,曾向PLC输入密码,在 退出软件前PLC是在线状态的,那么通过串口向PLC发送如下十六进制代码: 先发,  01 01 74 02 00 01 47 FA  再发,  01 03 44 54 00 01 D1 2A 最后发,  01 03 44 0A 00 03 31 39   这时PLC就会直接返回11个字节: 01 03 06 313233343536 C5 5C  在这11个字节中,前3字节是地址和命令代码,最后2字节是CRC校验的高字节和低字节;从第4字节到第9字节,这6位就是密码了,可以直接对应ASCII码表翻译出来,如上面的31-36就是十进制的1-6,所以返回的密码就是123456。  第二, 除了上面的漏洞,还有一个就是,可以通过试错来得到,  信捷的密码解除指令为: 01 03 40 0A 00 01 B1 CB   发出这个指令与01 01 74 02 00 01 47 FA  都会访问密码,不过后者在返回密码后还会上传程序,前者只是单纯的解除密码。 在发出这个指令后,再发如下指令 01 10 44 2C 00 03 06 * * * * * *# $ *表示十六进制的密码,#表示CRC校验的高字节,$表示CRC校验的低字节,这串代码需要用计算机自动发送,运气好的情况下,很快会返回密码。这个方法同样适用于三菱等PLC。  再谈谈硬件方面的漏洞:  先发张图看看,下面的图是信捷XC3-24RT-E的PLC的拆机照片,

1. 图中最上方的PLCC封装的芯片,是PLC的控制芯片。我们知道,在软件上PLC的组成 由系统程序和用户程序组成。系统程序有的也称自举程序,用户程序是用户也就是PLC使用者编写的程序。该块芯片内存放的,就是系统程序。  2. 图中下方右侧是一片单片机,它的作用是辅助主芯片进行系统方面的控制。  3. 图中下方左侧的一大一小两片芯片是存储用户程序的内存芯片,也就是说我们编写的 PLC控制程序都是存放在这里面的。  4. 其他的芯片,包括驱动芯片,通信芯片,运放等等与我们破解无关,就不细述了。 在了解了以上内容后,大家会有疑惑了,PLC程序我们知道在哪里了,问题是密码在哪里呀?其实这个问题很简单,密码一般是放在内存中的,当然也有存放在主控芯片中的。但是无论哪种情况,主控芯片在初始化扫描程序的时候,一定会扫描自身的某个寄存器,这个寄存器存放的是一个标志,即程序有无加密的标志。如果该寄存器被置位(表示程序已加密),那么在运行上位机软件登录时就调用密码输入程序,反之则不进行密码输入程序的调用,直接调用用户程序。因此,一切的玄机都在这个神奇的寄存器中!  我们在无法改变这个特殊寄存器的值的情况下怎么办呢?怎么才能绕过密码读取程序呢?或者直接得到密码呢? 方法有两个:一,更换控制芯片,内存芯片不变,这时PLC的程序就可以直接读出来了;二,更换内存芯片,将内存芯片更换到另一块没有密码的板子上,亦可以直接读出程序。 以上就是此次介绍的利用漏洞破解信捷PLC密码的全部方法了! 除了以上的,当然还有一些其他的漏洞,在此就不分享了。  最后给诸位分享一组万能代码:31 35 32 37 39 31 39 35 31 39 31   使用串口工具发送模式,输入万能代码,然后在HEX/ASCII中切换至ASCII形式,将代码发送即可。  技术需要交流才能进步,望诸位不吝门户之见,坦诚交流。    


超级管理员"zonghudong"于2020-02-24 14:38:46将帖子全局置顶
超级管理员"zonghudong"于2021-08-19 10:02:51将帖子取消全局置顶

普通会员

0

帖子

7

回复

10

积分
沙发
发表于 2020-08-14 20:53:14
本公司需要招聘一名PLC程序员,要求会西门子博图软件,电话13512163656

普通会员

0

帖子

1

回复

5

积分
板凳
发表于 2021-04-02 23:47:56

都是厉害的大佬啊

普通会员

0

帖子

1

回复

5

积分
地板
发表于 2022-10-21 00:10:08

老师你好,有台设备联系不上做的人了,想解密信捷xc2,望指导一二13370861792

普通会员

0

帖子

1

回复

3

积分
4#
发表于 2023-07-21 10:42:30

老师你好,返回的是 01 03 06 20 20 20 20 20 20 B5 C0,对照ASCII提示是“空格键”,上载程序密码输入6次空格提示解锁失败。

普通会员

0

帖子

1

回复

3

积分
5#
发表于 2024-03-16 18:29:26
GEN666 发表于 2023-07-21 10:42:30 4#

老师你好,返回的是 01 03 06 20 20 20 20 20 20 B5 C0,对照ASCII提示是“空格键”,上载程序密码输入6次空格提示解锁失败。

我也遇到了同样的情况,请问你找到解决办法了吗?

01 03 44 0A 00 03 31 39 

01 03 06 20 20 20 20 20 20 B5 C0 


您需要登录后才可以回帖 登录 | 立即注册

技术支持 KZYPLC V2.1 © 2020-2027

欢迎光临昆山中宇工控PLC论坛!您是第 9553646 位访问者, 日访问量: 13774 总访问量: 21318940,当前 2024-10-12 16:51:49 在线人数:63

ICP备案证书号: 苏ICP备14003016-2号