MS Excel VBA的混淆工具[关闭]

问题描述 投票:8回答:5

有哪些工具可以在表单,模块和类模块之间混淆VBA代码?

我已经做过一些研究,并在档案中阅读,但是一段时间内没有提到任何内容,所以我认为这些建议可能已经过时了。

从其他地方阅读中获得的几个是:

  • CrunchCode
  • Obfu-VBA

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

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

那是对的吗?选择“定义逻辑”时我需要注意什么?之前我和CrunchCode一起玩过,有很多选择,但它们对我来说都很陌生。

谢谢你的帮助 :)

excel vba obfuscation
5个回答
4
投票

我已经购买了CrunchCode并且要注意它不支持64位系统。支持非常糟糕(几周内没有任何电子邮件回复)。字符串加密功能会搞砸所有字符串比较和MsgBoxes,因为解密字符串与原始字符串不同。建议避免使用此产品!


2
投票

我以前的答案研究很少,没有其他人回答我认为你应该得到更好的答案。测试过CrunchCode之后,它似乎通过以下技术进行了混淆:

  • 重命名

排名第一的混淆技术是去除所有语义并降低推断任何上下文的可能性。在汇编代码时代,这通常是一个问题,除非您熟悉它,否则很难分辨代码将要做什么。

大写和小写字母,间距差,使得阅读非常困难。

  • 删除评论

如上所述,这消除了理解推断的代码的机会。

  • 代换

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

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

事实证明Sub 2需要比sub 1更长的时间。为什么会这样?

在10位受访者中,我是唯一一个猜测操作员超载的人,所以这总是困扰着我。您可以使代码的行为与预期的行为完全不同。可以使加法符号减去,除以或任何其他数量的组合。当代码中的这个基础发生变化时,理解源代码要困难得多。

  • 附加功能

作为一个额外的步骤,我可能想要在源代码中添加许多冗余方法。基本上是基于条件为真的执行无意义代码的代码片段。这种情况永远不会成立,但由于代码难以阅读,因此很难理解。

从本质上讲,它的工作方式与我在过去几年中阅读的所有编码标准完全相反。作为开发人员,您应该做的一切都是为了让您的代码更具可读性(毕竟我们都应该为其他开发人员编写我们的代码,而不仅仅是为了机器 - 如果没人能理解你可以将这种方法简化为一行它?)。

警告:没有确定的方法来阻止某人窃取您的源代码。我知道有人停止了他们的开源项目,因为人们把它的编译版本作为他们自己的销售。对于开发人员来说,这只是其中之一。混淆将采取一些方式,但不是100%保证阻止一个坚定的开发人员窃取它,但它是一个使它比它值得更麻烦的情况,所以他们有收益递减(例如,他们可以写入相同的功能反向工程代码所需的时间)。

希望这会有所帮助 - 有关更多信息,请查看the YouTube video here(非常不祥的音乐!)


0
投票

如果你不介意一些复制和粘贴和双重检查产品vbobfuscator似乎很好。 vba和vbscript都有。更改var和函数名称。 www.vbobfuscator.net。混淆比简单的查找和替换更复杂......将提供非工作代码;)


0
投票

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

使用这个方便的VBS工具,您可以将VBScript转换为模糊的VBS源代码,而不会影响/更改脚本功能和VBScript关键字。这个免费的VBScript混淆器通过将VBS源代码中的每个字符转换为一个混淆得很多的格式来工作。然后这些混淆的字母在运行时组合并通过Execute函数执行。

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


0
投票

只想添加一个名为“VBASH”的工具(www.ayedeal.com/vbash)可以完成这项工作。我已经使用了一段时间,到目前为止我很满意。

© www.soinside.com 2019 - 2024. All rights reserved.