众所周知,很多品牌的plc程序都是可以通过软件解密的,所以一旦解密,程序就会透明地显示在别人的眼前,把设备卖给别人,把整个PLC程序锁死,是不切实际的,会让甲方无法维护。保密和维权是中国市场经久不衰的话题。事实上,德国工程师从来不把自己的程序作为一个整体进行加密,而是使用其他方法,这不仅可以影响故障的诊断,还可以保护自己的核心机密。今天,我将向您介绍这些方法,供您参考。

  一、使用西门子安全PLC或博拓KNOWHOW功能

  西门子安全PLC作为西门子专注于安全功能的产品,其性能毋庸置疑,安全PLC的程序块加密后无法破解。可以很好的保护核心。作为西门子的最新产品,薄涂PLC的版权保护也是其主要功能之一。KNOWHOW功能是软件和硬件的双重加密。未加密的区块可以正常监控,没有密码甚至无法下载到其他PLCs。因此,使用薄涂的KNOWHOW功能,不仅可以将程序交给甲方方便维护,还可以保护您的核心程序不被窃取。

  第二,用高级语言编写一些重要的流程程序。

  除了最基本的LAD梯形图编程、FBD功能块编程和STL语句表编程之外,西门子还有很多其他的方式,比如PCS7的CFC和SFC此外,还有SCL、S7-GRAPH等。对于这些语言,一般工控人员很难全部掌握,所以模仿难度大大提高,所以非常关键的工艺程序可以用这些语言编写,也可以很好的保护自己的核心。

  1.编程方法的采用

  a)使用模块化程序结构、符号名称和参数化来编写子程序块

  b)尽量采用后台数据块和多后台的数据传输方式。

  c)大多数编程方法都是间接寻址。

  d)对于复杂系统的控制程序,特别是一些带有顺序控制或公式控制的程序,可以考虑数据编程,即通过数据变化来改变系统的控制逻辑或控制顺序。

  用户应尽量采用上述先进的编程方法,使嵌入编程程序中的系统保护加密程序不易被发现和复制。

  2.主动保护方法

  a)使用系统时钟

  b)使用程序卡或中央处理器的标识号和序列号

  c)使用EEPROM的反向写功能和一些需要设置的内存保留功能d)使用系统提供的定时器功能。

  e)在用户程序的数据块中设置密码

  f)在软件上设置逻辑陷阱

  g)你可以扭转你在编程中犯的错误。

  3.被动保护方法

  a)在内存容量利用许可的情况下,不要删除被认为无用的程序。

  b)在数据块中留下开发者的标识,以便日后侵权时取证。

  4.应用防盗技术应注意的事项

  a)在用户程序中嵌入保护程序是很自然的,不能突然添加程序。代码要尽量简化,变量的符号名要与嵌入程序段的变量一致。

  b)往往一种保护加密手段是不够的,要多种方法一起使用,而这些保护程序一旦被激活,对系统造成的后果应该是尽量不同的,造成所谓的“地雷效应”,从而增加了程序窃取的难度、时间和成本,让抄袭者在短时间内束手无策。

  c)保护程序的原始代码。如需交付程序,在不影响用户对设备维护的前提下,对交付的程序要妥善处理,如删除部分符号名,使用上传的程序或数据块。

  d)严格测试,避免保护程序不完善导致误操作带来不必要的麻烦,同时降低售后服务成本。

  第三,使用通信功能

  在实际应用中,经常会出现一些需要在系统之间(多个可编程逻辑控制器之间、可编程逻辑控制器和第三方仪器之间)进行数据交换的问题。无论是西门子产品之间,还是西门子产品与第三方产品之间,建议采用通信方案,而不是模拟量或开关量之间的信号互联方案。对于前者,模仿者只能看到硬件的一条通信线路。至于通过通信交换了多少数据,模仿者要研究具体的用户程序才能发现。对于后者,开发者轻松省力,模仿者一眼就能看出来。

  一般来说,一些变频器或伺服电机的程序设计有很多种方法,可以通过线路直接控制,也可以通过通信控制。然后,使用通信会使程序更难复制。例如,可编程控制器对伺服驱动器有多种控制,较简单的可以是脉冲直接控制或模拟控制。这种方式很容易复制。如果改成通讯控制,程序就复杂多了。另外,如果模仿者对信息不熟悉,也很难复制。

  有时,控制系统由若干个子控制系统组成,从而形成多CPU加人机接口网络。PPI网络常见于西门子S7-200产品,MPI网络常见于S7-300400产品,通常是人机界面与CPU之间的数据交换。我们还可以在CPU的用户程序中加入一些不需要配置的基本S7通信功能(S7-200可以使用NETRNETW指令,S7-300400可以使用X_PUTX_GET指令)定期或不定期地在CPU之间交换少量数据,并通过这些数据实现子系统控制逻辑的互锁。对于这样的系统,模仿者要分析一个子系统的程序并不是很容易。

  四、是采用面板式人机界面。

  自动化系统尽量采用面板式人机界面,而不是单按钮指示灯。很多人机界面只有在没有源程序的情况下才有备份和恢复功能,完全可以实现维护功能,对hmi层程序保密。对于PLC系统,即使有源程序但缺少HMI部分,也很难模仿。

  而且开发者可以在面板屏幕上添加厂商标识、联系方式等明显信息,模仿者无法照原样复制。

  如果模仿者想复制程序,必须重写操作面板的程序甚至是PLC的程序,开发者可以利用面板与PLC之间数据接口的一些特殊功能区(如西门子面板的区域指针或VB脚本)来控制PLC的程序执行。没有HMI源程序,这种PLC程序只能通过猜测和在线监测得到PLC内部变量的变化逻辑,费时费力,大大增加了复制的难度。

  五、采用非标准人机界面。

  德国工程师愿意使用这种方法。

  在国内,大部分工程师都愿意使用WINCC、INTOUCH或组态王等。,但其实除了这些软件之外,还有一种更高的编写方式,那就是用VB编写自己的程序,而对于软件和PLC之间的接口,可以选择LIBNODAVE或者其他库等。这样写出来的人机界面有很多优点,首先没有版权问题,因为VB软件是免费的。而且WINDOW系统的升级只需要简单的添加几个文件就可以实现,不像WINCC,如果升级Windows,需要修改很多文件。大多数人都无法修改,更不用说复制了;如果你没有很好的计算机编程知识,你就不能轻易改变它,如果你只有计算机知识,没有PLC或过程基础,你也不能改变它。以前用S7-300做这样的系统,但我的目的不是保密,而是甲方的要求,坐出来的系统完全遵循自己的风格,很舒服。

  最好告诫大家不要过度消耗中国工业市场的完整性,合理利用PLC技术保护核心机密,而不是过度用于其他用途。中国工业市场的完整性需要每个人的努力才有机会提高。以上内容看不明白的朋友可以先看一套plc视频教程,这样更容易理解。

