这个VBA code被写来破解任何 VBA 项目的密码。解释here即使在执行 VBA 模块之后,公共(public)变量也会保留它们的值。是否可以修改以下 VBA 代码(存储在模块级别或类级别)以防止执行(上述 VBA 代码)破坏项目密码? :-
Public Dim HookBytes(0 To 5) As Byte
Dim OriginBytes(0 To 5) As Byte
Dim pFunc As LongPtr
Dim Flag As Boolean
ReDim HookBytes(0) As Byte
ReDim OriginBytes(0) As Byte
pFunc = 9223372036854775807 ' https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/longptr-data-type
Flag = True
最佳答案
您提供的“密码断路器”包含与您要存储为公共(public)变量的声明相同的声明。
您基本上是想在代码开始之前“Hi-Jack”这些变量。
唯一的问题是,一旦例程运行,公开声明的变量现在将成为例程本身范围内的过程变量,只要它们在 Sub
中声明。 .公共(public)变量本质上是忽略 尽快Dim
过程中的语句声明了相同的变量名。
本质上,不幸的是,您想要用来阻止密码破解的方法将不起作用。
关于vba - 如何使用公共(public)变量停止执行 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48257317/