excel密碼破解(全)

本文鏈接:https://blog.csdn.net/ccdabc123/article/details/85333422

本文介紹在 Excel 的多個(gè)文件版本中破解各類密碼,包含文件的查看席里、只讀密碼嘿架,工作表眨补、工作簿的保護(hù)密碼滔悉,以及 VBA 工程密碼扳缕。內(nèi)容非常全面驶社,建議你收藏堵腹。文件作者加密碼是防止數(shù)據(jù)被查看奔脐,修改俄周,所以,文件密碼破解僅供于學(xué)習(xí)參考髓迎,請(qǐng)尊重作者版權(quán)峦朗,不要斷人財(cái)路。

下面的有些操作不易撤銷排龄,為了防止文件被破壞甚垦,破解密碼前建議備份原文件。

1. 文件查看涣雕、只讀密碼破解

Excel 文件的查看艰亮、只讀密碼目前只能采用暴力破解,就是用成千上萬(wàn)個(gè)密碼一個(gè)一個(gè)去試挣郭。非常消耗資源迄埃,取決于你密碼的長(zhǎng)度和復(fù)雜程度,有時(shí)也未必能破解成功兑障。目前我還沒有找到比較好的免費(fèi)工具去破解此類密碼侄非,有一定及時(shí)推薦。在這里我介紹兩個(gè)網(wǎng)站可以破解此類密碼流译,付費(fèi)的逞怨。
??http://www.password-online.com/index.php
??http://www.decryptum.com/
上傳文件前請(qǐng)檢查文件是否含比較私密的內(nèi)容。

2. 工作表福澡、工作簿保護(hù)密碼破解

此密碼主要用于防止數(shù)據(jù)表的表格叠赦、格式、內(nèi)容革砸、公式等被修改刪除除秀。當(dāng)工作表的單元格被保護(hù)時(shí)糯累,試圖編輯或刪除那些單元格時(shí)你會(huì)收到提示 “試圖更改的單元格或圖表在受保護(hù)的工作表中” 告訴你編輯失敗。工作簿被保護(hù)時(shí)册踩,則不能新增泳姐、刪除工作表。此類密碼的破解方法因文件的后綴而異:

1) 后綴為 .xls 的文件

用 Excel 打開工作簿暂吉,然后按 Alt + F11 進(jìn)入 “開發(fā)工具” 界面胖秒,如下圖:


image

在左邊的工程欄(Project)中選定節(jié)點(diǎn) “ThisWorkbook”,雙擊左鍵慕的,然后把下面的代碼復(fù)制到右邊的代碼編輯框中

