Excel VBA 代码混淆工具

VBA代码混淆示例:
源码(支持中文):
'随机数1到100需要多少步数?
Option Explicit
Sub 示例()
    With ThisWorkbook.Sheets("样本")
        .Range("A:A").Clear
        Dim over_possible As Boolean
        Dim rnd_Number As Double
        Dim row As Integer
        Dim start_position As Integer
        Dim over_position As Integer
        Dim dice_all As Variant
        over_possible = False
        dice_all = Array(1, 2, 3, 4, 5, 6)
        row = 1
        start_position = 1
        over_position = 100
        Do While over_possible = False
            Randomize (Timer)
            rnd_Number = dice_all(Int(6 * Rnd))
            If move_possible(rnd_Number, start_position) = True Then
                If rnd_Number = 2 Or rnd_Number = 4 Or rnd_Number = 6 Then
                    start_position = start_position + rnd_Number
                Else
                    start_position = start_position - rnd_Number
                End If
            End If
            .Cells(row, 1).Value = start_position
            row = row + 1
            If start_position = over_position Then over_possible = True
        Loop
        .Cells(2, 3).Value = row
    End With
End Sub

Function move_possible(ByVal rnd_Number As Integer, ByVal start_position As Integer) As Boolean
    move_possible = True
    If rnd_Number = 2 Or rnd_Number = 4 Or rnd_Number = 6 Then
        start_position = start_position + rnd_Number
    Else
        start_position = start_position - rnd_Number
    End If
    If start_position < 1 Or start_position > 100 Then move_possible = False
End Function
深度加密以后(可运行):
'随机数1到100需要多少步数?
Option Explicit
Sub 示例()
With ThisWorkbook.Sheets(O1O10OO011101O1001O0O111101OO1OOO000OOOOO01O00OO0O0O01OO11OO10O1("26679|26412"))
.Range(O1O10OO011101O1001O0O111101OO1OOO000OOOOO01O00OO0O0O01OO11OO10O1("65|58|65")).Clear
Dim O110100011011010011OO1OO11OO00O01OO1001OO010O1O1O1010O1011O10OO0 As Boolean
Dim OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 As Double
Dim O1OOO1000O1011OO111O11OOO100O11O1101010OOO00100O1OOOO0O101O0OOOO As Integer
Dim O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 As Integer
Dim O111OO1010OO0O1011O011O1OO0O1O01000O101OO100111O1001101101110000 As Integer
Dim O1O101O0011O000111OOO0OO1O111OOO10O01O00O1110O11O101O100O1111110 As Variant
O110100011011010011OO1OO11OO00O01OO1001OO010O1O1O1010O1011O10OO0 = False
O1O101O0011O000111OOO0OO1O111OOO10O01O00O1110O11O101O100O1111110 = Array(1, 2, 3, 4, 5, 6)
O1OOO1000O1011OO111O11OOO100O11O1101010OOO00100O1OOOO0O101O0OOOO = 1
O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 = 1
O111OO1010OO0O1011O011O1OO0O1O01000O101OO100111O1001101101110000 = 100
Do While O110100011011010011OO1OO11OO00O01OO1001OO010O1O1O1010O1011O10OO0 = False
Randomize (Timer)
OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 = O1O101O0011O000111OOO0OO1O111OOO10O01O00O1110O11O101O100O1111110(Int(6 * Rnd))
If move_possible(OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010, O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11) = True Then
If OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 = 2 Or OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 = 4 Or OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 = 6 Then
O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 = O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 + OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010
Else
O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 = O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 - OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010
End If
End If
.Cells(O1OOO1000O1011OO111O11OOO100O11O1101010OOO00100O1OOOO0O101O0OOOO, 1).Value = O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11
O1OOO1000O1011OO111O11OOO100O11O1101010OOO00100O1OOOO0O101O0OOOO = O1OOO1000O1011OO111O11OOO100O11O1101010OOO00100O1OOOO0O101O0OOOO + 1
If O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 = O111OO1010OO0O1011O011O1OO0O1O01000O101OO100111O1001101101110000 Then O110100011011010011OO1OO11OO00O01OO1001OO010O1O1O1010O1011O10OO0 = True
Loop
.Cells(2, 3).Value = O1OOO1000O1011OO111O11OOO100O11O1101010OOO00100O1OOOO0O101O0OOOO
End With
End Sub
Function move_possible(ByVal OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 As Integer, ByVal O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 As Integer) As Boolean
move_possible = True
If OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 = 2 Or OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 = 4 Or OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010 = 6 Then
O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 = O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 + OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010
Else
O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 = O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 - OO0O10O11000OO1OO11O0OO0O011001O00O000OO0O11O100OO0O0O0O1100O010
End If
If O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 < 1 Or O0O01O00111OOO01100OO000101O0101O01O101OO0O1OO0O01O0000100O0OO11 > 100 Then move_possible = False
End Function
Private Function O1O10OO011101O1001O0O111101OO1OOO000OOOOO01O00OO0O0O01OO11OO10O1(ByVal OOO01OO1OO1O0000O0101O00OOOO00101O0O01110OOO0O10100O00O01O0O100O As String)
Dim O0O101O0O000O11OOO101OOO010OOO01OO10O1O110101OO000OOOOO110O010OO As String
Dim OO00O00011OO011O1010000OO101O01OO1O0100OO011OO010OO11O1OOO1O10O0 As Variant
Dim OO11100111O0000O110OOO0110OO00001O0101110001110OO0O1O110O01O0OO1 As Integer
O0O101O0O000O11OOO101OOO010OOO01OO10O1O110101OO000OOOOO110O010OO = ""
OO00O00011OO011O1010000OO101O01OO1O0100OO011OO010OO11O1OOO1O10O0 = Split(OOO01OO1OO1O0000O0101O00OOOO00101O0O01110OOO0O10100O00O01O0O100O, Chr(124))
For OO11100111O0000O110OOO0110OO00001O0101110001110OO0O1O110O01O0OO1 = LBound(OO00O00011OO011O1010000OO101O01OO1O0100OO011OO010OO11O1OOO1O10O0) To UBound(OO00O00011OO011O1010000OO101O01OO1O0100OO011OO010OO11O1OOO1O10O0)
O0O101O0O000O11OOO101OOO010OOO01OO10O1O110101OO000OOOOO110O010OO = O0O101O0O000O11OOO101OOO010OOO01OO10O1O110101OO000OOOOO110O010OO & ChrW(OO00O00011OO011O1010000OO101O01OO1O0100OO011OO010OO11O1OOO1O10O0(OO11100111O0000O110OOO0110OO00001O0101110001110OO0O1O110O01O0OO1))
Next
O1O10OO011101O1001O0O111101OO1OOO000OOOOO01O00OO0O0O01OO11OO10O1 = O0O101O0O000O11OOO101OOO010OOO01OO10O1O110101OO000OOOOO110O010OO
End Function
VBA代码混淆工具:

