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

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:ee320
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文讨论了如何使用VB编程,通过穷举法解除EXCEL文档和WORD文档的密码。并在破解过程中加入了中断,以方便用户随时中断破解过程。
  关键词:穷举法;解密;EXCEL文档;WORD文档;密码
  中图分类号:TP317.1 文献标识码:A文章编号:1009-3044(2007)04-11028-03
  
  1 引言
  Excel和Word提供了多种方法限制访问用户文档,以免未经授权者的查看和更改。但在信息化的今天,用户需要记忆的密码太多,一旦密码丢失,用户将无法打开或访问该文档,给用户造成很大的损失。能否借助计算机的高速运行,解开密码呢?通过尝试,笔者认为:在无法弄清Excel和Word加密算法的情况下,利用穷举法尝试解密文档,
  是解密的最佳选择。
  
  2 实现原理
  本程序选用VB6.0编写,并充分利用了Office组件中的对象库,穷举法尝试各种口令,达到解密文档的目的。
  2.1 巧用整数的取整及取余,产生密码字符串
  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(X MOD ArrayLen) + password,产生的password 就是整数X对应的N位字符串。
  2.2 利用VB的错误处理功能,尝试口令破解
  当运行程序尝试一个密码时(用该密码打开文档),若密码错误,则会产生运行错误。为此,必须在尝试口令前,使用On Error 语句打开一个错误处理程序;由于本程序是尝试各种口令,当一个口令错误时,直接尝试下一个口令即可,因此,应使用 “On Error Resume Next”语句。
  那么,如何得知找到口令了呢? VB有一个内部错误对象Err,它的 Number 属性中的值是用来确定发生错误的原因。在尝试一个口令后,检查Err.Number中的值,以确定该口令是否正确。
  2.3 破解过程中的中断
  利用穷举法解密对系统资源的占用是十分惊人的,在解密的过程中CPU的利用率几乎是100%,若不加入解密过程中的中断,计算机系统会处于一种假死机状态。为此,在破解过程的内循环中加入了DoEvents函数。DoEvents函数提供了一种取消任务的简便方法,它将控制切换到操作环境内核。只要此环境中的所有应用程序都有机会响应待处理事件,应用程序就又恢复控制。使用该函数的优点是:不会使应用程序放弃焦点,且后台事件能够得到有效处理。
  
  3 具体实现过程
  编程实现时,需要机器安装有VB应用程序及Microsoft Office组件。
  3.1 新建VB工程,并对其初始化
  新建一个VB工程,取名Get_Password,将启动窗体命名为FrmMain。首先选择“工程”菜单中的“引用”,在“引用”对话框中选择“Microsoft Excel10.0 Object Library”和“Microsoft Word10.0 Object Library”(注意:如果安装的是Office2000或Office97,应该选择Excel对象库和Word对象库的9.0版或8.0版)。其次在“工程”菜单中“部件”对话框中,选择添加“Microsoft Windows common controls -2.5(sp2)”和“Microsoft Common Dialog control 6.0”,以便在窗体设计中使用微调控件和对话框控件。
  3.2 在FrmMain窗体上添加控件
  在FrmMain窗体上,添加下面的控件,然后根据下面的项目修改每个对象的属性。
  3.3 为以上对象编写下列代码
  为了便于理解,程序中增加了适当的注释。
  
  4 时间复杂度分析
  一个算法的时间复杂度,是指该算法的时间耗费,是该算法所求解问题规模n的函数。根据前面讲的实现原理,我们知道,破解算法的时间耗费主要集中在尝试打开OFFICE文档上,因此,当我们假设破解一个N位字符串密码,且选定密码字符范围的总字符数为ArrayLen时,该算法的时间复杂度是O(ArrayLen^N)。即,当N确定后,该算法的时间复杂度是N次方阶;当ArrayLen确定后,该算法的时间复杂度是指数阶。都是高数量级的时间复杂度。
  
  5 结束语
  穷举法解密是解除Excel、Word文档密码的有效方法,但对系统资源的占用是十分惊人的,因此在解密的过程中最好不要运行其他应用程序。如果安装有瑞星等杀毒软件,应将杀毒软件的“office安全助手”去掉,以便加快程序的运行速度。
  该程序在WinXP+OfficeXP+VB6.0环境下测试通过,笔者随便测试了一个5位数字密码,在P4机器上,8分钟左右即可解开口令。
  参考文献:
  [1]Visaual Basic 6.0 实例教程[M].电子工业出版社.1999.
  [2]Office2000的高级使用[M].人民教育出版社.2001.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:校园网络建设中IP地址匮乏是一个十分突出的问题,NAT是解决该问题的一种比较行之有效的技术,本文探讨了NAT技术的原理以及在linux系统中的实现方案。  关键词:NAT;Linux;私有地址;全局地址  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)04-10984-03    1 引言  IP地址的匮乏对于任何一个高校的网络管理员来讲,都应该是一个让人头疼的
