RevisedfinaldraftNovember26,2020excel宏密码破解方法Excel“工程不可查看”两种实现方法及破解关于Excel宏编程中,要用到一些技巧,如破解Excel宏加密。今天我对一个Excel宏编程中进行日期限制进行了破解。 方法一(共用级锁定) 1、先对excel档进行一般的vbaproject”工程密码保护。 2、打开要保护的档,选择∶工具--->保护--->保护并共用活页簿--->以追踪修订方式共用-->输入密码-->保存档。完成後,当你打开“vbaproject”工程属性时,就将会提示∶“工程不可看!” 方法二(推荐,破坏型锁定) 用16进制编辑工具,如winhex、ultraedit-32(可到此下载)等,再历害点的人完全可以用debug命令来做......用以上软体打开excel档,查找定位以下地方∶注∶实际显示不会全部为0 此时,你只要将其中的位元组随便修改一下即可。保存再打开,就会发现大功告成! 当然,在修改前最好做好你的文档备份。至於恢复只要将改动过的地方还原即可(只要你记住了呵呵)。 破解方面,有网友说将CMG=,DPB=和GC=后的"="替换为"."也可以的,我已测试过的确可以,这样更省事点。用16进制编辑工具,如winhex、ultraedit-32打开X.xls文件,查找ID=......,或到文件尾查看,找到即可。改其中的任意一位,存盘就可达到目的,注意:留有备份文件二、EXCEL宏保护密码破解-VBA工程密码破解在办公中我们常看到许多用宏(VBA)编写的EXCEL
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
格,而这些表格就如同一个数据库,我们可以选取或查询很多的数据,一般的这些数据是存放在一个隐藏的工作表中的,那么要如何显示这个隐藏的工作表呢?我们可以打开宏编辑器(ALT+F11),再安CTRL+R打开专案,这时弹出窗会有所有的这个EXCEL的工用表,这时你就可以看看那些是被隐藏的了,很多时候打开是需要密码的,用以下方法解密后,再将解密后文件打开,依同样方法在工作表标签中右键>>检视程式码>>复制以下代码>>按F8执行PrivateSubCommandButton1_Click()Worksheets("这里为你要显示的工作表名称").Visible=TrueEndSub关于破解EXCELVBA工程密码的方法,以下代码非常有效,首先建一新EXCEL文件,在工作表标签处右点>>检视程式码>>复制以下代码>>按F8执行在弹出窗中选你要你破解工程密码的EXCEL文件>>再按F5执行即可.PrivateSubVBAPassword()'你要解保护的Excel文件路径Filename=Application.GetOpenFilename("Excel文件(*.xls&*.xla&*.xlt),*.xls;*.xla;*.xlt",,"VBA破解")IfDir(Filename)=""ThenMsgBox"没找到相关文件,清重新设置。"ExitSubElseFileCopyFilename,Filename&".bak"'备份文件。EndIfDimGetDataAsString*5OpenFilenameForBinaryAs#1DimCMGsAsLongDimDPBoAsLongFori=1ToLOF(1)Get#1,i,GetDataIfGetData="CMG="""ThenCMGs=iIfGetData="[Host"ThenDPBo=i-2:ExitForNextIfCMGs=0ThenMsgBox"请先对VBA编码设置一个保护密码...",32,"提示"ExitSubEndIfIfProtect=FalseThenDimStAsString*2Dims20AsString*1'取得一个0D0A十六进制字串Get#1,CMGs-2,St'取得一个20十六制字串Get#1,DPBo+16,s20'替换加密部份机码Fori=CMGsToDPBoStep2Put#1,i,StNext'加入不配对符号If(DPBo-CMGs)Mod2<>0ThenPut#1,DPBo+1,s20EndIfMsgBox"文件解密成功......",32,"提示"EndIfClose#1EndSub如果上面代码不能运行或出错,请用以下代码重试.PrivateSubVBAPassword()'你要解保护的Excel文件路径Filename=Application.GetOpenFilename("Excel文件(*.xls&*.xla&*.xlt),*.xls;*.xla;*.xlt",,"VBA破解")IfDir(Filename)=""ThenMsgBox"没找到相关文件,清重新设置。"ExitSubElseFileCopyFilename,Filename&".bak"'备份文件。EndIfDimGetDataAsString*5OpenFilenameForBinaryAs#1DimCMGsAsLongDimDPBoAsLongFori=1ToLOF(1)Get#1,i,GetDataIfGetData="CMG="""ThenCMGs=iIfGetData="[Host"ThenDPBo=i-2:ExitForNextIfCMGs=0ThenMsgBox"请先对VBA编码设置一个保护密码...",32,"提示"ExitSubEndIfDimStAsString*2Dims20AsString*1'取得一个0D0A十六进制字串Get#1,CMGs-2,St'取得一个20十六制字串Get#1,DPBo+16,s20'替换加密部份机码Fori=CMGsToDPBoStep2Put#1,i,StNext'加入不配对符号If(DPBo-CMGs)Mod2<>0ThenPut#1,DPBo+1,s20EndIfMsgBox"文件解密成功......",32,"提示"Close#1EndSub第二步:再点击“宏”→“查看宏”,选择“宏名”下的“PasswordBreaker”并点击“编辑”,打开“MicrosoftVisualBasic”编辑器,用如下内容替换右侧窗口中的所有代码:SubPasswordBreaker()DimiAsInteger,jAsInteger,kAsIntegerDimlAsInteger,mAsInteger,nAsIntegerDimi1AsInteger,i2AsInteger,i3AsIntegerDimi4AsInteger,i5AsInteger,i6AsIntegerOnErrorResumeNextFori=65To66:Forj=65To66:Fork=65To66Forl=65To66:Form=65To66:Fori1=65To66Fori2=65To66:Fori3=65To66:Fori4=65To66Fori5=65To66:Fori6=65To66:Forn=32To126ActiveSheet.UnprotectChr(i)&Chr(j)&Chr(k)&_Chr(l)&Chr(m)&Chr(i1)&Chr(i2)&Chr(i3)&_Chr(i4)&Chr(i5)&Chr(i6)&Chr(n)IfActiveSheet.ProtectContents=FalseThenMsgBox"Oneusablepasswordis"&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).SelectRange("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)ExitSubEndIfNext:Next:Next:Next:Next:NextNext:Next:Next:Next:Next:NextEndSub