excel后缀名xlsm加密文件破解

2022-03-22 社会 422阅读
  • 1、新建一个EXCEL文件“BOOK1”,在工具栏空白位置,任意右击,选择VisualBasic项,弹出VisualBasic工具栏:

  • 2

    2、在VisualBasic工具栏中,点击“录制”按钮,弹出“录制新宏”对话框,选择“个人宏工作簿”: 

  • 3、选择“个人宏工作簿”后按确定,弹出如下“暂停”按钮,点击停止: 

  • 4、在VisualBasic工具栏中,点击“编辑”按钮: 

  • 5、点击“编辑”按钮后,弹出如下图的编辑界面:
    找到“VBAProject(PERSONAL.XLS)-模块-模块1(也可能是模块N-其他数字)”
    双击模块1-将右边代码内容清空 

  • 6、复制“工作保护密码破解”代码到右边框中,点保存,然后关闭“BOOK1” 

  • 7、运行需要解密的“EXCEL文件”,在VisualBasic工具栏中,点击“运行”按钮 

  • 8、点击“运行”按钮后,弹出“宏”对话框,
    点击运行“PERSONAL.XLS!工作保护密码破解”这个宏 

  • 9、运行“PERSONAL.XLS!工作保护密码破解”这个宏后,
    如下图示意就可以解除工作表的密码保护了 

  • (这个图,如果工作表中有多组不同密码,
    每解开一组,就会提示一次,也就说可能会出现几次)

  • 工作表保护密码破解(代码)

    =========请复制以下内容=============

    PublicSub工作表保护密码破解()
    ConstDBLSPACEAsString=vbNewLine&vbNewLine
    ConstAUTHORSAsString=DBLSPACE&vbNewLine&_
    "作者:McCormick JEMcGimpsey"
    ConstHEADERAsString="工作表保护密码破解"
    ConstVERSIONAsString=DBLSPACE&"版本Version1.1.1"
    ConstREPBACKAsString=DBLSPACE&""
    ConstZHENGLIAsString=DBLSPACE&"         hfhzi3—戊冥整理"
    ConstALLCLEARAsString=DBLSPACE&"该工作簿中的工作表密码保护已全部解除!!"&DBLSPACE&"请记得另保存"_
    &DBLSPACE&"注意:不要用在不当地方,要尊重他人的劳动成果!"
    ConstMSGNOPWORDS1AsString="该文件工作表中没有加密"
    ConstMSGNOPWORDS2AsString="该文件工作表中没有加密2"
    ConstMSGTAKETIMEAsString="解密需花费一定时间,请耐心等候!"&DBLSPACE&"按确定开始破解!"
    ConstMSGPWORDFOUND1AsString="密码重新组合为:"&DBLSPACE&"$$"&DBLSPACE&_
    "如果该文件工作表有不同密码,将搜索下一组密码并修改清除"
    ConstMSGPWORDFOUND2AsString="密码重新组合为:"&DBLSPACE&"$$"&DBLSPACE&_
    "如果该文件工作表有不同密码,将搜索下一组密码并解除"
    ConstMSGONLYONEAsString="确保为唯一的?"
    Dimw1AsWorksheet,w2AsWorksheet
    DimiAsInteger,jAsInteger,kAsInteger,lAsInteger
    DimmAsInteger,nAsInteger,i1AsInteger,i2AsInteger
    Dimi3AsInteger,i4AsInteger,i5AsInteger,i6AsInteger
    DimPWord1AsString
    DimShTagAsBoolean,WinTagAsBoolean
    Application.ScreenUpdating=False
    WithActiveWorkbook
    WinTag=.ProtectStructureOr.ProtectWindows
    EndWith
    ShTag=False
    ForEachw1InWorksheets
    ShTag=ShTagOrw1.ProtectContents
    Nextw1
    IfNotShTagAndNotWinTagThen
    MsgBoxMSGNOPWORDS1,vbInformation,HEADER
    ExitSub
    EndIf
    MsgBoxMSGTAKETIME,vbInformation,HEADER
    IfNotWinTagThen
    Else
    OnErrorResumeNext
    Do'dummydoloop
    Fori=65To66:Forj=65To66:Fork=65To66
    Forl=65To66:Form=65To66:Fori1=65To66
    Fori2=65To66:Fori3=65To66:Fori4=65To66
    Fori5=65To66:Fori6=65To66:Forn=32To126
    WithActiveWorkbook
    .UnprotectChr(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=FalseAnd_
    .ProtectWindows=FalseThen
    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)
    MsgBoxApplication.Substitute(MSGPWORDFOUND1,_
    "$$",PWord1),vbInformation,HEADER
    ExitDo'Bypassallfor...nexts
    EndIf
    EndWith
    Next:Next:Next:Next:Next:Next
    Next:Next:Next:Next:Next:Next
    LoopUntilTrue
    OnErrorGoTo0
    EndIf

    IfWinTagAndNotShTagThen
    MsgBoxMSGONLYONE,vbInformation,HEADER
    ExitSub
    EndIf
    OnErrorResumeNext

    ForEachw1InWorksheets
    'AttemptclearancewithPWord1
    w1.UnprotectPWord1
    Nextw1
    OnErrorGoTo0
    ShTag=False
    ForEachw1InWorksheets
    'ChecksforallclearShTagtriggeredto1ifnot.
    ShTag=ShTagOrw1.ProtectContents
    Nextw1
    IfShTagThen
    ForEachw1InWorksheets
    Withw1
    If.ProtectContentsThen
    OnErrorResumeNext
    Do'Dummydoloop
    Fori=65To66:Forj=65To66:Fork=65To66
    Forl=65To66:Form=65To66:Fori1=65To66
    Fori2=65To66:Fori3=65To66:Fori4=65To66
    Fori5=65To66:Fori6=65To66:Forn=32To126
    .UnprotectChr(i)&Chr(j)&Chr(k)&_
    Chr(l)&Chr(m)&Chr(i1)&Chr(i2)&Chr(i3)&_
    Chr(i4)&Chr(i5)&Chr(i6)&Chr(n)
    IfNot.ProtectContentsThen
    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)
    MsgBoxApplication.Substitute(MSGPWORDFOUND2,_
    "$$",PWord1),vbInformation,HEADER
    'leveragefindingPwordbytryingonothersheets
    ForEachw2InWorksheets
    w2.UnprotectPWord1
    Nextw2
    ExitDo'Bypassallfor...nexts
    EndIf
    Next:Next:Next:Next:Next:Next
    Next:Next:Next:Next:Next:Next
    LoopUntilTrue
    OnErrorGoTo0
    EndIf
    EndWith
    Nextw1
    EndIf
    MsgBoxALLCLEAR&AUTHORS&VERSION&REPBACK&ZHENGLI,vbInformation,HEADER
    EndSub

  • 是放在VBAProject(PERSONAL.XLS)[个人宏工作簿]——[模块]中的,如上图是放在红色标号2[模块1]中

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com