首页
社区
课程
招聘
[原创]excel+vba 软件破解方法总结 通用方法
发表于: 2009-6-3 10:24 21820

[原创]excel+vba 软件破解方法总结 通用方法

2009-6-3 10:24
21820
所有excel+宏 软件

【保护方式】:注册码+功能限制

【编译语言】:Excel+宏

【调试环境及软件】:WinXP、Microsoft Office、Winhex

【破解日期】:2009-05-25

【破解目的】:研究Excel+vba破解和学习excel中宏编辑

【破文作者】:yh6201(也就是我本人  杨chao)

【作者邮箱】:yh6201@163.com

破解思路: 使用软件的出错处理机制拿到软件的内部代码。

第一步:首先把软件(一般这类软件都是编译好的xlt模板文件)修改成  .xla文件 ,
第二步,用excel 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

Private Sub CommandButton1_Click()
  MoveProtect
End Sub

Private Sub CommandButton2_Click()
SetProtect
End Sub
给文件解密vba保护, 呵呵  进入最后一步
这里直接给出做好的xls文件

第三步:用winhex 类软件打开程序文件wenjian.xla搜索有判断的代码,例如搜索if、<>、>、< 等等判断符号,然后修改期后面的计算公式,
例如:
把下面代码位置修改成

0002C110   75 6D 8A 6E 00 7F 31 16  11 52 6F 77 83 0F 21 8A   um妌.1..Row?!?
0002C120   5C D7 A2 B2 E1 8F 90 49  66 00 20 43 65 6C 6C 73   \注册彁If. Cells
0002C130   28 31 00 30 2C 20 33 29  20 3C 3E 10 20 33 32 31   (1.0, 3) <>. 321
0002C140   01 00 20 54 68 04 65 6E  83 31 4F 6E 20 45 72 00   .. Th.en?On Er.
0002C150   72 6F 72 20 47 6F 54 6F  88 20 78 78 83 0A 6A 71   ror GoTo?xx?jq

修改成这样

0002C110   75 6D 8A 6E 00 7F 31 16  11 52 6F 77 83 0F 21 8A   um妌.1..Row?!?
0002C120   5C D7 A2 B2 E1 8F 90 49  66 00 20 43 65 6C 6C 73   \注册彁If. Cells
0002C130   28 31 00 30 2C 20 33 29  20 3C 3E 10 00 00 00 00   (1.0, 3) <>.....
0002C140   00 00 20 54 68 04 65 6E  83 31 4F 6E 20 45 72 00   .. Th.en?On Er.
0002C150   72 6F 72 20 47 6F 54 6F  88 20 78 78 83 0A 6A 71   ror GoTo?xx?jq

这里要选择一处自己知道在软件中操作什么会触发这里的错误的判断语句进行修改,
最后打开经过修改的软件,选择你修改的部分触发错误,软件就会自动爆出来vba源码,看到源码了,自己修改吧。

By:yh6201

原创,转载请声明!!!!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (17)
雪    币: 22
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习了
2009-6-3 10:28
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
3
Support.
2009-6-3 18:44
0
雪    币: 249
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
试试看效果怎么样再来评论
2009-6-5 11:07
0
雪    币: 8555
活跃值: (2802)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好文章,这方面的比较少。
2009-6-5 11:58
0
雪    币: 235
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持原创。。。谢谢分享
2009-6-5 18:53
0
雪    币: 249
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
EXCEL编译成.EXE格式,如何破解?
2009-6-10 21:06
0
雪    币: 211
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
7#的   你说的东西哪里有啊 ??   还没见过!!贴出来看看
2009-6-12 08:00
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
没听过,应该没有的
2009-6-12 17:46
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
还没遇到过,没感觉
2009-6-12 21:35
0
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
确实不错
学习了
2009-6-12 23:28
0
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
12
感谢分享!!
2009-6-14 07:25
0
雪    币: 2601
活跃值: (2115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个宏破解看不了代码???
上传的附件:
2009-6-14 11:29
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
什么东西 看不懂
2009-6-14 13:17
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
15
能破解word的vba工程不可查看才是厉害。目前还没看到有这方面的文章。excel的到处都是
2009-6-14 21:34
0
雪    币: 226
活跃值: (115)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
16
学习该思路,谢谢楼主分享。
2009-8-12 15:03
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
13楼的强。。。。
哈哈,
Sub Auto_Open()

        MsgBox ("This is example of """ & progName & """ has expired." & Chr(13) & Chr(13))
      
End Sub
2009-8-13 17:29
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习中。。。
2009-8-13 17:48
0
游客
登录 | 注册 方可回帖
返回
//