【发布时间】:2017-04-29 00:06:59
【问题描述】:
我有过第一次“客户带走我的工作,然后不付钱就给我鬼鬼祟祟”的经历。对于未来,我想加入一个killswitch,伪装成一个普通的宏,这使得整个东西无法使用。这样,即使他们雇用某人来破解密码并删除我的“您的试用期已过期...”检查,看起来正常的宏(类似于“Fix_Sheet_Formatting”)也很容易被忽略并运行,破坏一切并保存变化。
但是,这会留下 VBA...我们在这里谈论的是完全清除,所以一切都必须完成。我会想办法自己做这一切,我只是不想浪费时间去追求不可能的事情:
VBA 代码能否在运行时从工作簿中删除自身,还是必须从另一个工作簿上的宏中删除?删除代码会导致宏停止运行,还是在一切完成后我可以让它删除除讨厌的 MsgBox 之外的所有内容?
【问题讨论】:
-
是也不是,您可以尝试writing the excel VBA itself 或this one,但是,对于一些中级用户来说,超越它并不难,excel 不是一个可靠的工具来保护您的工作。
-
看起来挂断将访问 VBProject 对象。这会被防病毒软件捕获并删除模块(我不希望这样,因为他们需要使用它来测试它......否则 killswitch 将被删除)。
-
抱歉,IMO 这注定了。唯一的“安全”宏是未分发的宏。寻找good code obfuscation tool,以使 VBA 完全不可解密(但仍然有效);这样你就可以有一个简单的布尔
IsDisabled检查,这是完全不可能从其余代码中分辨出来的。 -
Hm - 一种方法,虽然它很草率,但是以某种方式拉起 VBEditor,并使用
SendKeys来“CTRL + A,DEL”一切。使用 sendkeys 时,我不小心将焦点放在了 VBA 编辑器上,它把该信息放在了那里,而不是我的目标文档。另外,我很确定 VBA 不是超级安全,所以如果有人足够聪明,他们就能以一种或另一种方式获取您的代码。使用插件怎么样? (我对这些知之甚少,但也许这是一种选择?)