EXCEL密码破解doc.docx

上传人:b****6 文档编号:7592523 上传时间:2023-05-11 格式:DOCX 页数:28 大小:23.35KB
下载 相关 举报
EXCEL密码破解doc.docx_第1页
第1页 / 共28页
EXCEL密码破解doc.docx_第2页
第2页 / 共28页
EXCEL密码破解doc.docx_第3页
第3页 / 共28页
EXCEL密码破解doc.docx_第4页
第4页 / 共28页
EXCEL密码破解doc.docx_第5页
第5页 / 共28页
EXCEL密码破解doc.docx_第6页
第6页 / 共28页
EXCEL密码破解doc.docx_第7页
第7页 / 共28页
EXCEL密码破解doc.docx_第8页
第8页 / 共28页
EXCEL密码破解doc.docx_第9页
第9页 / 共28页
EXCEL密码破解doc.docx_第10页
第10页 / 共28页
EXCEL密码破解doc.docx_第11页
第11页 / 共28页
EXCEL密码破解doc.docx_第12页
第12页 / 共28页
EXCEL密码破解doc.docx_第13页
第13页 / 共28页
EXCEL密码破解doc.docx_第14页
第14页 / 共28页
EXCEL密码破解doc.docx_第15页
第15页 / 共28页
EXCEL密码破解doc.docx_第16页
第16页 / 共28页
EXCEL密码破解doc.docx_第17页
第17页 / 共28页
EXCEL密码破解doc.docx_第18页
第18页 / 共28页
EXCEL密码破解doc.docx_第19页
第19页 / 共28页
EXCEL密码破解doc.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

EXCEL密码破解doc.docx

《EXCEL密码破解doc.docx》由会员分享,可在线阅读,更多相关《EXCEL密码破解doc.docx(28页珍藏版)》请在冰点文库上搜索。

EXCEL密码破解doc.docx

EXCEL密码破解doc

 

EXCEL密码破解

 

打开文件

工具---宏----录制新宏---输入名字如:

aa

停止录制(这样得到一个空宏)

工具---宏----宏,选aa,点编辑按钮

删除窗口中的所有字符(只有几个),替换为下面的内容:

(复制吧)

关闭编辑窗口

工具---宏-----宏,选AllInternalPasswords,运行,确定两次,等2分钟,再确定.OK,没有密码了!

!

内容如下:

PublicSubAllInternalPasswords()

'Breaksworksheetandworkbookstructurepasswords.BobMcCormick

'probablyoriginatorofbasecodealgorithmmodifiedforcoverage

'ofworkbookstructure/windowspasswordsandformultiplepasswords

'

'NormanHarkerandJEMcGimpsey27-Dec-2002(Version1.1)

'Modified2003-Apr-04byJEM:

Allmsgstoconstants,and

'eliminateoneExitSub(Version1.1.1)

'RevealshashedpasswordsNOToriginalpasswords

ConstDBLSPACEAsString=vbNewLine&vbNewLine

ConstAUTHORSAsString=DBLSPACE&vbNewLine&_

"AdaptedfromBobMcCormickbasecodeby"&_

"NormanHarkerandJEMcGimpsey"

ConstHEADERAsString="AllInternalPasswordsUserMessage"ConstVERSIONAsString=DBLSPACE&"Version1.1.12003-Apr-04"ConstREPBACKAsString=DBLSPACE&"Pleasereportfailure"&_"tothemicrosoft.public.excel.programmingnewsgroup."

ConstALLCLEARAsString=DBLSPACE&"Theworkbookshould"&_"nowbefreeofallpasswordprotection,somakesureyou:

"&_DBLSPACE&"SAVEITNOW!

"&DBLSPACE&"andalso"&_DBLSPACE&"BACKUP!

BACKUP!

!

BACKUP!

!

!

"&_

DBLSPACE&"Also,rememberthatthepasswordwas"&_"putthereforareason.Don'tstuffupcrucialformulas"&_"ordata."&DBLSPACE&"Accessanduseofsomedata"&_"maybeanoffense.Ifindoubt,don't."

