1,直读法。
2,暴力破解法。
直读法
就以三菱FX2为例: 先打开串口监控软件(到网上百度一下就有很多),监控串口的进出数据。然后让再运行FXWIN(PLC编程软件)和PLC联机,选了型号后点程序读取这时候在串口监控软件中可以看见电脑和PLC间互发了几串字符,最后一行由PLC发给电脑的就是密码,只是它是ASII码对照一下表格,把它翻译成字符就得出密码了。呵,这是三菱PLC的漏洞,它的编程软件是先将密码读到电脑内存在和用户输入的密码进行比较,密码对就可以读出程序。我试验了一下,用串口软件把倒数第二行字符发到PLC,PLC同样返回了密码。说到这大家知道这个解密软件怎么做了吧?整个解密软件只要发一串字符到PLC,再把PLC返回的带密码的字符翻译成密码就可以了。 有些PLC就没这样的漏洞了,像OMRON和FUJI NB2,它们都是把用户输入的密码传到PLC由PLC判断密码是否正确才判定能否读取程序。
对付它们就用第二种方法了,
暴力破解:
同样运行串口监控软件,打开编程软件联机,点程序读取,再输入密码1234,如果读出了程序,那就不用解了。如果显示密码错误,那就看看监控软件里的数据.查找1234这个字符串,在含有1234的字符后会有一行PLC返回的表示密码错误的信息,把这行错误信息记录下来。然后打开VB,做个小工程:让电脑发那行含有1234的字符串到串口,当然,要有个循环语句,就是把1234改成从0000到FFFF,让电脑不停的尝试。用IF语句把返回的信息和刚才记录下来的那条错误信息比较,如果信息不同则停止尝试,试到的密码就是PLC的密码了。
看到这您是否已经感觉到PLC加密技术也不过如此。海阔天空的感觉。恭喜你,说明你已经领会了加密和解密的真理。具体的实现方法很多种。但领会真理是最重要也是最难的。俗话说:大道无术,中到有形,小道若巧。呵呵,先说到这吧,一些细节一时半会也不能介绍的太清楚。大家自己动手多尝试,多动脑,多领悟定有收获。