只记得调试的时候,配合人员是知道密码的,我也反复用过,但现在所有人都不记得密码了。反复的来找我问密码,把我烦的不行,然后说,那我在电脑上打开软件模拟运行一下,试试密码是什么,试出来,告诉他们算了。
然后重新把软件系统搭好,模拟运行起来,系统用户除了admin,还有001,试过了admin的缺省密码100不对之后,开始猜试 001的密码。
一般来说,大家设置触摸屏上密码都会比较简单,而我记得当初调试的时候也是比较简单的重复数字。所以就从4个0到4个9,到8个0,到8个9,挨个儿试过来。。。。
转眼一上午过去了,咦,出了鬼了,一直不成功,是咋回事呢?
唉,既然猜不出,问问谷歌吧!网络上搜索了一下wincc flexible password的问题,果然还真有问的,是在德国网站上。但那边的专家的回答是不能从源程序上读出来,只能修改密码后重新下载到屏。
眼睁睁看着程序里的一片密码*******,却素手无策,索性下载个密码查看器试试行不行?为预防病毒和木马,将VM内的系统设置为掉电不保持。然后从华军软件园先后下载了几个星号密码查看软件,拖到WCF项目的星号的地方,西门子好狠啊!根本看不到。 提示的是这个text控件的名字!
---- 说明西门子在这方面的安全早有防范啊!
实在是无路可走了,随便在网上逛,想搜索一些自动密码测试机之类的,然后就突然发现了一个叫做按键精灵的东东,人家主要是应用于网游游戏中的代练等功能,但也有人用来做过自动翻阅密码词典输入测试密码的功能。
软件下载运行,可以通过录制鼠标键盘动作轨迹,产生一段代码,然后按照网上的例程,增加了循环功能。生成的代码如下:
VBS a=0
While a <= 10000
TracePrint a
MoveTo 169, 247
LeftClick 1
Delay 1000
MoveTo 437, 358
LeftClick 1
SayString a
Delay 2000
KeyPress "Enter", 2
Delay 1000
MoveTo 357,390
LeftClick 1
Delay 3000
VBS a=a+1
EndWhile
脚本里面的3个坐标,分别是需要登录权限的按钮,密码输入区,以及确定按钮的位置。
脚本实现的功能,就是依次先点按钮,然后点密码输入区,然后输入生成的密码a,然后再点确定。
如此循环。
循环跑起来,磕磕绊绊,各种调整,总算可以了。但也奇怪了,我新增的测试用的帐号002,密码1234,但我从1230开始循环,到1234都仍然不能通过,仍然登录不上。
所以增加了003用户,并在画面中加入用户管理控件, 在按键精灵脚本停止后,用003用户手动登录,竟然惊讶的看到,002用户未授权状态!
就是说,尽管新版的WCF中已经撤除了登录次数保护,但多次密码输入错误后仍然会封掉这个用户?
重新运行触摸屏模拟仿真,把脚本改为从1233开始,果然就通过了。
看来,一上午试过的密码集,有的是正确的,但因为试的次数太多,给封杀了。
好吧,看来只需要将上午的猜密码的步骤重新来一遍,然后定期用新建的管理员帐户登录之后从用户管理中恢复001的授权,就可以继续试下去了。
不过,既然刚刚上手了按键精灵,要不要连自动登录管理员,修复授权这个事也要按键精灵来做呢?训练脚本会比较麻烦,但也会是比较难得的体验呢!
然后,设计了一个按键能直接登录已有管理员帐户的按键, 程序中直接登录。按键脚本触发login函数,用户名001,密码000000自动送给内部变量....
然后,运行, 登录,成功,等等,001?6个0?
原来,因为手误 ,把003输成了001,然后误打误撞密码原来就是6个0啊!
去, 不玩了,赶紧告诉客户吧!
后记:
总的来说,这是一场失败的猜密码的游戏。从头至尾,所做的一切都是无用功。包括虽然最后密码猜出来了,但交给客户后,让客户断电触摸屏后重新登录,但反馈也仍然登录不成功, 虽然KTP1000中系统登录次数并没做限制。问题最后的解决,也是让客户在现场想办法电脑上了网,然后通过team viewer远程控制,帮助客户重新下载了触摸屏程序才搞定。
收获:
原本的目的没达到,但意外的收获却不少,也是要写出来本文共享的主要原因。
1,KTP1000 的用户登录次数限制取消以后不可靠。
2,西门子软件的安全性考虑还比较充分。
3,体验了按键精灵软件的使用,其脚本语言是vbs,还算比较简单易懂,容易上手。 以后必有大用。