哪些工具可以在表单,模块和类模块之间混淆VBA代码?
我已经做了一些研究,并在档案中阅读了这些内容但是暂时没有提到任何内容,所以我认为这些建议可能已经过时了。
在其他地方读书的几个人是:
另外,如果我错了,请纠正我,但根据我的理解,混淆器的简化逻辑是:
这是对的吗?选择“定义的逻辑”时,我需要注意什么?之前我和CrunchCode一起玩过,有很多选择但是对我来说都很陌生。
感谢您的帮助:)
答案 0 :(得分:4)
我已经购买了CrunchCode并且要注意它不支持64位系统。支持非常糟糕(几周内没有任何电子邮件回复)。字符串加密功能会搞砸所有字符串比较和MsgBoxes,因为解密字符串与原始字符串不同。建议避免使用此产品!
答案 1 :(得分:1)
我以前的答案研究很少,没有其他人回答过我认为你应该得到更好的答案。测试过CrunchCode之后,它似乎通过以下技术进行了混淆:
头号混淆技术是去除所有语义并降低推断任何上下文的可能性。在汇编代码时代,这通常是一个问题,除非您熟悉它,否则很难分辨代码将要做什么。
大写和小写字母,间距差使得阅读非常困难。
如上所述,这样就无法理解所推断的代码。
运算符的重载(通过使用用户定义的函数)是一种有用的技术。你可以在VBA中做到这一点,我总是记得这是我在面试中给出的一个问题:
Sub 1:x = z + y
Sub 2:x = y + z
Sub 2被证明需要比sub 1更长的时间。为什么会这样?
在10位受访者中,我是唯一一个猜测操作员超载的人,所以这一直困扰着我。您可以使代码的行为与预期的行为完全不同。可以使加法符号减去,除以或任何其他数量的组合。当代码中的这个基础发生变化时,理解源代码要困难得多。
作为额外的一步,我可能会想要在源代码中添加许多冗余方法。基本上是基于条件为真的执行无意义代码的代码片段。这种情况永远不会成立,但由于代码难以阅读,因此很难理解。
基本上,它的工作方式与我过去几年阅读的所有编码标准完全相反。作为开发人员,您应该做的一切都是为了让您的代码更具可读性(毕竟我们都应该为其他开发人员编写我们的代码,而不仅仅是为了机器 - 如果没有人能够理解,您可以将该方法简化为一行吗?)。
警告:没有确定的方法来阻止某人窃取您的源代码。我知道有人停止了他们的开源项目,因为人们把它的编译版本作为他们自己的销售。对于开发人员来说,这只是其中之一。混淆将采取一些方式,但不是100%保证阻止一个坚定的开发人员窃取它,但它是一个使它比它值得更麻烦的情况,所以他们有收益递减(例如,他们可以写入相同的功能反向工程代码所需的时间。)
希望这会有所帮助 - 有关更多信息,请查看the YouTube video here(发出非常不祥的音乐!)
答案 2 :(得分:0)
如果您不介意复制和粘贴并仔细检查产品vbobfuscator似乎很好。 vba和vbscript都有。更改var和函数名称。 www.vbobfuscator.net。混淆比简单的查找和替换更复杂......将提供非工作代码;)
答案 3 :(得分:0)
在线VBScript混淆器(加密/保护VBS)
使用这个方便的VBS工具,您可以将VBScript转换为 混淆了VBS源代码,没有妥协/改变 脚本功能和VBScript关键字。这个免费 VBScript Obfuscator通过转换VBS中的每个字符来工作 源代码变成了一种混淆不清的格式。然后这些混淆了 字母在运行时组合并通过执行执行 功能
答案 4 :(得分:0)
只需添加一个名为“ VBASH”(www.ayedeal.com)的工具即可完成这项工作。我已经使用了一段时间了,到目前为止对它感到满意。