0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PLC程序加密解密方法详解

1X4o_GKB1508 来源:未知 作者:李倩 2018-09-05 16:55 次阅读

大家都知道,很多品牌PLC的程序都可以通过软件解密,那么一旦解密后程序就非常透明的显示在了别人的眼中,而将设备卖给别人又将PLC程序整个锁死的话又不切实际,甲方会无法维护;而保密和维权更是中国市场经久不衰的话题,其实德国的工程师从来不会给自己的程序整体加密,而是使用其他方式,既不影响发生故障时的诊断,又可以保护自己的核心机密。今天给大家介绍一下这些方式,供大家参考。

一、使用西门子安全PLC或者博途的KNOWHOW功能

西门子安全PLC作为西门子主打安全功能的一款产品,它的性能毋庸置疑,而且安全PLC的程序块加密后无法破解;可以很好的保护核心。而博途PLC作为西门子的最新产品,其版权保护也是它的主要功能之一,KNOWHOW功能是软硬件双重加密,不加密的块可以正常监控,没有密码的话甚至无法下载到其他PLC;因此使用博途的KNOWHOW功能既可以将程序交给甲方方便维护,又可以保护自己的核心程序不被窃取。

二、采用高级语言编写部分重要的工艺程序

西门子除了最基础的LAD梯形图编程,FBD功能块编程和STL语句表编程还有很多其他的方式,比如说PCS7的CFC,SFC; 除此之外还有SCL,S7-GRAPH等等。对于这些语言,一般的工控人员很难全部精通,因此仿制难度大大提升,因此非常关键的工艺程序可以由这些语言编写,也可以很好的保护自己的核心。1.编程方式的采用a)采用模块化的程序结构,采用符号名,参数化来编写子程序块b)尽量采用背景数据块和多重背景的数据传递方式c)多采用间接寻址的编程方式d)复杂系统的控制程序尤其是一些带有顺序控制或配方控制的程序,可以考虑采用数据编程的方式,即通过数据的变化来改变系统的控制逻辑或控制顺序。用户应该尽量采用以上几种高级层次的编程方式,这样编出来的程序中嵌入系统的保护加密程序,才不容易被发现而仿制。

2.主动保护方法a)利用系统的时钟b)利用程序卡或者CPU的ID号和序列号c)利用EEPROM的反写入功能,及一些需要设置的内存保持功能d)利用系统提供的累时器功能e)在用户程序的数据块中设置密码f)软件上设置逻辑陷阱g)可以反向利用自己在编程时犯的错误

3.被动保护方法a)在内存容量利用许可的条件下,不要删除被认为是无用的程序b)在数据块里留下开发者的标识,以便于将来遭到侵权时可以取证4.应用反窃取技术的注意事项a)在用户程序中嵌入保护程序要显得自然一些,不能很突兀的加出一段程序来,代码要尽量精简,变量符号名应与被嵌入程序段的变量保持一致b)往往一种保护加密手段是不够的,应该多种方法并用,并且这些保护程序一旦激活后对系统造成的后果也应该尽量不同,造成所谓的“地雷效应”,从而增加程序被窃取的难度,时间与成本,短时间内让抄袭者束手无策,c)保护好程序的原代码,如果需要交付程序的,在不影响用户对设备维护的前提下,应对交付的程序做适当的技术处理,如删除部分符号名,采用上载的程序或数据块d)做好严格的测试,以避免保护程序的不完善引起的误动作而带来的不必要的麻烦,同时也能降低售后服务的的费用。

三、使用通讯功能在实际应用中,往往会遇到一些系统间需要数据交换的问题(多个PLC之间,PLC与第三方仪表之间),无论是西门子产品之间还是西门子产品与第三方产品之间,建议使用通讯的方案来代替vwin 量或开关量之间的信号互连的方案。对于前者,仿制者只能看见一条硬件的通讯线,至于有多少数据是如何通过通讯交换的,仿制者必须要花精力研究具体的用户程序才能搞清楚;而对于后者,开发者是省心省力了,仿制者也是一目了然,尽收眼底。对于一些变频器或者伺服电机等的程序设计,一般有多种方式,可以线路直接控制还可以通讯控制,那么使用通讯的方式的话会使得程序增加了仿制的难度,比如说PLC对于伺服驱动器的控制有多种,简单一些的可以是脉冲直接控制或者模拟量控制,这种方式就容易仿制,如果换成通讯控制,则会使得程序复杂很多,加上仿制者如果对报文不熟悉,很难去仿制。有时候控制系统会由多个子控制系统构成,由此形成多CPU加人机界面的网络,西门子S7-200产品常见的是PPI网络,S7-300400产品常见的是MPI网络,通常是人机界面与CPU之间的数据交换,而我们也可在CPU的用户程序中添加一些无须组态的S7基本通讯功能(S7-200可用NETRNETW指令,S7-300400可以用X_PUTX_GET指令),定时或不定时地在CPU之间进行少量数据交换,通过这些数据实现子系统控制逻辑的互锁。对于这样的系统,仿制者要分析某一子系统的程序也不是件十分容易事情。

四、采用面板类型的人机界面

尽量在自动化系统中使用面板类型的人机界面来代替单一的按钮指示灯,很多人机界面没有源程序的话只有备份和恢复功能,完全可以实现维护功能还保密了HMI这一层的程序,而对于一个PLC系统而言,即使拥有了源程序但是缺失了HMI部分的标记也是很难仿制的。而且开发者可以在面板的画面上加上明显的厂家标识和联系方式等信息,仿制者就不能原样照抄。如果就使得如果仿制者想要复制程序的话,就必须重新编写操作面板的程序甚至于PLC的程序,而开发者则可利用面板和PLC数据接口的一些特殊功能区(如西门子面板的区域指针,或VB脚本)来控制PLC的程序执行。这样的PLC程序在没有HMI源程序的情况下只能靠猜测和在线监视来获取PLC内部变量的变化逻辑,费时费力,极大的增加了仿制抄袭的难度。

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