Public Sub 工作表保護(hù)密碼破解()
    Const DBLSPACE As String = vbNewLine & vbNewLine
    Const AUTHORS As String = DBLSPACE & vbNewLine & _
        "作者:McCormick   JE McGimpsey "
    Const HEADER As String = "工作表保護(hù)密碼破解"
    Const VERSION As String = DBLSPACE & "版本 Version 1.1.1"
    Const REPBACK As String = DBLSPACE & ""
    Const ZHENGLI As String = DBLSPACE & ""
    Const ALLCLEAR As String = DBLSPACE & "該工作簿中的工作表密碼保護(hù)已全部解除!!" & DBLSPACE & "請(qǐng)記得另保存" _
        & DBLSPACE & "注意:不要用在不當(dāng)?shù)胤窖指危鹬厮说膭趧?dòng)成果!"
    Const MSGNOPWORDS1 As String = "該文件工作表中沒有加密"
    Const MSGNOPWORDS2 As String = "該文件工作表中沒有加密2"
    Const MSGTAKETIME As String = "解密需花費(fèi)一定時(shí)間,請(qǐng)耐心等候!" & DBLSPACE & "按確定開始破解!"
    Const MSGPWORDFOUND1 As String = "密碼重新組合為:" & DBLSPACE & "$$" & DBLSPACE & _
        "如果該文件工作表有不同密碼,將搜索下一組密碼并修改清除"
    Const MSGPWORDFOUND2 As String = "密碼重新組合為:" & DBLSPACE & "$$" & DBLSPACE & _
        "如果該文件工作表有不同密碼,將搜索下一組密碼并解除"
    Const MSGONLYONE As String = "確保為唯一的?"

    Dim w1 As Worksheet, w2 As Worksheet
    Dim i As Integer, j As Integer, k As Integer, l As Integer
    Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer
    Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer
    Dim PWord1 As String
    Dim ShTag As Boolean, WinTag As Boolean
    Application.ScreenUpdating = False
    With ActiveWorkbook
        WinTag = .ProtectStructure Or .ProtectWindows
    End With
    ShTag = False
    For Each w1 In Worksheets
        ShTag = ShTag Or w1.ProtectContents
    Next w1
    If Not ShTag And Not WinTag Then
        MsgBox MSGNOPWORDS1, vbInformation, HEADER
        Exit Sub
    End If
    MsgBox MSGTAKETIME, vbInformation, HEADER
    If Not WinTag Then
    Else
    On Error Resume Next
    Do 'dummy do loop
    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
    With ActiveWorkbook
    .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 .ProtectStructure = False And _
    .ProtectWindows = False Then
    PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
    Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
    Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
    MsgBox Application.Substitute(MSGPWORDFOUND1, _
    "$$", PWord1), vbInformation, HEADER
    Exit Do 'Bypass all for...nexts
    End If
    End With
    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next: Next
    Loop Until True
    On Error GoTo 0
    End If
    If WinTag And Not ShTag Then
    MsgBox MSGONLYONE, vbInformation, HEADER
    Exit Sub
    End If
    On Error Resume Next
    For Each w1 In Worksheets
    'Attempt clearance with PWord1
    w1.Unprotect PWord1
    Next w1
    On Error GoTo 0
    ShTag = False
    For Each w1 In Worksheets
    'Checks for all clear ShTag triggered to 1 if not.
    ShTag = ShTag Or w1.ProtectContents
    Next w1
    If ShTag Then
    For Each w1 In Worksheets
    With w1
    If .ProtectContents Then
    On Error Resume Next
    Do 'Dummy do loop
    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
    .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 Not .ProtectContents Then
    PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
    Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
    Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
    MsgBox Application.Substitute(MSGPWORDFOUND2, _
    "$$", PWord1), vbInformation, HEADER
    'leverage finding Pword by trying on other sheets
    For Each w2 In Worksheets
    w2.Unprotect PWord1
    Next w2
    Exit Do 'Bypass all for...nexts
    End If
    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next: Next
    Loop Until True
    On Error GoTo 0
    End If
    End With
    Next w1
    End If
    MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK & ZHENGLI, vbInformation, HEADER
End Sub

完成后如下圖:


image

然后點(diǎn)擊上圖的小三角按鈕(如藍(lán)色圓圈標(biāo)注)執(zhí)行代碼破解密碼业稼。如果 Excel 提示宏被禁用而導(dǎo)致代碼無(wú)法運(yùn)行時(shí)盗痒,先在文件菜單中保存文件蚂蕴,然后關(guān)閉 Excel低散。重新打開 Excel 并啟用宏,按 Alt + F11 回到此界面再點(diǎn)擊小三角按鈕重新進(jìn)行密碼破解骡楼。
破解期間會(huì)出現(xiàn)兩次提示的對(duì)話框熔号,都選擇 “確認(rèn)”。密碼破解完畢之后會(huì)出現(xiàn)如下窗口:


image

這說(shuō)明工作表或工作簿的保護(hù)密碼已被成功清除鸟整。最后按 Alt + F11 回到 “開發(fā)工具” 界面引镊,刪除 “ThisWorkbook” 節(jié)點(diǎn)中的代碼,保存工作表篮条。

后綴為 .xlsx 或 .xlsm 的文件

在這里以 .xlsx 文件為例講解弟头,首先把文件的后綴從 .xlsx 修改成 .rar 或 .zip,然后使用壓縮軟件涉茧,例如 WinRar, 7-Zip 打開壓縮文件赴恨。
工作表被鎖定:進(jìn)入文件夾 xl\worksheets,找到被鎖定的工作表伴栓,例如 sheet1伦连,如下圖:

image

選中此文件 “sheet1.xml” ,右擊钳垮,選擇記事本編輯惑淳。在記事本中查找字符串 <sheetProtection,找到后刪除從 <sheetProtection 到 /> 的內(nèi)容饺窿,如下圖藍(lán)色標(biāo)記:


image

