中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

PLC论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 PLC论坛 → 浏览主题: 为了防止程序被别人白嫖,探讨下如何做到程序防盗?
发表新帖 回复该主题
回帖:20个,阅读:793 [上一页] [1] [2] [3] [下一页]
* 帖子主题:

为了防止程序被别人白嫖,探讨下如何做到程序防盗?

分享到
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/9/18 10:07:55
#0楼

据我个人所知,常规的催款,加密程序:



一:催款程序,靠时间(或者设备启动时间 次数等),定时让PLC停止运行(不能打自动等),输入密钥以后,再次可以运行一段时间,周而复始;

    完全解开,输入密钥以后,催款程序失效。


以上是对于设备厂商对于甲方设备使用方尾款而生的程序,




二:防止程序被别人白嫖盗用程序,(复制程序下载到新PLC HMI以后就能使用;(本贴重点探讨对象)


1、首先,不能让客户看到源代码程序,不然写的如何繁琐麻烦,别人也能看出其中逻辑,然后破除掉。

PLC的品牌尤为重要了,据我所知,

三菱全系被秒,FX Q等
欧姆龙 CP CJ NX NJ 全系拉跨,  (CP 系列,常规加密,读PLC FLASH里面都是明文的,扩展加密不是铭文的;NX NJ有超级管理员密码,预置的,可以远程解密)
松下:不是很了解,但是。。你懂的

西门子 200 200SMART 直读密码,博图全系暂时还比较安全,但是也能被破解  隔壁论坛大佬的签名:门子1200/1500完美解密,不掉数据。


附件 5XTBS)RV0~@%LX%】PGJ0D`O.jpg


国产品牌:据我所知,永宏的5%那种,论坛很少人破,但是PLC没用过,感觉不怎么好用,不考虑。


台达:加密也很弱,隔壁论坛被台达警告了,不准讨论台达,但是加密也很拉跨。

其它:codesys内核众多控制器,默认不下载源码,也就不能上载,暂时还比较安全;


~~~~~~~~~~~~~~~~~综上所述,几乎很多品牌控制器都很拉跨,无非破解成本而已,其中以博图1200 1500 为成本最高。


~~~~~~~~~~~SO,有条件的情况下,尽量选择西门子博图来写程序,或者CODESYS控制器来写,但是普通小程序用不上codesys。。


触摸屏:常见品牌都很拉跨,什么禁止上传,禁止反编译都可以破

西门子的低端屏SMART那种,官方自带软件不能上载,网上都有人能搞定。。中高端屏就不清楚了。


唯独:昆仑通态,这个如果没有下载源码,真的就不能上载编辑,用它写脚本应该可以的。


2,防盗程序:

顾名思义,就是别人复制过去就不能用那种,

不能用,无非:1,识别硬件ID,2,输入特定密码(如果保存在PLC内部的话,复制内存数据就被破了,很弱),3,触摸屏写脚本,(需要触摸屏不能上载源码那种)


~~~~~其中,感觉就第一种比较靠谱



识别硬件ID或者序列号,然后 异或,移位,等处理,可以得到一个数字,对比程序来判断是非OK,

如果不OK就执行 防盗逻辑,

例如,不能开自动(复位标志位),弹窗提醒,不定时报故障(SET 故障标志位等);





大家觉得怎么样?












2026
周运浩
文章数:172
年度积分:79
历史总积分:2026
注册时间:2013/7/24
发站内信
发表于:2023/9/18 10:17:47
#1楼
不在意被别人剽窃程序,只要自己一直在进步。一个好的程序逻辑框架是可以传承的,就跟我们公司的程序一样,在最开始的一家巨头公司一位大神做出来的,后来发现这个底层逻辑框架程序居然可以通用所有的设备!这个程序后来成了好多家公司的主流模板。对大神来说也是对自己能力的一种认可吧。
36498
cvlsam 版主
文章数:12298
年度积分:850
历史总积分:36498
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2023/9/18 10:21:32
#2楼
一半程序写在PLC,一半程序写在触摸屏。

Good Luck~
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/9/18 10:21:59
#3楼
以下是引用周运浩2023/9/18 10:17:47的发言:
不在意被别人剽窃程序,只要自己一直在进步。一个好的程序逻辑框架是可以传承的,就跟我们公司的程序一样,在最开始的一家巨头公司一位大神做出来的,后来发现这个底层逻辑框架程序居然可以通用所有的设备!这个程序后来成了好多家公司的主流模板。对大神来说也是对自己能力的一种认可吧。



水塘小,单纯不想让别人白嫖的那么简单,要么自己写,要么不要白嫖;

对于我来说,我的价格别人如果是新做肯定做不出来表情


话说回来,上述框架程序哪里能找到呢?想观摩一下框架表情
40881
YXBK 版主
文章数:18734
年度积分:1295
历史总积分:40881
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/9/18 11:42:05
#4楼
看你是锁君子还是锁小人

锁君子,一般的禁止上传就可以了

锁小人,怎样都没用


看你之前的帖子,是根本都没加密还有注释

这就好比你出门不但不锁门,茶几上还放了几万现金,这不是勾引人家犯罪吗。
大家一起学习
14447
xuhuifox
文章数:2690
年度积分:394
历史总积分:14447
注册时间:2005/3/25
发站内信
发表于:2023/9/18 12:46:54
#5楼
富士有几款plc,好像不让上传,也不让在线!
还有B&R的,没有源程序,在线不了!
                 一切为了生活
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/9/18 14:22:45
#6楼
来,今天折腾一个博图版本的,硬件ID识别


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(* 现在的:             PPYMDDxxxx
以前的:             xxxxxPWWY

代表含义:
PP = 生产工厂
Y = 生产年份(代码含义见附件)
M = 生产月份(代码含义见附件)
DD = 生产日(代码含义见附件)
xxxx(x) =顺序号
WW = 生产日历周数 *)

REGION 读取PLC硬件SN,只需要流水号XXX
   #GET_IM_DATA_Instance(LADDR :="Local~Common",
                         IM_TYPE := 0,
                         DATA := #IMDATA);
   IF #GET_IM_DATA_Instance.DONE THEN
       // 只需要最后4个XXXX,顺序号
       STRG_VAL(IN := LEFT(IN := RIGHT(IN := #IMDATA.Serial_Number,  L := 12 - FIND(IN1 := #IMDATA.Serial_Number, IN2 := #st_横杠)), L := 4),
                FORMAT := 000,
                P := 1,
                OUT => #vw_序列号);
       #vw_sn := (16#ffff XOR #vw_序列号)+16#0606;
   END_IF;
END_REGION
#ob_SN不正确 := #vw_sn <> #iw_SN;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

附件 QQ图片20230918141542.jpg






逻辑很简答,读取PLC硬件序列号,只保留流水号,序列号最后4位,这个肯定每个PLC不一样,如果一样,那就是运气爆表了


简单处理:与16#FFFF 取反,然后+16#0606


最后一个输入WORD和这个WORD比较。


关键是,用电脑计算器就能算出来解锁SN


例如我这个序列号是 S V-M9C71135


保留后四位 1135

转换成16#是:16# 046F
取反:FB90
+16#0606 是 16#0196 (还可以更难一些,这个变量用SN后四位+-*/来做,)
表情


~~~~~~~~~~~~~~~~~~~~~

实际使用,只留一个INPUT引脚,根据这个PLC的 SN来算就行了,每个PLC(设备)都不一样,别人难道程序,加密这个块也用不了;

内部如果输入的序列号不对,就处理对应的机制,让PLC不能启动的办法就很多了,这里就不在瞎掰了~



~~

大佬还有更好的办法么?
6170
机栝
文章数:878
年度积分:338
历史总积分:6170
注册时间:2017/6/12
发站内信
发表于:2023/9/18 16:24:44
#7楼
以下是引用cvlsam2023/9/18 10:21:32的发言:
一半程序写在PLC,一半程序写在触摸屏。

Good Luck~
好想法诶,一直都想尝试把及时控制的写在PLC,参数运算,报警等等辅助程序用触摸屏的脚本写
知行合一。
8650
towngas
文章数:1336
年度积分:687
历史总积分:8650
注册时间:2006/10/12
发站内信
发表于:2023/9/18 16:55:09
#8楼
不是什么高大上程序要不简单加个密,遇到人家硬要解密也没办法,况且读取的程序理解也要精力的,毕竟大多数人不喜跟着别人思路走,借鉴借鉴方法也就罢了;不然怎么大师们都说有那功夫不如自己写了。
25425
goldage
文章数:14584
年度积分:927
历史总积分:25425
注册时间:2006/1/10
发站内信
2018论坛热心网友
发表于:2023/9/18 21:27:16
#9楼
对没有诚信的拉黑算了,干嘛要继续合作,亏也是亏一次
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006