穷举破解EXCEL.doc_第1页
穷举破解EXCEL.doc_第2页
穷举破解EXCEL.doc_第3页
穷举破解EXCEL.doc_第4页
穷举破解EXCEL.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

穷举破解EXCEL、WORD文档密码摘要:本文讨论了如何使用VB编程,通过穷举法解除EXCEL文档和WORD文档的密码。并在破解过程中加入了中断,以方便用户随时中断破解过程。关键字:穷举法、解密、EXCEL文档、WORD文档、密码Excel 和Word提供了多种方法限制访问用户文档,以免未经授权者的查看和更改。但在信息化的今天,用户需要记忆的密码太多,一旦密码丢失,用户将无法打开或访问该文档,给用户造成很大的损失。能否借助计算机的高速运行,解开密码呢?通过尝试,笔者认为:在无法弄清Excel和Word加密算法的情况下,利用穷举法尝试解密文档,是解密唯一的选择。1。实现原理本程序选用VB6。0编写,并充分利用了Office组件中的对象库,穷举尝试各种口令,达到解密文档的目的。巧用整数的取整及取余,产生密码字符串Excel和Word文档密码可以是字母、数字、空格以及符号的任意组合,最长可达15个字符,且区分大小写。本程序的破解过程利用一个两层循环,产生选定字符的排列组合,其中外层循环控制密码的位数,内层循环生成N位密码的所有排列组合。产生尝试密码的方法是:将一个N位字符串密码作为一个“数值”,该“数值”每个位上的“数字”属于选定字符范围,且该“数值”与一个整数一一对应,并满足以下条件:0XArrayLenN1;对X整除、取余N1次,对每次的余数Y做以下操作:passwordpassword+CharArray(Y),最后做以下操作:passwordCharArray(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”和“MicrosoftWord10。0ObjectLibrary”。其次在“工程”菜单中“部件”对话框中,选择添加“MicrosoftWindowscommoncontrols2。5(sp2)”和 “MicrosoftCommonDialogcontrol6。0”,以便在窗体设计中使用微调控件和对话框控件。在FrmMain窗体上添加控件在FrmMain窗体上,按照下图的位置添加表1中的控件,然后根据表1修改每个对象的属性。表1:序号控件名称控件属性及其属性值1FrameNameFrame1,Caption选择加密文件2FrameNameFrame2,Caption选定密码字符范围:3FrameNameFrame3,Caption选择密码的长度:4ComboBowNameCombo15CommandButtonNameCmdBrowse,Caption浏览6CommandButtonNameCmdStartCrack,Caption开始破解7CommandButtonNameCmdQuit,Caption退出系统8CheckBoxNameChkDigital,Caption数字(10)9CheckBoxNameChkLowercase,Caption小写字母(26)10CheckBoxNameChkUppercase,Caption大写字母(26)11CheckBoxNameChkSpace,Caption空格(1)12CheckBoxNameChkBracket,Caption括号(6)13CheckBoxNameChkOthers,Caption其他OEM字符(26)14TextBoxNametxtPasswordStartLong,Text215TextBoxNametxtPasswordEndLong,Text216TextBoxNameText117UpDownNameUpDown1,BuddyPropertyText,WrapTRUE,Increment1BuddyControltxtPasswordStartLong,Max15,Min18UpDownNameUpDown2,BuddyPropertyText,WrapTRUE,Increment1BuddyControltxtPasswordEndLong,Max15,Min119CommonDialogNameDialog,DialogTitle请选择加密的Excel或Word文档FilterExcel(。xls),Word(。doc) 。xls;。doc20LabelNameLabel1,Caption破解进度:21LabelNameLabel3,Caption从:22LabelNameLabel5,Caption到:为以上对象编写下列代码为了便于理解,程序中增加了适当的注释。OptionExplicitPrivateSubCmdBrowse_Click()Dialog。ShowOpenshowthedialogCombo1。TextDialog。FileNamesettheFilenametextboxtotheselectedfileCombo1。RefreshEndSubPrivateSubCmdQuit_Click()EndEndSubPrivateSubCmdStartCrack_Click()StaticblnProcessingAsBooleanDimwdAsNewWord。Application,xlsAsNewExcel。ApplicationDimOpenReturnDimstrpath,pass,StrTemp,all_char(100)AsStringDimJ,K,Password_Start_Long,Password_End_Long,ArrayLenAsIntegerDimI,TempAsLongArrayLen0数组初始化IfChkDigital。Value1ThenForJArrayLenToArrayLen+9all_char(J)Chr(Asc(“0“)+JArrayLen)NextJArrayLenArrayLen+10EndIfIfChkLowercase。Value1ThenForJArrayLenToArrayLen+25all_char(J)Chr(Asc(“a“)+JArrayLen)NextJArrayLenArrayLen+26EndIfIfChkUppercase。Value1ThenForJArrayLenToArrayLen+25all_char(J)Chr(Asc(“A“)+JArrayLen)NextJArrayLenArrayLen+26EndIfIfChkSpace。Value1Thenall_char(ArrayLen)“ArrayLenArrayLen+1EndIfIfChkBracket。Value1Thenall_char(ArrayLen)“(“all_char(ArrayLen+1)“)“all_char(ArrayLen+2)“all_char(ArrayLen+3)“all_char(ArrayLen+4)“【“all_char(ArrayLen+5)“】“ArrayLenArrayLen+6EndIfIfChkOthers。Value1ThenForJArrayLenToArrayLen+633to39all_char(J)Chr(33+JArrayLen)NextArrayLenArrayLen+7ForJArrayLenToArrayLen+542to47all_char(J)Chr(42+JArrayLen)NextJArrayLenArrayLen+6ForJArrayLenToArrayLen+658to64all_char(J)Chr(58+JArrayLen)NextJArrayLenArrayLen+7all_char(ArrayLen)Chr(92)ArrayLenArrayLen+1ForJArrayLenToArrayLen+294to96all_char(J)Chr(94+JArrayLen)NextJArrayLenArrayLen+3all_char(ArrayLen)Chr(124)all_char(ArrayLen+1)Chr(126)ArrayLenArrayLen+2EndIfIfArrayLen0ThenMsgBox“错误:没有选择密码使用的字符“,“请选择密码使用的字符范围。“ExitSubEndIfIfblnProcessingThenIfMsgBox(“真的要中断解密过程吗?“,vbYesNo,“用户中断任务“)vbYesThenblnProcessingFalseElseCmdStartCrack。Caption“中断破解“blnProcessingTruestrpathCombo1。TextIfstrpath“ThenMsgBox“错误:没有选择需要解密的文件“,“请选择需要解密的文件。“ExitSubEndIfstrpathTrim(strpath)Password_Start_LongVal(txtPasswordStartLong。Text)Password_End_LongVal(txtPasswordEndLong。Text)IfPassword_Start_Longgt;Password_End_LongThenPassword_Start_LongVal(txtPasswordEndLong。Text)Password_End_LongVal(txtPasswordStartLong。Text)EndIfLabel1。Caption“破解进度:“Label1。RefreshOnErrorResumeNextIfUCase(Right(strpath,3)“XLS“ThenForKPassword_Start_LongToPassword_End_Long破解excel开始ForI0ToArrayLenK1pass“TempIForJ1ToK1TempTemp/ArrayLepassall_char(TempModArrayLen)+passNextJpasspass+all_char(IModArrayLen)SetOpenReturnxls。Workbooks。Open(FileName:strpath,Password:pass)Text1。Textpass显示破解进度Text1。RefreshIfErr。Numberlt;gt;0Then假如解密成功,打开文档,显示密码,退出过程Err。ClearElseLabel1。Caption“文档密码:“Text1。TextpassMe。Refreshxls。VisibleTrueCmdStartCrack。MousePointer0CmdStartCrack。Caption“开始破解“blnProcessingFalseSetxlsNothingExitSubEndIfDoEventsIfNotblnProcessingThenExitForNextIIfNotblnProcessingThenExitForNextKxls。QuitSetxlsNothingElseForKPassword_Start_LongToPassword_End_Long破解word开始ForI0ToArrayLenK1pass“TempIForJ1ToKTempTemp/ArrayLenpassall_char(TempModArrayLen)+passNextJpasspass+all_char(IModArrayLen)OpenReturnwd。Documents。Open(FileName:strpath,passworddocument:pass)Text1。Textpass显示破解进度Text1。RefreshIfErr。Numberlt;gt;0Then假如解密成功,打开文档,显示密码,退出过程Err。ClearElseMsgBox“wordpassword“Label1。Caption“文档密码:“Text1。TextpassMe。Refreshwd。VisibleTrueCmdStartCrack。MousePointer0CmdStartCrack。Caption“开始破解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论