ConstMSGNOPWORDS1AsString="Therewerenopasswordson"&_"sheets,orworkbookstructureorwindows."&AUTHORS&VERSIONConstMSGNOPWORDS2AsString="Therewasnoprotectionto"&_"workbookstructureorwindows."&DBLSPACE&_"Proceedingtounprotectsheets."&AUTHORS&VERSION

ConstMSGTAKETIMEAsString="AfterpressingOKbuttonthis"&_"willtakesometime."&DBLSPACE&"Amountoftime"&_"dependsonhowmanydifferentpasswords,the"&_

"passwords,andyourcomputer'sspecification."&DBLSPACE&_

 

"Justbepatient!

Makemeacoffee!

"&AUTHORS&VERSION

ConstMSGPWORDFOUND1AsString="YouhadaWorksheet"&_"StructureorWindowsPasswordset."&DBLSPACE&_

"Thepasswordfoundwas:

"&DBLSPACE&"$$"&DBLSPACE&_"Noteitdownforpotentialfutureuseinotherworkbooksby"&_"thesamepersonwhosetthispassword."&DBLSPACE&_

"Nowtocheckandclearotherpasswords."&AUTHORS&VERSIONConstMSGPWORDFOUND2AsString="YouhadaWorksheet"&_"passwordset."&DBLSPACE&"Thepasswordfoundwas:

"&_DBLSPACE&"$$"&DBLSPACE&"Noteitdownforpotential"&_"futureuseinotherworkbooksbysamepersonwho"&_

"setthispassword."&DBLSPACE&"Nowtocheckandclear"&_"otherpasswords."&AUTHORS&VERSION

ConstMSGONLYONEAsString="Onlystructure/windows"&_"protectedwiththepasswordthatwasjustfound."&_ALLCLEAR&AUTHORS&VERSION&REPBACK

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

MsgBoxMSGNOPWORDS2,vbInformation,HEADER

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,vbInformation,HEADEREndSub

 

穷举破解EXCEL、WORD文档密码

 

摘要:

本文讨论了如何使用VB编程,通过穷举法解除

 

EXCEL

 

文档和

 

WORD

 

文档的密码。

并在破解过程

 

中加入了中断,以方便用户随时中断破解过程。

 

关键字:

穷举法、解密、EXCEL文档、WORD文档、密码

 

Excel和Word提供了多种方法限制访问用户文档,以免XX者的查看和更改。

但在信息化的今天,用

 

户需要记忆的密码太多,一旦密码丢失,用户将无法打开或访问该文档,给用户造成很大的损失。

能否借助

计算机的高速运行,解开密码呢?

通过尝试,笔者认为:

在无法弄清Excel和Word加密算法的情况下,利用穷举法尝试解密文档,是解密唯一的选择。

 

1.实现原理

 

本程序选用VB6.0编写,并充分利用了Office组件中的对象库,穷举尝试各种口令,达到解密文档的目的。

 

⑴巧用整数的取整及取余,产生密码字符串

Excel

Word

文档密码可以是字母、数字、空格以及符号的任意组合,最长可达

15个字符,且区分大小

 

写。

本程序的破解过程利用一个两层循环,产生选定字符的排列组合(尝试密码),其中外层循环控制密码的位

数,内层循环生成N位密码的所有排列组合。

产生尝试密码的方法是:

