damo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看damo的 主题 / 回贴
楼主  发表于: 2011-08-06 14:30
PLC加密技术,其实就是开发者的一种思路,只要明白了作者的加密思路,就能对它很快的解密。其实,在自然界中不管是PLC,还是电梯主板只要有加密的存在就会有破解它的秘籍,呵呵,这二者永远都是矛和盾的结合体。好了不说废话了,入正题。
先介绍两种PLC解密方法: 1,直读法。2,暴力破解法。
直读法就以三菱FX2为例: 先打开串口监控软件(到网上百度一下就有很多,这里我用论坛PLC版里的串口并口监控软件),监控串口的进出数据。然后让再运行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加密技术也不过如此。海阔天空的感觉。恭喜你,说明你已经领会了加密和解密的真理。具体的实现方法很多种。但领会真理是最重要也是最难的。俗话说:大道无术,中到有形,小道若巧。呵呵,先说到这吧,一些细节一时半会也不能介绍的太清楚。大家自己动手多尝试,多动脑,多领悟定有收获。有什么疑问也可在论坛给我留言!
记住,我们掌握加解密技术只是为了更好的学习,切勿用于其它非法用途哦。在这里提个醒,以免误人子弟了。
大家看后,觉得有不对的地方还望指正,互相交流。觉得有道理的话,别忘了顶下帖哦。

删除了后面的广告。
[ 此帖被guochunyi在2011-08-07 13:42重新编辑 ]
本帖最近评分记录:
  • 下载积分:+5(xqx666) 优秀文章
  • 下载积分:+5(铭杰工控) 优秀文章
    xf_lyj
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看xf_lyj的 主题 / 回贴
    1楼  发表于: 2011-08-06 14:48
    思路明白啦,但是一般人还是很难做到,最好是有现成的程序。
    xf_lyj
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看xf_lyj的 主题 / 回贴
    2楼  发表于: 2011-08-06 15:18
    这两种方法遇到滚动密码那就把人害惨了。