工作簿被鎖定:進(jìn)入文件夾 xl歧焦,找到文件 “workbook.xml”。選定右擊肚医,選擇記事本編輯倚舀,在記事本中查找字符串 <workbookProtection叹哭,找到后刪除從<workbookProtection到/>的內(nèi)容,如下圖藍(lán)色標(biāo)記:

image

刪除完成后在記事本中選擇 “文件” – “保存” 選項(xiàng)保存此文件痕貌。在記事本保存完成后壓縮軟件會(huì)提示你此文件已更改风罩,是否更新?然后選擇 “是”舵稠。
??關(guān)閉壓縮軟件超升,把文件后綴從 .zip 或 .rar 修改回 .xlsx。用 Excel 打開 .xlsx 文件哺徊,此時(shí)你可以發(fā)現(xiàn)工作表或者工作簿的保護(hù)密碼已被清除室琢。

3. VBA 工程密碼破解

VBA 工程密碼也就是宏的保護(hù)密碼,它的破解也因文件的后綴而異:

1) 后綴為 .xls 的文件

--xlxm文件另存為xls文件

打開 Excel落追,新建一個(gè)文檔盈滴,按 Alt + F11 進(jìn)入 “開發(fā)工具” 界面,如下圖:


image

在左邊的工程欄(Project)中選定節(jié)點(diǎn) “ThisWorkbook”轿钠,雙擊左鍵巢钓,然后把下面的代碼復(fù)制到右邊的代碼編輯框中

Private Sub VBAPassword()  '你要解保護(hù)的Excel文件路徑
    Filename = Application.GetOpenFilename("Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt", , "VBA破解")
    If Dir(Filename) = "" Then
    MsgBox "沒找到相關(guān)文件,清重新設(shè)置。"
        Exit Sub
    Else
    FileCopy Filename, Filename & ".bak" '備份文件疗垛。
    End If
    Dim GetData As String * 5
    Open Filename For Binary As #1
    Dim CMGs As Long
    Dim DPBo As Long
    For i = 1 To LOF(1)
    Get #1, i, GetData
    If GetData = "CMG=""" Then CMGs = i
    If GetData = "[Host" Then DPBo = i - 2: Exit For
    Next
    If CMGs = 0 Then
    MsgBox "請(qǐng)先對(duì)VBA編碼設(shè)置一個(gè)保護(hù)密碼...", 32, "提示"
    Exit Sub
    End If
    Dim St As String * 2
    Dim s20 As String * 1
    '取得一個(gè)0D0A十六進(jìn)制字串
    Get #1, CMGs - 2, St
    '取得一個(gè)20十六制字串
    Get #1, DPBo + 16, s20
    '替換加密部份機(jī)碼
    For i = CMGs To DPBo Step 2
    Put #1, i, St
    Next
    '加入不配對(duì)符號(hào)
    If (DPBo - CMGs) Mod 2 <> 0 Then
    Put #1, DPBo + 1, s20
    End If
    MsgBox "文件解密成功......", 32, "提示"
    Close #1
End Sub

完成后如下圖:


image

點(diǎn)擊上圖的小三角按鈕(如藍(lán)色圓圈標(biāo)注)執(zhí)行代碼症汹。在系統(tǒng)彈出的 “文件選擇對(duì)話框” 中選擇你要破解密碼的 Excel 文件,選中后點(diǎn)擊 “打開”贷腕。一會(huì) Excel 提示 “文件解密成功”背镇,這代表選定文件的 VBA 工程密碼已被清除。

2) 后綴為 .xlsm 的文件

把文件的后綴從 .xlsm 修改成 .rar 或者 .zip泽裳,然后用壓縮軟件解壓這個(gè)壓縮文件瞒斩。打開解壓后的文件,在文件夾 xl 中找到文件 vbaProject.bin涮总,如下圖:


image

用二進(jìn)制文件編輯軟件胸囱,例如 XVI32 (可直接下載使用,免安裝) 打開 vbaProject.bin 文件妹卿,然后在其中查找 DPB旺矾,如下圖:


image

把 DPB 替換成 DPx, 如下:


image

--將 CMG= "XXXXXXX…”的CMG關(guān)鍵字改成CMx,--
--將 DBP="XXXXXXX…”的DBP關(guān)鍵字改成DBx夺克,--
--將 GC= "XXXXXXX…”的GC關(guān)鍵字改成Gx箕宙,--