代码粘贴以后,点击 "普通加密"或者 ”深度加密“ 即可。

使用说明
1.自定义混淆的函数、过程名、错误处理断点、或工具未能检测到的变量

2.深度加密绝对可以运行

3.变量声明的注意事项:
	1)所有变量使用前必须声明,包含 For 语句中用到的变量
	2)变量的类型必须指定,类型未定的声明为 Variant
	3)不能在一行代码中声明多个变量,不允许如下:
		 例1:Dim a,b,c As String
		 例2:Dim a As String, b as String, c as String
	4)常量,变量必须声明作用域,即用关键词 Public, Private 或 Dim 声明,不允许如下:
		 例3:Const a = 20
	5)暂不支持字符串类型的常量,请用变量取代
	6)注意关键字的大小写,例如不要把 Dim 写成 dim
	7)代码中不要包含多余的空格、制表符,尤其是在变量之间
	8)注意代码行的单引号,有时会被解析为注解。可用 Chr(39) 替换
	9)函数、过程名在不指定的情况下默认不混淆

4.V100版本不支持中文,Ver101支持中文
下载地址:

关注公众号《软设开发》领取更多实用工具,回复关键字:代码混淆
原文链接

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,ExcelVBA代码库是免费的。它是一个为用户提供VBA代码示例和解决方案的在线平台。用户可以在ExcelVBA代码库上搜索和浏览各种VBA代码,如数据处理、图表生成、自定义功能等。 ExcelVBA代码库是为了帮助用户更好地掌握VBA编程技巧和应用,并提供了一个共享学习资源的平台。用户可以免费浏览和使用这些代码,从中学习和借鉴,以提高他们的工作效率和Excel技能。 在ExcelVBA代码库上,用户可以找到各种类型和难度级别的VBA代码示例。无论是初学者还是有经验的开发人员,都可以从中受益。可以通过搜索关键词或浏览不同类别的代码来找到所需的示例。 同时,ExcelVBA代码库也提供了用户上传和共享自己的代码的功能。通过这个功能,用户可以与其他用户交流和分享自己的VBA代码和解决方案,以促进知识的共享和技术的进步。 总之,ExcelVBA代码库是一个免费的在线资源,为用户提供了大量的VBA代码示例和解决方案。用户可以通过浏览、搜索和共享代码,提高自己的VBA编程技巧和Excel应用能力。 ### 回答2: 是的,Excel VBA 代码库是免费的。Excel VBA 是一种宏语言,可以用于编写自动化任务和处理Excel数据。它的代码库包含了许多常见的代码片段和函数,可以帮助用户快速开发他们自己的代码。这些代码库通常由 Excel 用户社区中的专家和爱好者共享给其他人使用,目的是提高大家的工作效率和方便使用者们学习和使用 Excel VBA。使用这些代码库,用户可以避免重复编写相同的代码,节省时间和精力,并且可以学习到一些优秀的编码实践。总结起来,Excel VBA 代码库是一个免费的资源,可以帮助用户快速开发自己的代码,提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值