将一个N位字符串密码(

password

 

作为一个“数值”,该“数值”每个位上的“数字”属于选定字符范围,且该

 

“数值”与一个整数(

 

X)一一对应,并

 

满足以下条件:

 

0≤X≤ArrayLenN-1(ArrayLen

 

是选定密码字符范围的总字符数,如:

仅选定数字时,

 

ArrayLen=10

 

;仅选定数字和小写字母时,

 

ArrayLen=10+26=36

 

);对

 

X整除、取余

 

N-1

 

次,对每次的余

 

数Y做以下操作:

 

password=password+CharArray(Y)

 

(注:

 

CharArray

 

是存放选定字符的一维数组),

 

最后做以下操作:

 

password=CharArray(XMODArrayLen)+password

 

,产生的

 

password

 

就是整数

 

X对

 

应的N位字符串。

 

⑵利用VB的错误处理功能,尝试口令破解

 

当运行程序尝试一个密码时(用该密码打开文档),若密码错误,则会产生运行错误。

为此,必须在尝试口

 

令前,使用OnError语句打开一个错误处理程序;由于本程序是尝试各种口令,当一个口令错误时,直接

 

尝试下一个口令即可,因此,应使用

 

“OnErrorResumeNext

 

”语句。

 

那么,如何得知找到口令了呢?

 

VB

 

有一个内部错误对象

 

Err,它的

 

Number

 

属性中的值是用来确定发生

 

错误的原因。

在尝试一个口令后,检查Err.Number中的值,以确定该口令是否正确。

 

⑶破解过程中的中断

利用穷举法解密对系统资源的占用是十分惊人的,在解密的过程中

CPU

的利用率几乎是

100%,若不加入

 

解密过程中的中断,

 

计算机系统会处于一种假死机状态。

为此,在破解过程的内循环中加入了

 

DoEvents

 

 

数。

DoEvents函数提供了一种取消任务的简便方法,它将控制切换到操作环境内核。

只要此环境中的所有

 

应用程序都有机会响应待处理事件,应用程序就又恢复控制。

使用该函数的优点是:

不会使应用程序放弃焦点,且后台事件能够得到有效处理。

2.具体实现过程

 

编程实现时,需要机器安装有VB应用程序及MicrosoftOffice组件。

 

⑴新建VB工程,并对其初始化

 

新建一个VB工程,取名Get_Password,将启动窗体命名为FrmMain。

首先选择“工程”菜单中的“引用”,在

 

“引用”对话框中选择“MicrosoftExcel10.0ObjectLibrary和“Microsoft”Word10.0ObjectLibrary(注意”:

 

果安装的是Office2000或Office97,应该选择Excel对象库和Word对象库的9.0版或8.0版)。

其次在“工

 

程”菜单中“部件”对话框中,选择添加“MicrosoftWindowscommoncontrols-2.5(sp2)”和“MicrosoftCommon

 

Dialogcontrol6.0,以”便在窗体设计中使用微调控件和对话框控件。

 

⑵在FrmMain窗体上添加控件

 

在FrmMain窗体上,按照下图的位置添加表1中的控件,然后根据表1修改每个对象的属性。

 

表1:

 

序号控件名称控件属性及其属性值

 

1

Frame

Name=Frame1

,Caption=选择加密文件(*.DOC、*.XLS)

2

Frame

Name=Frame2

,Caption=选定密码字符范围:

3

Frame

Name=Frame3

,Caption=选择密码的长度:

 

4

ComboBow

Name=Combo1

5

CommandButton

Name=CmdBrowse,Caption=浏览

6

CommandButton

Name=CmdStartCrack

,Caption=开始破解

7

CommandButton

Name=CmdQuit

,Caption=退出系统

8

CheckBox

Name=ChkDigital

,Caption=数字(10)

9

CheckBox

Name=ChkLowercase

,Caption=小写字母(26)

10

CheckBox

Name=ChkUppercase

,Caption=大写字母(26)

11

CheckBox

Name=ChkSpace

,Caption=空格

(1)

12

CheckBox

Name=ChkBracket

,Caption=括号(6)

13

CheckBox

Name=ChkOthers

,Caption=其他OEM字符(26)

14

TextBox

Name=txtPasswordStartLong

,Text=2

15

TextBox

Name=txtPasswordEndLong

,Text=2

16

TextBox

Name=Text1

17

UpDown

Name=UpDown1

,BuddyProperty=Text

,Wrap=TRUE

,Increment=1

BuddyControl=txtPasswordStartLong

,Max=15,Min=

18

UpDown

Name=UpDown2

,BuddyProperty=Text

,Wrap=TRUE

,Increment=1

BuddyControl=txtPasswordEndLong

,Max=15,Min=1

19

CommonDialog

Name=Dialog

,DialogTitle=请选择加密的Excel

或Word文档

 

Filter=Excel(*.xls),Word(*.doc)|*.xls;*.doc

 

20

Label

Name=Label1

,Caption=破解进度:

21

Label

Name=Label3

,Caption=从:

22

Label

Name=Label5

,Caption=到:

 

⑶为以上对象编写下列代码

为了便于理解,程序中增加了适当的注释。

OptionExplicit

 

PrivateSubCmdBrowse_Click()

 

Dialog.ShowOpen'showthedialog

 

Combo1.Text=Dial

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2