2

我有一种情况,客户希望他们的源代码具有最低限度的安全性。这是一个网络应用程序,主机将是他们将与之合作的人。令人担心的是,主机很容易对代码进行逆向工程并在旁边设置商店。我告诉他们虽然这不是一个真正的解决方案,但混淆代码会使它变得更加困难。

我的第一个问题:我不能混淆强命名的程序集。我相信我可以跳过混淆这些程序集,同时保持与非混淆程序集的链接,但由于我的第二个问题,我无法轻松测试它。

我的第二个问题:我无法混淆 Web(代码隐藏)程序集,因为从标记到它们的类的链接以及标记页面调用的方法都被破坏了。

4

2 回答 2

1

您可以很好地混淆强命名的程序集,只要您有密钥,您就可以在混淆后将它们退出。使用 Dotfuscator 的免费社区版,您需要手动对输出进行签名,使用专业版,它可以使用强名称和/或 Authenticode 签名自动对输出进行签名,作为混淆过程的一部分。

您还可以混淆程序集后面的代码,但您需要确保将标记中引用的任何类型排除在重命名之外。同样,在社区版和专业版中都可以通过设置重命名排除规则(文字匹配或基于正则表达式)或选择要从重命名中排除的单个类型和成员来实现。所有这些都可以在 Dotfuscator 用户界面的重命名部分中访问。

如果您有有效的支持订阅并且在混淆时遇到任何特定问题,您可以直接从PreEmptive 网页联系支持,或者 PreEmptive 还托管公共论坛,您可以在其中发布特定问题。

于 2010-03-11T16:27:05.217 回答
0

您可以使用事件绑定在代码中而不是在 aspx 文件中进行控制。就像在 c# 中一样,btnSave.Click += Save_Click并且有 `private void Save_Click(...)。

您还可以将公共/受保护方法代码划分为小的私有方法,您可以从实际的公共/受保护方法中调用这些方法,并选择仅混淆不会破坏标记链接的私有方法(我认为这是 Dotfuscator 中的混淆库模式。)

这将使您获得更高的混淆率。

于 2010-03-18T09:03:54.397 回答