MS Excel VBA的混淆工具

什么是可以在表单,模块和类模块中混淆VBA代码的工具的一些build议?

我已经做了一些研究,在档案里读了​​一下,但是一段时间没有提到,所以我想这些build议可能已经过时了。

从其他地方读到的几个是:

  • CrunchCode
  • Obfu-VBA

另外,请纠正我,如果我错了,但从我的理解混淆器的简化逻辑是:

  • 使用定义的逻辑加扰VBA代码(将X更改为Y)
  • 该工具创build了一个新的工作簿,其中VBA代码全部被打乱,但其他一切保持不变。
  • 该工具可以使用定义的逻辑恢复到原始的VBA代码(将Y更改为X)

那是对的吗? 在select“定义的逻辑”时需要考虑什么? 之前我在CrunchCode上玩过,有太多的select,但对我来说都是陌生的。

谢谢你的帮助 :)

我已经买了CrunchCode,并提防它不支持64位系统。 支持是非常糟糕的(没有电子邮件在几周内回复)。 stringencryptionfunction将拧紧所有的string比较和MsgBoxes,因为解密后的string与原始字符不一样。 build议避免使用本产品!

我以前的回答是很糟糕的研究,没有人回答我认为你应该得到更好的答案。 经过testingCrunchCode,它似乎通过以下技术混淆:

  • 重命名

头号混淆技术是去除所有的语义,并减less任何上下文将被推断的可能性。 在汇编代码的时代,这通常是一个问题,除非您熟悉代码,否则很难说明代码要做什么。

大写和小写字母,间距不好使读起来非常困难。

  • 删除评论

如上所述,这消除了理解推断的代码的可能性。

  • 代换

运算符的重载(通过使用用户定义的函数)是一种有用的技术。 你可以在VBA中做到这一点,我总是记得这是我在面试中给出的一个问题:

Sub 1:x = z + y
Sub 2:x = y + z

Sub 2被certificate比Sub 1需要更长的时间。为什么这是?

在十个受访者中,我是唯一一个猜测运营商超载的人,所以这一直是我的困扰。 您可以使代码的行为与预期的方式非常不同。 添加符号可以被减去,除或任何其他数目的组合。 当这些基本的东西在代码中被改变的时候,理解源代码就更加困难了。

  • 附加function

作为一个额外的步骤,我可能会试图将许多冗余的方法添加到源代码。 本质上是基于条件为真的代码来执行无谓的代码。 这种情况从来都不是真的,但是由于代码难以阅读,这很难理解。

从本质上讲,它和我在过去几年中所阅读的所有编码标准完全相反。 所有你应该做的开发者,使你的代码更具可读性(毕竟,我们都应该为其他开发者编写我们的代码,而不仅仅是机器 – 谁在乎,如果没有人能理解,你可以减less这种方法它?)。

警告:没有确定的方法来阻止某人窃取您的源代码。 我知道谁停止了他们的开源项目,因为人们把它的编译版本当作自己的。 这只是开发人员的其中一件事情。 混淆会走一些路,但不是100%保证阻止一个有决心的开发者窃取它,但是这是一个比它更值得麻烦的情况,所以它们的收益递减(例如,它们可以在时间需要对代码进行逆向工程)。

希望这有助于 – 更多信息在这里查看YouTubevideo (带有非常不祥的音乐!)

如果你不介意一些副本和粘贴,并仔细检查产品vbobfuscator似乎是不错的。 既是vba又是vbscript。 更改var和函数名称。 http://www.vbobfuscator.net。 混淆的方式比简单的查找和replace更复杂…将提供非工作代码;)

在线VBScript混淆器(encryption/保护VBS)

使用这个方便的VBS工具,您可以将VBScript转换为混淆的VBS源代码,而不会影响/改变脚本function和VBScript关键字。 这个免费的VBScript混淆器的工作原理是将VBS源代码中的每个字符转换成模糊不清的格式。 然后这些混淆的字母在运行时被组合,并通过执行function执行。

https://isvbscriptdead.com/vbs-obfuscator/

Interesting Posts