【发布时间】:2020-08-05 23:52:58
【问题描述】:
足以阻止人们随意使用我的excel工作簿吗?
我目前正在开发有关财务记录保存和建模的 Excel 工作簿。我希望我的工作簿仅供一个用户使用,并防止他们将其分发给另一台计算机使用。我对有关 excel 工作簿保护的问题进行了一些研究,并提出了这个系统来为我的工作簿进行许可激活。
- 当用户在线购买我的工作簿时,我要求他们在他们的计算机上下载并运行验证工作簿(其功能仅用于检索磁盘序列号),将加密号码复制并发送回给我。
- 当我收到加密后的数字(即磁盘序列号)时,我会对其进行解密并在实际工作簿上盖章。然后,我将向用户发送带有序列号印章的实际功能齐全的工作簿。
- 要使用工作簿,当用户登录时,宏将从计算机检索当前磁盘序列号,并将其与我最初标记的编号进行比较。如果数字相同,他们可以使用工作簿,否则,所有宏都将不起作用,因为我已经为宏工作了一个特殊的键。
- 如果用户因为序列号而无法登录或尝试双重登录到另一台计算机,我会要求他们从实际工作簿中生成磁盘序列号并将图片发送给我。如果发送的号码与盖章号码相同,则问题不在序列号上。如果号码不同,则发送另一个工作簿是违反我的政策的,因为用户有责任确保他们在购买期间向我发送了正确的号码。
- 请务必注意,我的 VBA 代码将被完全混淆并受密码保护。虽然密码被破解,但他们无法阅读代码并理解结构。另一件事,我的 Open Workbook 宏有一个独特的操作,可以在工作簿上设置一些条件。如果它被停止,那么工作簿中的所有宏都将不起作用并且将毫无用处。所有重要信息都将被加密并粘贴在工作表上。
我想知道我的系统是否有某种方法可以绕过,仍然可以非法分发。我知道一些 excel 证券问题,它并不完全安全,但如果有人破解了我的 VBA 代码并看到乱码,创建一个新代码比更改它需要更少的努力。
【问题讨论】:
-
恐怕VBA密码很容易被破解。然后,即使您有一个“打开工作簿宏”“在工作簿上设置一些条件”,也应该很容易理解您的条件并绕过它们,或者以绕过它们的方式调整 subs。为了有一些代码隐私,我认为你必须创建一个 COM 插件。
-
在任何威胁模型中都有一个点,超过这个点,你只需要向潜在的攻击者低头,然后说“看看你是否已经走到了这一步,你就赢了。恭喜冠军! " - 你已经采取了谨慎的(甚至是侵入性的)步骤来保护你的工作,我猜这是..光荣的。你的问题的答案是,这对你来说足够了吗?我不知道您使用的是什么混淆器,但我的经验法则是“VBA 是不安全的,期间。”
-
如果“加扰”的 VBA 项目仍然可以执行,那么编译后的 p-code 仍然存在。如果编译后的p-code仍然存在,...理论上也意味着编译后的p-code也可以反编译。
-
嗨,Mathieu,为了澄清,编译的 p 代码通常会集成到 VBA 代码中吗?如果有人能找到 p-code,他就被认为是高技能的入侵者,我无法阻止好奇心和技能高的人。
标签: excel vba protection license-key distribute