也可以自己手動解決。
1,簡單來說:
首先創建壹個word文檔,通過表單保護來保護文檔。工具->;保護文檔-& gt;選中“只允許在文檔中進行這種編輯”-->;選擇“填表”,此時會彈出壹個密碼框,輸入兩次密碼(我這裏選擇123作為word文件的密碼),這樣文檔就被保護了。
不過,我們來破解壹下,打開剛創建的word文檔和文件-->;另存為-& gt;選擇HTML格式,將其保存為HTML文檔,用記事本打開HTML文件,然後搜索“
然後我們用UltraEdit或者其他類似的工具打開原來受保護的Word文檔,搜索7ACFCE5B。搜索後全部替換為8個零並保存。
此時word文檔的密碼被清除,可以自己取消文檔保護,不用輸入密碼,按回車鍵即可。
2.通過編程:
我們來看看具體的編程過程。程序是用VB編程實現的,需要在機器上安裝VB應用程序和Microsoft Office組件。打開VB,新建壹個VB項目,命名為Proc_Word,啟動窗體命名為FrmMain,在“項目”菜單中選擇“引用”,在“引用”對話框中選擇“Microsoft Word8.0對象庫”(這壹步很重要,壹定要選擇這個ActiveX組件,否則代碼無法正確運行,對了,如果安裝了Office2000,要選擇“Microsoft Word9.0對象庫”)。同時,在項目菜單的組件對話框中選擇添加“Microsoft Windows Common Controls-2.5(SP2)”,這樣就可以在表單設計中使用微調控件。
好了,現在可以開始編程了。在剛才FrmMain窗體的左側添加壹個frame控件,在這個控件中添加壹個驅動器列表框、壹個目錄列表框和壹個文件列表框控件。在FrmMain窗體的右下方添加兩個命令按鈕,在右上方添加三個標簽控件、兩個文本框控件和壹個微調控件。妳可以參考附圖進行設計。然後,將框架的Caption屬性設置為“請選擇要解密的Word文檔”;保持目錄列表框、驅動器列表框、文件列表框、文本框和微調器的默認名稱不變;將文件列表框的模式屬性設置為“*”。DOC "只顯示Word目錄中的文件;將第壹個標簽控件的Caption屬性設置為“本程序解密八位以下純數字組成的Word文檔的密碼”,將第二個標簽的Caption屬性設置為“解密進度”,將第三個標簽的Caption屬性設置為“請選擇解密密碼的位數”;將第二個文本框的Text屬性設置為“4”,這是默認的密碼數字;將微調按鈕的BuddyControl屬性設置為Text2以與第二個文本框相關聯,將buddycontrol屬性更改為Text,將Max和Min屬性分別設置為“8”和“1”,分別表示最長的密碼數字和最短的密碼數字,將Wrap屬性設置為True,將Increment屬性設置為“1”,以在每次單擊時添加1。將兩個命令按鈕的名稱分別更改為“cmdopendoc”和“cmdquit”,並將Caption屬性分別設置為“文件打開”和“系統退出”。設置好每個控件的屬性就夠了,然後寫代碼也不難。
以下是全部源代碼,適當的註釋會幫助妳理解程序。也可以通過設置斷點來追溯密碼生成部分,看看編程的原理。
Private Sub cmdopendoc_Click()
Dim wd作為新單詞。應用
將strpath標註為字符串
Dim傳遞為字符串
Dim J,K,Pass_long為整數
最大數量,最小數量,只要
strpath = File1。路徑與路徑。" \ " & amp文件1。文件名
出錯時繼續下壹步
程序起始
Pass_long = Val(Text2。正文)
Max_num = 10 ^值(Text2。正文)
Min_num = 10 ^ (Val(Text2。正文)- 1)
標誌= 0
對於K = 0傳遞_long - 1
Max_num = 10 ^(通行證_長- K)
最小數量= 10 ^(傳遞長度- (K + 1))
對於J = 0傳遞_long - 1
cmdopendoc。MousePointer = 11
For I = IIf(Pass_long - K = 1,0,Min_num) + J到Max_num步長Pass_long
Text1。文本=通過
Text1。恢復精神
pass = String(K," 0 ")& amp;我
Flag = wd。documents . Open(FileName:= strpath,passworddocument:=pass)
如果解密成功,打開文檔,顯示密碼並退出該過程。
If標誌& lt& gt那麽0
Label1。Caption = "文檔密碼"
Label1。恢復精神
Text1。文本=通過
wd。可見=真
cmdopendoc。鼠標指針= 0
出口接頭
如果…就會結束
接下來我
下壹個J
下壹個K
MsgBox“密碼不正確,請重新輸入”
末端接頭
Private Sub cmdquit_Click()
結束
末端接頭
私有子目錄1_Change()
文件1。Path = Dir1。小路
末端接頭
私有子驅動器1_Change()
Dir1。Path = Drive1。駕駛
末端接頭
私有子文件1_DblClick()
調用cmdopendoc_Click
末端接頭
壹些註意事項:
需要註意的是,窮舉解密對系統資源的消耗是驚人的,解密時最好不要運行其他應用。鑒於其巨大的資源消耗,我在程序中采用了壹個小技巧,就是用密碼數作為循環的步長來窺探。也就是說,如果妳的密碼是3位數,程序會嘗試100,103,106...997, 101, 104 ...依次是998和102。
該程序在WIN 98/NT+VB 6.0環境下通過了測試。剛剛隨便試了壹個5位密碼,在Pⅱ300,128MB內存的機器上,大概10分鐘就能解決。