西门子s7-300/400-MMC密码解密
- 简介
- 西门子加密
- 工具及操作
- 密码验证
简介
目前,市面上或网络上有很多针对s7-200,300,400,1200,1500的密码解密破解软件,但很多时候只能解数字或英文密码,对设置了汉字的密码要么是无能为力要么是乱码,无法解决,故此有了以下研究和拙见。
西门子加密
西门子PLC加密情况,一般来说就是三种。
第一种 ,是在硬件组态中,在CPU属性中按照保护等级设置密码,将CPU中程序锁住,不影响CPU的正常运行。这种情况是往往是程序设计编程人员出于安全和知识产权的保护等目的而进行的设置。常见的加密方式有三种。
1、程序可读出,数据可修改,运行可监视,只是程序不可更改。(出于安全考虑)
2、数据可修改,运行可监视,程序即不能读出也不能修改。(出于安全考虑,也为保护知识产权)
3、程序、数据、运行均不可读出、监视和更改。(安全性最高)
加密方法步骤:在硬件组态中打开CPU的protection(保护)选项,选择所需加密方式,设置密码后保存编译重新下载硬 件组态就可以了。
第二种,就是程序中程序块的加密和解密。
加密方法步骤:如下。
1、在STEP7中打开要加密的程序块,点击菜单“文件/生成源文件(File/Generate source)”,
生成要加密保护的程序块的原代码文件。
2、关闭程序块,在项目管理器中打开“源文件(source)”,打开生成的源文件。
3、在程序块的声明部分,TITLE行下面的一行中输入“KNOW_HOW_PROTECT”。
4、执行菜单命令“文件/保存(File/Save)”然后“文件/编译(File/Compile)”。
5、编译成功后,可在“块”中看到加锁的程序块。
6、解除密码,打开相应的“源文件”,把“KNOW_HOW_PROTECT”删除,然后编译即可。
注意,保存好源文件,否则已加密的程序块将无法打开。同时,你用SCL源程序编译完成后,删除SCL源程序就行了。别人没SCL源程序,打开你程序中的块时就只能显示成STL程序了。
第三种,就是我们在打开别人的程序时,遇到的那些加密程序块,又没有源程序的情况下,就只能靠一些解密工具或者其他方式了。
工具及操作
本文针对第一种加密情况,第二种情况在没有源码的情况的下基本不可逆顾不考虑,第三种简单块加密可以用下方这个工具去保护,查看程序。
第一种情况针对200CPU可以用下面这个小工具
针对300、400CPU可以使用下面这个工具(工具可自行网络)
但该工具只能读取到英文及数字密码对中文密码无法解密,所以我们从这里开始,首先了解这些工具,知道解密原理和算法,然后就是加入对中文密码的支持。
这里使用了IDA和winhex
经过分析,最终写出符合自己要求支持中文密码的解密工具
使用该工具可以计算密码也可以直接修改新密码
密码验证
1、将s7img文件转换成wld文件
2、PCS7-》文件-》存储卡文件-》打开
3、顺便打开一个块
4、打开后就需要输入密码,把计算出的密码复制粘贴后点击确定
5、连续点击确定,密码正确就可以打开块