深入剖析Wonderware软件2038年问题原因 点击:3548 | 回复:13



deng_lp

    
  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2006-07-28 10:27:00
楼主
从[url=http://blog.sina.com.cn/u/49e652d5010005gw]http://blog.sina.com.cn/u/49e652d5010005gw[/url]可以看出,intouch软件在调用lmgr325a.dll时会出错!
我们写过VC的程序都知道,VC有一个自带工具Depends
用Depends打开intouch.exe程序。
发现intouch通过调用INTSPT.DLL模块,来实现调用LMGR325A.DLL
还有一处是通过ITCOMMONUI.DLL模块来实现调用LMGR325A.DLL
从程序的出错的结果分析,Lmgr325A.dll内部有调用TIME_T结构的取系统时间调用。
这种调用在2038年以后来看是致命的!
Wonderware软件为什么要调用这处lmgr325a.dll呢?



雨星

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 51回
  • 年度积分:0
  • 历史总积分:128
  • 注册:2004年2月01日
发表于:2006-07-28 10:36:00
1楼
搂主,跟wonderware的价钱还没谈妥呀?
是不是他们太小气?你要价也别太高了。

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2006-07-28 10:41:00
2楼
不光是Intouch,wincc也存在2038问题,MCGS没有发现有这个问题。
但是就个人来看,像同一个组态软件版本似乎还没有使用超过30年以上的,就像我们使用PC一样,30年以后还会使用windows xp吗?如果说是用户购买有时限的版本的话,那么微软的操作系统平台目前只能支持到2099,是不是也应该探究一下微软的责任呢?究其根本,我们常用的组态软件毕竟还是处在微软的操作平台上,其硬件版本目前主流还是处于32位系统架构上,而要完全对于一个软件进行测试的话,是不是还应该在64位系统架构上进行测试后再下一个肯定的结论呢?相信西门子等老牌组态软件公司也会推出补丁或为用户免费升级来解决当前用户的问题的,离2038年还很远,我们是不是应该给那些组态软件安装和使用的操作系统平台以及硬件平台以足够解决问题的时间呢?
以上仅代表本人个人观点。

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2006-07-28 10:48:00
3楼
to 雨星: 
   这种社会,你还真把人想得和你一样呀!
   如果你有wonderware内线,去打听一下就知如何了!

雨星

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 51回
  • 年度积分:0
  • 历史总积分:128
  • 注册:2004年2月01日
发表于:2006-07-28 11:02:00
4楼
楼主别急眼,我可是一身正气两袖清风,不会把什么盆子往别人脑袋上扣的.
倒是您这两天的表现,不依不饶的,何必呢。我刚测了wincc也有同样的问题。
楼主您该不会是只见过intouch吧?

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2006-07-28 22:03:00
5楼
lmgr325a.dll是什么类型的程序?
lmgr325a.dll是FLEXLM的一种商用加密动态库程序!
由于LMGR325A是一种早期商用的加密程序,且原有的公司已被
macrovision公司收购!
Wonderware公司用LMGR325a.dll生成和运行时检测授权的正确性!
看来解决这个2038年的问题很有难度了!
猜测Wonderware公司的解决方案有几种?

工控111111

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 82回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2003年7月17日
发表于:2006-07-29 09:05:00
6楼
我很支持楼主的做法,我也很佩服楼主的工控水平,找出问题是花了成本的,最起码让我们使用者知道这一问题的存在,如果WONDERWARE从一开始就知道这样的BUG,为什么在我们购买软件时不说明呢?

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2006-08-01 08:32:00
7楼
姑且不论是否wonderware公司早知道有这种2038问题。
猜测wonderware公司的解决方案如下:
 1.更换lmgr325a.dll
   重新写FLEXLM的加密算法,估计可能性不大,前面也说了,LMGR325a.dll是一个古老的商用加密算法动态库。wonderware没有源程序的。这个加密公司已被macrovision公司收购!想要作得和lmgr325a.dll加密算法一致,很难!
 2.更改itcommon.dll,和INTSPT.DLL,让他读取硬狗数据和授权文件数据,但没法作到检验算法和flexlm的算法一致。只好全部为最大点数授权了!
 3.lmgr325a.dll升级到最新的flexlm加密程序,且测试能正常通过2038年的限制!这种方案的后续处理方法为:更换加密算法因子,及完整格式,校验结果。也就是说,在已买wonderware公司产品的用户需要相应的补丁程序,更新itcommon.dll,intspt.dll等,还要向wonderware公司重新申请授权文件!硬狗可以不用更换!
EMAIL:DENG_LP@21CN.COM
http://blog.sina.com.cn/u/1239831253

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2006-08-01 08:37:00
8楼
一个组态软件涉及的功能方面很多,加密算法出问题可能还只是一种很小的方面!
大家可一起挖掘,一起探讨。找出一些鲜为人知的密秘!

EMAIL:DENG_LP@21CN.COM
http://blog.sina.com.cn/u/1239831253

工控111111

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 82回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2003年7月17日
发表于:2006-08-01 09:35:00
9楼
楼主我太佩服你了,关注中~~~~~~~~~~~~

controller

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 185回
  • 年度积分:0
  • 历史总积分:237
  • 注册:2005年1月24日
发表于:2006-08-01 10:09:00
10楼
你可以当Wonderware的软件设计师了,佩服.

雨星

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 51回
  • 年度积分:0
  • 历史总积分:128
  • 注册:2004年2月01日
发表于:2006-08-03 17:43:00
11楼
楼主果然是高手,pfpf

单珑

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2006年11月10日
发表于:2006-11-10 12:21:00
12楼
楼主:您好。
   不知道关于获取InTouch内变量名称类型的程序还有没有,可以发给我一份吗?
   email:   d_long@sohu.com
   谢谢。

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2007-04-16 09:21:00
13楼
看了这么久的wonderware软件2038年问题,现在该公司终于要推出新的版本。
授权采用 flexnet 的11.3,flexlm的升级版本!
在新版本的ActiveFactory 中有licenseserver是使用flexnet 11.3
但在win2003 sp1上不能使用。提示lmgrd.exe错误,错误的块unknown,版本号为0.0.0.0,错误地址0x00000000.
相信不久的将来,2038问题会得到一个完整的解决方案.
EMAIL:DENG_LP@21CN.COM
http://blog.sina.com.cn/u/1239831253

热门招聘
相关主题

官方公众号

智造工程师