使Excel不能識(shí)別此三項(xiàng)!存盤即可F膛Α<砼痢!
用Excel打開此文件,忽略錯(cuò)誤提示陷寝,進(jìn)入VBA編輯器锅很,密碼沒有了!
做一次存盤操作即可修復(fù)錯(cuò)誤提示凤跑。

保存文件爆安,重新壓縮,把文件的后綴重新修改回 .xlsm仔引。用 Excel 打開文檔扔仓,期間出現(xiàn)的任何提示都點(diǎn)擊 “是” 或 “確認(rèn)” 忽略它。
??按 Alt + F11 進(jìn)入 “開發(fā)工具” 界面咖耘,在 Tools -> VBAProject Properties 的 Protection 欄重新設(shè)置一個(gè)新的 VBA 工程密碼翘簇,然后保存文件,關(guān)閉 Excel儿倒。
??重新打開之后先前的提示不會(huì)再出現(xiàn)版保,用新密碼也可以成功打開 VBA 工程。VBA 工程密碼重設(shè)成功!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末夫否,一起剝皮案震驚了整個(gè)濱河市彻犁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慷吊,老刑警劉巖袖裕,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曹抬,死亡現(xiàn)場(chǎng)離奇詭異溉瓶,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)谤民,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門堰酿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人张足,你說(shuō)我怎么就攤上這事触创。” “怎么了为牍?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵哼绑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我碉咆,道長(zhǎng)抖韩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任疫铜,我火速辦了婚禮茂浮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘呢簸。我一直安慰自己鳞滨,他們只是感情好硬纤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布嘉抓。 她就那樣靜靜地躺著校辩,像睡著了一般斋陪。 火紅的嫁衣襯著肌膚如雪癌椿。 梳的紋絲不亂的頭發(fā)上躺坟,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天属桦,我揣著相機(jī)與錄音程帕,去河邊找鬼。 笑死地啰,一個(gè)胖子當(dāng)著我的面吹牛愁拭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亏吝,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼岭埠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蔚鸥?” 一聲冷哼從身側(cè)響起惜论,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎止喷,沒想到半個(gè)月后馆类,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弹谁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年乾巧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片预愤。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沟于,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出植康,到底是詐尸還是另有隱情旷太,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布销睁,位于F島的核電站供璧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冻记。R本人自食惡果不足惜睡毒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望檩赢。 院中可真熱鬧吕嘀,春花似錦违寞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至棕洋,卻和暖如春挡闰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掰盘。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工摄悯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人愧捕。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓奢驯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親次绘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瘪阁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1).引言 Redis單節(jié)點(diǎn)存在單點(diǎn)故障,為解決單點(diǎn)問(wèn)題邮偎,需要對(duì)Redis節(jié)點(diǎn)配置從節(jié)點(diǎn)管跺。使用哨兵來(lái)監(jiān)聽主節(jié)點(diǎn)存活...
    b47251f96536閱讀 120評(píng)論 0 1
  • 參考傳智視頻,整理中禾进。豁跑。。 01_課程介紹 重點(diǎn)講解java8 和java9當(dāng)中的新特性 課程定位:適合有一定ja...
    wangxg_de27閱讀 503評(píng)論 0 0
  • 昨天開始下雨泻云,隨著雨一同到來(lái)的就是降溫艇拍,明顯感覺到一股股寒意籠罩著四周,一整夜淅淅瀝瀝的雨聲讓人已經(jīng)感覺不到國(guó)慶的...
    月殘風(fēng)閱讀 427評(píng)論 0 1
  • 與人交流時(shí)壶愤,有人發(fā)言語(yǔ)無(wú)倫次淑倾,舌頭像打了結(jié)馏鹤。 有人一開講便滔滔不絕征椒,卻毫無(wú)重點(diǎn)。 也有人說(shuō)話索然無(wú)味湃累,沒法讓你投以...
    鄭旭Cherry閱讀 439評(píng)論 0 0
  • 一個(gè)人onelove 謹(jǐn)以此文祭奠我兒時(shí)的玩伴一一紀(jì)云姑姑勃救! 小時(shí)候,總嫌天長(zhǎng)治力;一晌午蒙秒,一下午似乎不會(huì)結(jié)束似的。對(duì)...
    緣子與墨閱讀 473評(píng)論 2 3