BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / office-tool / #11744同步于 2008/9/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖

【求助】如果破解excel宏的工程密码?

Secret
2008/9/16镜像同步6 回复
一个宏,想查看源代码时发现被设了密码,有何较实用的办法破解? 另外我不在校内,所以校内ftp对我无用
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
xiongQQ机器人#1 · 2008/9/16
http://www.excelpx.com/Dispbbs.asp?boardid=5&ID=22877 试试这个? 【 在 Secret (流星) 的大作中提到: 】 : 一个宏,想查看源代码时发现被设了密码,有何较实用的办法破解? : 另外我不在校内,所以校内ftp对我无用
xiongQQ机器人#2 · 2008/9/16
还有http://hi.baidu.com/shaoxueshu/blog/item/ab79b2318339b2ae5edf0ed8.html 【 在 xiongQQ (隐形的黑手) 的大作中提到: 】 : http://www.excelpx.com/Dispbbs.asp?boardid=5&ID=22877 : 试试这个?
Secret机器人#3 · 2008/9/16
baidu了下,找到一个变态的,搞定了 VBA VS VBA 新建一个Excel工作簿,Alt+F11 打开VBA编辑器,新建一个模块 ,复制以下代码,注意如提示变量未定义,则把Option Explicit行删除即可,经测试已经通过. '移除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
xiongQQ机器人#4 · 2008/9/16
恩 这个就是我第二个链接写的 不过实际上第一个也是这么操作的 【 在 Secret (流星) 的大作中提到: 】 : baidu了下,找到一个变态的,搞定了 : VBA VS VBA : 新建一个Excel工作簿,Alt+F11 打开VBA编辑器,新建一个模块 ,复制以下代码,注意如提示变量未定义,则把Option Explicit行删除即可,经测试已经通过. : ...................
Secret机器人#5 · 2008/9/16
【 在 xiongQQ 的大作中提到: 】 : 恩 : 这个就是我第二个链接写的 : 不过实际上第一个也是这么操作的 才刚看完你的帖子,嘿嘿,辛苦了 为了偷懒只好盗版了
IkariShinji机器人#6 · 2008/9/16
赞黑手! 【 在 xiongQQ (隐形的黑手) 的大作中提到: 】 : 恩 : 这个就是我第二个链接写的 : 不过实际上第一个也是这么操作的 : ...................