文档章节

excel中VBAProject密码破解与保护(转+原)

0o清风徐来o0
 0o清风徐来o0
发布于 2013/06/23 12:00
字数 1238
阅读 17468
收藏 3

一、加密方式 (转)
方法一:加保护密码,可对不同的过程加不同的密码
    优:方便易行                  
    缺:VBA key几秒钟,就将你的密码替换掉

方法二:
     1、用UltraEdit32软件打开你想保护VBA的excel文件
     2、点查找>查找,查找“ID="{” (不带两端引号),注意点选找ASCII字符,会找到形如ID="{143DB7BA-14E4-40FF-BBBF-5C6612F797BE}"
     3、将大括号中的数字或字母随便改一改,然后保存,不影响你软件的使用,但查看工程时会提示你“工程不能查看”
    优:破解的方法中需使用十六进制编辑工具,能防住不会使用该工具的人
    缺:加密不方便

二、破解方式
    excel2000以前的密码和VBA密码非常容易破解,网上有很多直接可以找出密码明文的软件
    excel xp以后,微软改进了VBA保护密码的加密方式,原来的看VBA密码的软件找不到VBA的密码了,找出VBA保护密码成为了一个难题。好像安全了一些,但不久,就出现了破解VBA保护密码的软件,它的思路并不是找出VBA保护密码,而是直接用随机四个字母替换了VBA保护密码,用这种程序(网上并不难找),一个VBA采用密码保护的excel文件不到2秒的时间,就可以让你看到VBA源码。
    后来有人对access文件的格式进行了研究,找到了新的加密方法(同样可用于excel文件)。利用UltraEdit32或其它十六进制编辑工具编辑带VBA的excel文件中的ID或DPB中的内容。经过这样处理的VBA会出现,“工程不可查看”的状态。同样,也发现把加密VBA后的excel文件中的ID、CMG、DPB以及GC串替换为空,就会清除VBA保护密码。(已有同志将该过程做成了excel的加载宏,不用十六进制工具就可)
    可以说excel中的vba源码毫无安全性,网上也见了一些利用VBA开发的程序,注册方式也比较先进,但源码容易看到,写个注册程序或干脆改掉注册较验也就毫无作用。excel文件中VBA保护密码实际毫无作用,完全无必要设定VBA保护密码。
    所以我认为,利用VBA开发excel程序只可用于不需盈利的一般用途,不宜用于商用,想开发商用的VBA程序可考虑使用access,access中除了给VBA加密码外,还可以将mdb转换为mde文件达到保护VBA代码的作用,而mde文件是将VBA代码全部编译后将VBA源码删除,所以这还是比较安全的。
    (让别人看到你商业程序的源码比破解更让人不可接受)
    写这段文字时,没有去研究excel 2007中是否有所改进。

破解方式网上最多答案的是这样一段代码

 

'移除VBA编码保护

Sub MoveProtect()

     Dim FileName As String

     FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla,*.xls;*.xla", , "VBA破解")

     If FileName = CStr(False) Then

        Exit Sub

     Else

        VBAPassword FileName, False

     End If

End Sub

'设置VBA编码保护

Sub SetProtect()

     Dim FileName As String

     FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla,*.xls;*.xla", , "VBA破解")

     If FileName = CStr(False) Then

        Exit Sub

     Else

        VBAPassword FileName, True

     End If

End Sub

Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)

       If Dir(FileName) = "" Then

          Exit Function

       Else

          FileCopy FileName, FileName & ".bak"

       End If

       Dim GetData As String * 5

       Open FileName For Binary As #1

       Dim CMGs As Long

       Dim DPBo As Long

       For i = 1 To LOF(1)

           Get #1, i, GetData

           If GetData = "CMG=""" Then CMGs = i

           If GetData = "[Host" Then DPBo = i - 2: Exit For

       Next

    

       If CMGs = 0 Then

          MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"

          Exit Function

       End If

    

       If Protect = False Then

          Dim St As String * 2

          Dim s20 As String * 1

       

          '取得一个0D0A十六进制字串

          Get #1, CMGs - 2, St

    

          '取得一个20十六制字串

          Get #1, DPBo + 16, s20

    

          '替换加密部份机码

          For i = CMGs To DPBo Step 2

              Put #1, i, St

          Next

       

          '加入不配对符号

          If (DPBo - CMGs) Mod 2 <> 0 Then

             Put #1, DPBo + 1, s20

          End If

          MsgBox "文件解密成功......", 32, "提示"

       Else

          Dim MMs As String * 5

          MMs = "DPB="""

          Put #1, CMGs, MMs

          MsgBox "对文件特殊加密成功......", 32, "提示"

       End If

       Close #1

