浅谈西门子S7-200系列PLC之反拆机加密
1.先了解普遍的PLC解密方式。知己知彼才能百战不殆,你只有全面的了解了现行的PLC普遍解密方式,才能以此作出更好的加密方案。现在出售的都是拆机解密软件,还没有直读软件出世,都是通过拆取EEPROM芯片,修改其系统块而去除了密码保护得到程序的。这样的解密方法确实达到了读取程序的目的,但是这个药方副作用太大,完全改变了系统块的原始设置。由于不知道也无法知道原始系统块的设置,匆匆忙忙就用一个从其他PLC得到的系统块替换过来,完全改变了原有的设置,那么由此我们就可以根据他的这个缺陷而制造出有针对性的反拆机加密。现在您可以先下载例程看看了
2.一定要设置4级密码保护。2.0以上版本的PLC都具备4级加密功能,这也是最高级别的加密,如果您单独设置3级加密那么很容易被破解。因为只需拆机读取了芯片就得到了原始密码,无需修改芯片,有了密码凭密码就可以上载程序了。所以您如果只是设置了3级加密保护那么等于是白给,必须设置最高级别4级保护。那么4级保护怎么厉害呢?看下图说明,4级密码保护是无法上载的,无论你是否知道密码,意思是你即使已经知道了密码你也无法上载。拆机解密为了能够达到上载的目的采用的是整个系统块替换的方法,替换后就是没有加密功能的系统块了,程序就可以上载了,但是他改变你原有的设置,所以接下来我再教你如何对付这种替换系统块解密。
3.通讯端口设置不能默认。你点击一下下图中的那个 默认值 按钮就可以知道,系统块的通讯设置默认值都是波特率9600站号2,为了能够达到破解后让敌人无法通讯的目的你最好设置187.5kbps的波特率,但是如果您的电缆不支持这个通讯速率那么还是算了吧!PLC的地址不要默认2,这样太低级了,选择其他站号地址吧。这样搞,即使被破解也可以达到让别人无法通讯连接的目的,特别你有触摸屏或者上位机与之通讯就更好了,破解后由于跟你原先的通讯设置对不上, 外部的设备就无法通讯了,最后还得找您。好,真好!!
4.设置特种断电保持区,不要默认。看下图的断电数据保持区的设置,都是系统默认的数值,如果你懒得从这里做一下手脚,完全使用系统默认的设置,那么你的加密即使是4级也是枉然,因为他们就是采用的系统默认的系统块替换你的4级加密文件的。
那么到底如何从这个系统块是设置里改变默认设置来达到防破解的目的呢?这个方法就多了,千变万化,就看你的聪明才智了,下面我举例一个方法您看看,你可以依次类推,举一反三。
5.检测掉电保持区数据是否丢失。用编程的方法检测查找你预先埋入的数值是否还完好,运行后埋入的地雷是否爆炸了,检测你的程序是否遭到了拆机解密,废话少说看图:
当然这只是简单的加密,实际应用中不可能这么简单好懂,你应做得当尽量复杂,以至于无法读懂程序,数据要多变换、传送、转移、计算等进行一系列复杂的逻辑运算,最后才用于停机。你在系统块的掉电保持区中可以设置vb0-vb40为掉电保持区,而vb40以后的要求掉电清空,你在程序中可以设置在plc上电的初始时期是否有数据,如果有数据 那么停机,如果没有开机,然后再检测掉电保持区的数据,你事先埋下数值地雷,检测你之前写入的数值如果没有了那么停机吧!总结:要设置与系统默认值相反的掉电保持区!
|