Smart Assembly 7+ 字符串可以反混淆吗?

Can Smart Assembly 7+ strings be deobfuscated?

我计划使用 Smart Assembly 7+ 来混淆我的 .NET C# 库。 但是当我浏览一些论坛时,我发现甚至有一些程序可以对受 Smart Assembly 保护的 DLL 进行反混淆处理,尤其是像 de4dot.

这样的程序

所以我尝试使用 de4dot 对我的程序进行去混淆处理,令我惊讶的是,我成功地反编译了大部分逻辑。但值得庆幸的是,这些字符串没有被反编译。

他们的形式是Class24.getString_0(5050)

如果字符串不能被任何反混淆器正确反编译,那么足以保护我的核心逻辑。但我很偏执,也许我没有正确使用反混淆器,甚至有一些方法可以对字符串进行反混淆(但我尝试了 运行 字符串的反混淆器命令,如 repo wiki 中所述)。

基本上我的问题是,我能确定被 SmartAssembly 混淆的字符串不能被市场上的任何反混淆程序反编译吗?

另外,也欢迎任何混淆 .NET 库的好的建议。

谢谢大家!

为了让您的代码运行,计算机必须理解它。没有办法解决这个问题。如果 CLR 可以理解您的代码,那么 de-obfuscator 也没有理由无法理解您的代码。

另外,计算机比人类笨得多。如果计算机可以理解您的代码,那么人类肯定可以。

保护代码的典型方法是:

  • 不要向客户提供您的代码。 运行 它在您自己的计算机上并允许他们访问它。 (这就是“Google 方法”。)

  • 给客户一台您用代码 100% 控制的计算机 pre-installed。 (这就是“PlayStation 方法”。)

  • 不要与犯罪分子做生意。复制你的代码几乎在任何地方都是非法的。在一些国家,包括一些最大的市场(例如美国),在您的代码中规避保护是非法的。对您的代码进行逆向工程 可能 是合法的,但只有在非常严格的情况下。 (例如,在欧盟,逆向工程仅出于互操作性目的才合法,并且只有在您拒绝根据合理和 non-discriminatory 条款提供互操作性所需的信息时才合法。)

  • 为您的客户提供您的竞争对手的额外服务,即使他们窃取您的代码,也不会或不能提供。对于很多公司来说,仅仅“有人可以起诉”这一事实就足以成为从原始供应商那里购买原始软件的理由。罪犯是懒惰的,这就是他们是罪犯的原因。他们永远不会像你一样深入地理解问题领域,只是因为他们懒得投入工作,所以他们永远无法提供增强、咨询、支持或错误修复,同样快速,尽可能精确。