德国工程师都愿意使用这种方式。在中国,大多数工程师都愿意使用WINCC,INTOUCH或者组态王等等,但其实除了这些软件,还有一种更加高大上的编写方式,那就是利用VB自己写程序,而对于软件与PLC的接口,大家可以选择LIBNODAVE或者其他库等,这种方式写出来的人机界面有着很多好处,首先没有版权问题,因为VB软件是免费的,而且对于WINDOW系统的升级来说只需要简单的添加几个文件即可实现,不像WINCC那样,如果window升级了,需要大量修改文件。一般人都无法修改,更别提仿制了;没有很好的计算机编程功底的话就不敢轻易修改,而仅仅有计算机功底又没有PLC或者工艺基础的话也是无法更改的。我曾经利用S7-300做过这么一套系统,但我的目的不是保密,而是甲方要求,坐出来的系统完全按照自己的风格,很是舒服。最好,告诫大家一下,不要过分消费中国工业市场的诚信,合理的利用PLC技术达到保护核心机密,而不是过分利用它达到其他目的。中国工业市场的诚信问题需要所有人的努力才有机会改善。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4999

    文章

    12868

    浏览量

    458560
  • 西门子
    +关注

    关注

    93

    文章

    2937

    浏览量

    114674
  • 编程
    +关注

    关注

    88

    文章

    3498

    浏览量

    93129

原文标题:PLC程序加密解密方法详解

文章出处:【微信号:GKB1508,微信公众号:工控帮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    怎样解密(芯片解密IC解密)加密

    硬件 加密锁,俗称“ 加密狗”,对于 加密狗的**大致可以分为三种 方法,一种是通过硬件克隆或者复制,第二种是通过Soft ICE等Debug工具调试跟踪
    发表于04-16 09:20

    详细介绍Flash型单片机的加密解密方法

    MC9S12DP256单片机为例,介绍Flash型单片机的 加密 解密 方法。  BDM 程序调试接口  Freescale公司的很多单片机都借用一种被称为后台调试模式(Background
    发表于10-21 19:59

    labview加密解密文件

    本帖最后由 wang060102122 于 2017-9-8 14:50 编辑 论坛有位网友分布的 加密解密文件夹小 程序,其中 加密可以正常使用,
    发表于09-08 14:45

    【转】浅谈西门子plc程序加密程序加密解密

    程序重新下载。图一 图二 第二种情况就是 程序程序块的 加密解密方法步骤如下。1、在STEP
    发表于12-18 22:20

    加密程序的自解密程序编写

      为了保证自己的数据不被别人非法地窃取,有必要对数据文件进行适当地 加密。本 程序采取一定的算法,对密码和数据进行 加密,生成一个自 解密的EXE文件。这个自
    发表于09-01 11:48 1365次阅读

    单片机芯片解密详解_单片机解密方法

    其实了解单片机芯片 解密 方法之前先要知道什么是芯片 解密,网络上对芯片 解密的定义很多,其实芯片 解密就是通过半导体反向开发技术手段,将已
    发表于12-08 18:08 1.8w次阅读

    网络上对芯片解密的定义,解密方法与原理解析!

    其实了解芯片 解密 方法之前先要知道什么是芯片 解密,网络上对芯片 解密的定义很多,其实芯片 解密就是通过半导体反向开发技术手段,将已
    的头像 发表于01-17 07:06 7526次阅读
    网络上对芯片<b class='flag-5'>解密</b>的定义,<b class='flag-5'>解密</b><b class='flag-5'>方法</b>与原理解析!

    西门子300PLC加密解密方法汇总

    西门子300 PLC 加密解密 方法汇总说明。
    发表于04-23 09:26 31次下载

    台达PLC编程解密软件安装程序下载

    台达 PLC编程 解密软件安装 程序下载
    发表于06-26 14:14 16次下载

    STM32等单片机程序加密有哪些方法

    为了防止大家的 程序不被剽窃,本文给大家分享单片机 加密方法。 另外关于 解密方法可以参考这篇文章如何 解密
    的头像 发表于09-23 16:06 6172次阅读

    plc编程中的加密解密是如何做到的

    的话题。事实上,德国工程师从来不把自己的 程序作为一个整体进行 加密,而是使用其他 方法,这不仅可以影响故障的诊断,还可以保护自己的核心机密。今天,我将向您介绍这些 方法,供您参考。 一、使用
    发表于12-13 11:38 2380次阅读

    PLC程序解密方法详解

    PLC 程序 解密,密码破解 方法步骤分析,有关 plc的解决 方法,在进行
    发表于02-28 08:56 1.4w次阅读

    PLC加密催款程序解密算法

    前阵子 PLC微信群中在聊起 加密催款 程序,大家兴致都很高,于是小编搜罗了一下资源,给有需要的朋友们。
    的头像 发表于08-05 10:40 3134次阅读

    PLC加密技术和解密方法

    PLC 加密技术,其实就是开发者的一种思路,只要明白了作者的 加密思路,就能对它很快的 解密。其实,在自然界中不管是 PLC,还是电梯主板只要有
    的头像 发表于05-05 09:55 2076次阅读

    五种西门子PLC程序加密方法

    大家都知道,很多品牌 PLC程序都可以通过软件 解密,那么一旦 解密程序就非常透明的显示在了别人的眼中,而将设备卖给别人又将
    的头像 发表于08-23 11:09 1650次阅读