End Function

但是亲测之后,发现显示密码破解成功,vba模块不见了……

下面是另外一种有效方法:

 1.     Backup the xls file

 2.     Using a HEX editor, locate the DPB=... part

 3.     Change the DPB=... string to DPx=...

 4.     Open the xls file in Excel

 5.     Open the VBA editor (ALT+F11)

 6.     the magic: Excel discovers an invalid key (DPx) and asks whether you want to continue loading the project (basically ignoring the protection)

 7.     You will be able to overwrite the password, so change it to something you can remember

 8.     Save the xls file*

 9.     Close and reopen the document and work your VBA magic!

同样,该方法只适合于2003版,07或10版本要另存为03版本!

 

 

 

© 著作权归作者所有

0o清风徐来o0
粉丝 7
博文 86
码字总数 29134
作品 0
大连
程序员
私信 提问
EXCEL密码破解/破解工作表保护密码_已迁移

1、新建一个EXCEL文件“BOOK1”,在工具栏空白位置,任意右击,选择Visual Basic项,弹出Visual Basic工具栏: 2 2、在Visual Basic工具栏中,点击“录制”按钮,弹出“录制新宏”对话框,选...

鬼谷子灬
2016/12/05
187
0
AOPR破解的密码与原密码不一致问题

  如果用户使用Excel密码破解工具破解出密码后突然想起来Excel文档的原密码,有时侯会发现Excel密码破解工具破解的密码与原密码并不一致。那么破解出的Excel文档密码是否还有用?小编在这里...

neluzyy1
2016/02/05
43
0
AOPR破解工作表密码的步骤

不管是微软Office还是国人喜欢用的WPS,它们的Excel文档除了常见的打开密码之外还有好几种密码,今天跟大家主要探讨的是WPS的Excel启动强制保护模式后,如何使用Excel密码破解工具破解保护密...

neluzyy1
2016/01/06
69
0
Excel 移除编辑限制详解

若想移除Excel 2003的编辑限制,用户要先使用Excel密码破解工具破解该Excel文档的密码,然后再进行移除,下文将主要介绍如何使用Excel密码破解工具移除Excel 2003文档的编辑限制。 使用Excel...

学术研究软件
2016/05/06
11
0
excel密码忘记了怎么办

Excel电子表格应用程序堪称Office中的“王牌应用”,能够快速灵活地整理各种大数据,在各行各业中发挥着不可替代的作用。因此,excel文档的跋扈密码比其他文档多,除了常设的打开密码和编辑密...

Navicat数据库管理工具
2016/05/23
193
0

没有更多内容

加载失败,请刷新页面

加载更多

视频如何加水印?

很多视频制作者的视频都被他人盗用过,为了防止自己的劳动成果被他人窃取,给视频加水印对于视频制作者来说,是一件非常重要的事情。那么下面分享一个手机给视频加水印的方法,一起来看看吧!...

白米稀饭2019
22分钟前
3
0
004-Envelop-基于Blockstack的文件传输dapp

本篇文章主要介绍基于Blockstack的文件传输工具; ####A-链接地址 官网地址:https://envelop.app/ Github地址:https://github.com/envelop-app ####B-特性: 1: Share private files easil...

Riverzhou
25分钟前
5
0
SpringCloud——声明式调用Feign

Feign声明式调用 一、Feign简介 使用Ribbon和RestTemplate消费服务的时候,有一个最麻烦的点在于,每次都要拼接URL,组织参数,所以有了Feign声明式调用,Feign的首要目标是将Java HTTP客户端...

devils_os
31分钟前
5
0
《JAVA核心知识》学习笔记 (22. 数据结构)

22.1.1. 栈(stack) 栈( stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶 (top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出栈...

Shingfi
36分钟前
5
0
你对AJAX认知有多少(1)?

AJAX(一) AJAX技术对于前段或者后端工程师来说,都是必不可缺的 那我们这几期都来细细品味一下AJAX的相关知识,直接上干货喽~ 1、什么是AJAX,为什么要使用Ajax(请谈一下你对Ajax的认识) 什么...

理性思考
44分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部