期刊
拼音输入法是目前大家使用非常广泛的一种输入法,由于使用简单、门槛低而深得用户喜欢,相比之下,五笔输入法却需要掌握五笔拆分的规则,必须背五笔字根,让很多用户望而却步。也正因为如此,近年来拼音输入法蓬勃发展,2006年,搜狗拼音输入法的横空出世让拼音输入法领域为之一震,而就在最近,谷歌拼音输入法的推出让输入法领域再掀波澜,加上以前用户使用的紫光输入法、拼音加加、微软拼音、智能ABC,一时间,拼音输入法
期刊
摘要:PDF文件格式是国际通用的电子文档交换事实标准,PDF文档可以在各种平台下阅读、编辑、发布。通过实例介绍在C++中用PDFLib开发库创建PDF文档的过程, PDFlib 几乎可以在所有计算机操作系统上运行。  关键词:C++;PDF文档;PDFLib开发库  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)04-11024-02    1 PDF文档简介  PD
期刊
摘要:利用XSLT将XML文档转换成格式化过的HTML代码的方法的提出,避免了Ajax中使用JavaScipt动态遍历XML节点来创建结果表格所导致创建一个大字符串所引发的种种问题,提高了代码的可维护性,改善了网络性能。  关键词:动态搜索;Ajax;XSLT  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)04-10991-01    1 引言  随着信息访问量和
期刊
摘要:STDF文件格式是一种简单并条理分明的标准,利用它可以在半导体测试工序中分享和交换测试数据。通过对文件标准的基本结构的了解,可以使用JAVA程序来实现读取文件中的数据。  关键词:标准测试数据格式;JAVA;自动测试设备  中图分类号:TP31 文献标识码:A文章编号:1009-3044(2007)04-11017-02    1 引言  随着半导体测试工业的发展,许多供应商提供网络化的系统
期刊
摘要:authorware多媒体制作软件除了制作课件以外,也能制作具有趣味性的游戏。本文介绍在authorware中利用交互图标与判断图标等的结合实现找碴游戏的设计。  关键词:authorware 交互图标;热区域响应;判断图标;找碴游戏  中图法分类号:TP311.1 文献标识码:A文章编号:1009-3044(2007)04-11038-02    1 引言  authorware是一个功能
期刊
摘要:针对Linux环境下的守护进程daemon,分析了一般性守护进程的编写方法,并提出若干见解,通过总结归纳进而为设计和开发守护进程提供了有意的参考,给出了基于Linux守护进程实现的主要思想。  关键词: 守护进程;信号量;控制终端  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)04-11026-01    1 引言  Linux在启动时需要启动很多系统服务,它
期刊
摘要:本文介绍了基于SPCE061A单片机的多路温度采集系统,以及结合DS18B20实现多路温度控制,并给出了部分硬件系统框图和部分主要软件流程图。  关键词:SPCE061A;DS18B20;多路采集;语音  中图分类号:TP313文献标识码:A 文章编号:1009-3044(2007)04-11041-02  温度是工业生产中常见的和最基本的参数之一,在生产过程中常需对温度进行检测和监控。采用
期刊
摘要:基于ASP.NET的部队指挥信息集成的目的不是替换现有的异构平台、数据库、应用软件以及服务器,而是将他们从数据层开始有机地集成在一起,解决“信息孤岛”以及信息交互的障碍问题。  关键词:部队指挥;信息集成;ASP.NET   中图分类号:TP391 文献标识码:A文章编号:1009-3044(2007)04-11007-02    1 引言  众所周知,Internet的出现为企业提供了巨大
期刊
摘要:Visual Basic作为一种流行的编程软件,以其易学得到初学者的青睐并被广泛应用,本文从Visual Basic在数据库的应用方面总结出几点经验,以期为开发出高效、美观的数据库应用程序提供一些便利。  关键词:接口对象法;数据控件法;统一数据访问;ADO  中图分类号:TP311.13文献标识码:A 文章编号:1009-3044(2007)04-10932-02  Visual Basi
期刊