[Excel] 破解鎖定文件


破解Excel密碼保護
昨天朋友問了我這個問題
他們公司的Excel有發生部份使用者可以編輯、大部份使用者無法編輯的問題
當下是研判應該是Excel密碼保護的原因
因為從沒用過Excel的密碼保護,所以我本來也不知道原來密碼保護可以做到儲存格層級的密碼保護
還可以定義哪些儲存格是可以用密碼保護、哪些不用密碼保護、哪些使用者(AD也可)在存取這個儲存格時不需要密碼
接著來看看我當時去模擬他們使用者的動作,去做修改儲存格標題的資料時,發生的現象
lock
上面可以看到,取消保護工作表跟保護活頁簿都是反灰的,卻會出現要你【取消保護工作表】
那試看看編輯其他非標題的欄位好了,卻出現要密碼才能變更儲存格裡面的資料
lock2
再來試著編輯看看活頁簿的部份,也是有設定保護(保護的真徹底…)
lock3
確定是被Excel密碼保護的功能鎖住了,問我朋友密碼知不知道,得到的回應就是:【沒人知道】
那問題總要解決,畢竟這不是他們公司唯一一個有密碼保護的Excel,而是有非常多個,當然還是要一個一個解
在不知道密碼的時候,解法有分成兩種
第一種就是適用於解除【工作表】層級的密碼保護,這可以使用巨集的方式跟增益集來解決,這個案例我是使用巨集
下面就是VBA的語法,需要新增到巨集中,等等會解釋怎麼使用
Sub PasswordBreaker()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
ActiveWorkbook.Sheets(1).Select
Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
第二種就適用於【活頁簿】層級的密碼保護,這需要使用增益集的方式去解決,沒辦法使用巨集
因為這是它人開發的,我在此就只貼上連結http://www.straxx.com/excel/password.html
如果覺得它對你有幫助,你要樂捐感謝他也可以
12344
password_2007_2010.xlam是給Excel 2007~2010使用(是破解端的環境,而不是原始編輯的環境)
password.xla則是給Excel 2003以前的版本
像我這份Excel,原始的編輯環境是Excel 2003(看附檔名是XLS就知道)
然而我替它破解的電腦使用的是Excel 2010,所以我下載的是password_2007_2010.xlam

接著,我們要開始破解囉~
首先我們要先把共用活頁簿先取消,這樣才能安裝巨集跟解除密碼保護(解決取消密碼保護反灰的問題)
※這步驟不是每個Excel都會需要做
lock4
這邊請按【是】,就會解除活頁簿共用狀態
lock5
接著會因為有透過加密且有密碼保護的原因,會問你要不要轉換Open XML,因為我要還給他的是原Excel,所以選【否】
lock6
接著就可以看到【取消保護工作表】、【保護活頁簿】可以選了,而【保護活頁簿】是黃底的,表示有啟用
lock7
接著我們新增一個巨集,按一下上面的【檢視】→【巨集】→【錄製巨集】
lock8
在巨集的名稱,輸入【PasswordBreaker】,並確認巨集是儲存在【現用活頁簿】,且目前開啟的活頁簿是要被破解的
lock9
接著我們檢視這個新增的巨集
lock10
接著編輯剛剛新增的巨集
lock11
然後將剛剛的VBA全部貼到裡面,然後存檔
lock12
在存檔的過程中,會出現一個錯誤,直接按確定,在存一次就好
lock13
接著就可以執行看看,它會幫你把密碼解出來,並且直接幫你先解開
lock14
lock15
之所以前面沒有提到儲存格層級的保護破解,是因為解除了工作表的保護,就可以自行修改密碼了
lock16
lock17
當然你也可以新增或修改使用者權限,因為我不是他們公司的人,只會看到一串SID在那裏
所以新增權限的部份就交給他去處理吧
lock18
到這裡,工作表跟儲存格的保護就算是解除了,接著就是要去解除活頁簿層級的保護了
接著,就先存檔將這個Excel關閉,再去執行password_2007_2010.xlam
這時會需要啟用巨集,如果不放心的話…只能請您另外找東西去破解了..
lock19
開啟增益集之後,我們可以透過開啟舊檔的方式,去開啟我們要破解的Excel檔案
然後透過增益集,去選取要破解的是工作表,還是活頁簿,或者是全部
※增益集不會顯示密碼,這是我使用巨集的原因之一
lock21
按下去之後,就會破解了,我破解是只有花一秒鐘
lock22
接著我嘗試去新增活頁簿,確實是可以新增,也可以修改舊有的活頁簿名稱了
lock23

就這樣~再來就是把巨集清一清,寄回去交差囉





轉自  : https://dotblogs.com.tw/daniel07793/2012/04/18/71593

留言

熱門文章