Obfuscation Can智能组装7+;字符串是否被除臭?

Obfuscation Can智能组装7+;字符串是否被除臭?,obfuscation,decompiling,deobfuscation,smartassembly,de4dot,Obfuscation,Decompiling,Deobfuscation,Smartassembly,De4dot,我计划使用Smart Assembly 7+来混淆我的.NET C#库。 但是,当我浏览一些论坛时,我发现甚至有一些程序可以去除受智能组装保护的DLL,特别是像de4dot这样的程序 因此,我尝试使用de4dot对我的程序进行反编译,我的大部分逻辑都被成功反编译,这让我感到惊讶。但谢天谢地,字符串没有被反编译 它们的形式是Class24.getString\u 0(5050) 如果任何DeobFousator都无法正确反编译字符串,那么就足以保护我的核心逻辑。但我偏执地认为,也许我没有正确地使用

我计划使用Smart Assembly 7+来混淆我的.NET C#库。 但是,当我浏览一些论坛时,我发现甚至有一些程序可以去除受智能组装保护的DLL,特别是像de4dot这样的程序

因此,我尝试使用de4dot对我的程序进行反编译,我的大部分逻辑都被成功反编译,这让我感到惊讶。但谢天谢地,字符串没有被反编译

它们的形式是
Class24.getString\u 0(5050)

如果任何DeobFousator都无法正确反编译字符串,那么就足以保护我的核心逻辑。但我偏执地认为,也许我没有正确地使用deobfousator,甚至还有一些方法可以对字符串进行deobfousator(但我尝试了对字符串运行deobfousator命令,如repo wiki中所述)

基本上,我的问题是,我是否可以确定,市场上的任何DeobFouscator程序都无法反编译SmartAssembly模糊的字符串

此外,对于混淆.NET库的任何好建议,我们都欢迎


谢谢大家!

为了让代码运行,计算机必须理解它。这是没有办法的。如果CLR能够理解您的代码,那么解模糊器也没有理由不能理解您的代码

此外,计算机比人类愚蠢得多。如果计算机能理解你的代码,那么人类肯定能

保护代码的典型方法有:

  • 不要给客户你的代码。在你自己的计算机上运行它,并让他们访问它。(这就是“谷歌方法”。)

  • 为客户提供一台您通过预装代码100%控制的计算机。(这就是“PlayStation方法”。)

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

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


即使没有现有的工具可以对代码进行除臭,它也必须在某个时候执行才能有意义。如果这是在一台不受您控制的机器上,那么他们可以调试它(或者使用“适当的”调试机制,或者使用一些更隐蔽的方法,比如在VM中运行)。不要依赖于发送给客户的二进制文件中嵌入的秘密字符串来让客户保持不知道,这样做不会很好。嗨,谢谢你的回复。所以基本上没有办法保护程序不被反编译?我甚至不应该尝试?这要看情况而定。您试图通过模糊处理实现什么?有一些目标是有用的(主要是在不需要100%安全性的情况下)。对于像保密加密密钥这样的东西来说,这是一个可怕的工具(如果你需要它来保密,就不要把它发送给别人,即使是以一种模糊的形式)。我能想到的最接近的类比是栅栏:它不是一个巨大的物理屏障,它不会阻止任何有意图和犯罪能量的人,但它可能会阻止随意的人穿过你的花园。只是别把它当成一个防炸弹的庇护所。好的!理解。我总是在想,当我晚上锁门的时候,为什么要这样做,任何人都可以跳过,但我还是锁上了。非常感谢您的时间和帮助!注:关于罪犯的评论显然是用夸张的修辞手法来表达观点。请不要把它们当回事。例如,我不相信抵抗法西斯政府的人是懒惰的