我前几年做设备用的plc是三菱FX2N,对FX2N的研究已经很长时间了,已经非常熟悉。虽然用了很多方法来做程序保护,包括: 设置密码; 设定通讯格式; 设置记忆性的继电器作为密码; 程序分二部分,先运行一次预先程序,再输入真正的软件运行; 读取的PLC程序(程序 内存数据)写入新的PLC,但一运行就报告出错; 程序大到6000-7000步,程序里面大部分是数字处理,使破解者难以读懂程序等等。 因为见到网上有人(福建的)写出帮人破解PLC的过程里面提到的保护措施几乎跟我所采用的一致,最后也不得不硬着头皮分析了6000多步的程序,最终也破解了。所以我相信我做的设备可能已经被人破解了。 三菱FX3U标榜安全的加密方法,可以设置2级密码及防止上传等,所以本人比较感兴趣。去年从国内回来前,向好朋友阿干要了一个FX3U 16M 带过来研究,因为。我想试试究竟会不会被破解。
花了一个月左右的时间研究,当然每个星期最多只有2天的休息时间来玩,已经对FX3U的物理影像地址、监控X,Y,M,T,C,S位状态地址、FX3U强制位地址、C0-C255当前值、特殊数据D8000-D8511的地址、密码处理过程、通讯口波特率设置,GPPW软件的通讯命令比较清楚,并用VB编写了“FX3U系列PLC专用测试程序2.1.0”方便进行设备接线是否正确调试,也包含了保护状态读取和一级密码处理,如图2。
对于密码的研究结果:三菱的编程软件GPPW对输入的2级密码进行了加密运算后再传送到PLC,所以就算用串口监控软件读取的是加密后的数据,加密算法不得而知。 对于通讯波特率的研究结果:PLC 在上电时产生一个随机数四个字节十六进制树存放在物理地址00EE8H上,GPPW在通讯开始时先在9600波特率下读取了PLC的地址00EE8H起四个8位字节的内容,经过了专用的算法计算(现在未知算法),把计算结果发送到PLC地址00EECH起的四个8位字节中,PLC确认数值正确激活为:波特率可变模式,GPPW再发送命令更改波特率。然而地址00EE8H的内容每次启动都是变化的,要想激活,这就需要知道计算的算法了。 我自己认为无法破解上述两个问题,去年5月份的时候就停止了研究了。阿干去年也跟我说过,拆机做些处理是可以破解的。 一年后的今天,有人在网上说出了破解方法,要做硬件处理,还不用拆机也可以,今天我就试一试看看是否真的可以破解。 运行三菱GPPW软件先对FX3U PLC进行2级密码 禁止所有在线操作,如图3,图4我设置的密码分别是:11111111, 22222222
然后运行我的软件进行查看,如图5、图6
然后PLC断电,按别人说的进行PLC硬件处理,过程不便在这里公开,再运行我的软件检查,如图7 。 保护状态变为了:第二关健字未设置,可以读取密码,这时的密码跟原始的密码是不同的。
然后再运行三菱编程GPPW软件进行读取PLC,要求输入密码时仅输入第一级密码(上面的),真的可以将参数设置、程序、软元件全部读取。 FX3U PLC真的被破解了。
|