plc程序加密解密方法解读相关推荐

  1. 网站安全之ASP程序加密解密方法全面解析

    如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题 ...

  2. 小程序加密解密完成版

    (仔细看,别慌,特别简单) 小程序项目中有个叫 utils 文件目录. 在utils中创建一个aes.js文件,然后从我的上一篇文章复制代码AES.JS并把内容复制进去即可. 在utils文件里面的 ...

  3. python实现加密字符串_Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...

  4. ios常见加密解密方法

    在其他平台中经常会计算MD5值,在ios平台中也提供了该方法,首先需要导入头文件 [cpp] view plaincopy #import <CommonCrypto/CommonDigest. ...

  5. 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed

    微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed 参考文章: (1)微信小程序加密解密 C# 以及 ...

  6. python des解密_python实现DES加密解密方法实例详解

    本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优 ...

  7. python如何加密字符串_Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...

  8. Java实现一个简单的加密解密方法

    Crypto是Java语言写的一个简单的加密解密方法. 使用方法: 加密方法 String cipherte=Enande.encrypt(content, pass): 解密方法 Enande.de ...

  9. PLC程序的调试方法及步骤

    原文地址::http://www.plc100.com/prog/tixingtu/tiaoshi.htm 相关文章 1.http://www.360doc.com/content/19/0618/0 ...

  10. C#常用加密解密方法(MD5加密解密)

    在日常开发过程中,总会遇到需要加密解密的需求,这里我整理了C#常用的加密解密方法分享给大家. 先看看加密的基本概念: "加密",是一种限制对网络上传输数据的访问权的技术.原始数据( ...

最新文章

  1. 【译】使用自定义ViewHelper来简化Asp.net MVC view的开发------part1
  2. C++_泛型编程与标准库(十)——set与map
  3. saltstack中salt-key收集的主机名与实际主机名不一致
  4. VC6.0生成文件的种类和作用
  5. 简单说说我对几位认识的号主的印象
  6. 内核同步 (来自chinaunix总结)
  7. MongoDB学习day08--Mongoose索引、Mongoose内置方法、扩展Mongoose Model的静态方法和实例方法...
  8. 破解绘声绘影x5的方法
  9. i5 1240p和锐龙r5 5600u选哪个好?区别对比评测
  10. 【Flutter 返回桌面不退出app解决办法】
  11. 中国麻纺行业竞争动态及产销需求预测报告(2022-2027年)
  12. 机器人教育的中心地段
  13. 满分回答教你如何应对面试中项目经验这一难关
  14. CANopen对象字典
  15. 当电脑电池只充到50%就不充电了
  16. 浙江医改破题看病难 省市级医院高峰排队时间缩至4分钟
  17. 饥荒mod显示服务器连接失败,饥荒专属服务器添加MOD失败 | 手游网游页游攻略大全...
  18. 根据身份证号码判断性别 java
  19. 提高程序运行速度的方法
  20. C#接口定义,索引器的定义

热门文章

  1. 部分常见GIS专业英语词汇
  2. 抖音无水印解析API
  3. JanusGraph 数据模型
  4. python爬虫使用seleium+超级鹰+Image模块自动登录12306(附源码和登录视频)
  5. python用实现FGO自动挂机战斗思路
  6. 极大似然函数求解_极大似然估计详解
  7. VS2017自带打包软件
  8. 基础知识 | 贴片电阻快速扫盲
  9. 开发者必看:Google Play应用上架流程(希望你不踩坑!)
  10. dcp-9020cdn复印位置有_兄弟DCP-9020CDN打印机驱动下载