現場的設備有參數需要調整,而操作按鈕需要登錄權限,但因為時間有點久了,密碼忘掉了。然后又打電話來問我。可項目不是我做的,密碼也不是我設的啊,真的不知道啊!
只記得調試的時候,配合人員是知道密碼的,我也反復用過,但現在所有人都不記得密碼了。反復的來找我問密碼,把我煩的不行,然后說,那我在上打開軟件模擬運行一下,試試密碼是什么,試出來,告訴他們算了。
然后重新把軟件系統搭好,模擬運行起來,系統用戶除了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
saybbbbbb 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,還算比較簡單易懂,容易上手。 以后必有大用。











