2018年2月9日 星期五

移除Excel保護密碼(★★★僅供還原遺留原始碼,請勿用在非法用途!!!★★★)

場景1:
前人遺留的Excel VBA專案,被密碼保護但沒人記得密碼

解法1:
1_備份原始檔(很重要!)
2_在要解鎖的Excel VBA專案檔(以下簡稱[專案檔])按右鍵,用解壓縮軟體(本例用7-zip)開啟
3_進入 xl 目錄
4_編輯 vbaProject.bin 檔案(建議使用Notepad++)
5_尋找 DPB 這個字串
6_把它改成 DPx (或任一字串, 就是要改變它)
7_關閉編輯器後存檔















8_用Excel開啟修改後的[專案檔], 因為DPB被改成DPx,所以會顯示錯誤訊息如下,按[是]即可










9_出現錯誤訊息,按[確定]即可
















10_開啟[開發人員]→[Visual Basic編輯器]
11_開啟[工具][VBAProject屬性][保護][檢視專案屬性的密碼]輸入新的密碼
12_按[儲存]
13_關閉Excel












14_重新開啟修改後的專案檔,即可用新的密碼進入VBA專案。


**Worked in Excel 2016(64bit), Windows 10(xlsm, 啟用巨集的活頁簿)**


場景2:
前人遺留純放資料的Excel,活頁簿(或工作表)被密碼保護但沒人記得密碼

解法2:
1_備份原始檔(很重要!)
2_在要移除密碼的Excel檔按右鍵,用解壓縮軟體(本例用7-zip)開啟
3_進入 xl 目錄
4_活頁簿就編輯 workbook.xml 檔案,工作表就下一層worksheets→sheet1.xml(看第幾張表)
































5_活頁簿就尋找 workbookProtection 這個Tag並移除,工作表就尋找 sheetProtection 這個Tag並移除之
6_重新開啟修改後的Excel檔可發現密碼移除

參考來源:
(1)Is there a way to crack the password on an Excel VBA Project? - Stack Overflow
(2)#1 How To Remove Password From Excel | Unprotect Excel Password Remover