混淆Silverlight XAP

时间:2008-09-22 15:55:32

标签: silverlight obfuscation

我想知道隐藏Silverlight代码的任何有效方法。我知道有一些混淆器可用,但看起来人们也可以破解它。任何人都在这方面取得了成功吗?

6 个答案:

答案 0 :(得分:4)

您实际上无法隐藏任何传输到客户端的内容。如果人们想要弄清楚,他们会。

您需要在后端放置任何专有代码,客户端计算机无法访问它。

答案 1 :(得分:4)

托管Silverlight应用程序的页面上的Pragma No-Cache将阻止浏览器缓存xap,而是通过从Web服务器流式传输来读取它。这将使窥视更难获得xap。混淆会让它变得更难。

还要确保应用程序托管在https中,并在主应用程序之外进行身份验证。这样,xap流就会在向下的路上进行编码。

答案 2 :(得分:2)

没有。客户端浏览器必须能够读取代码,因此它是可以破解的。

答案 3 :(得分:1)

这是一篇关于如何混淆xap文件的简短文章

http://www.rudigrobler.net/Blog/obfuscating-silverlight

答案 4 :(得分:1)

您可以通过在执行期间使用MEF下载应用程序的模糊片段来使潜在的黑客工作复杂化。毋庸置疑,如果您的应用程序足够大,那么这会让您的注意力大大加快启动时间,而不是阻碍用户体验。

它不会阻止勇猛的黑客获取你的代码(在手中没有方法可以防止这种情况,因为Silverlight插件必须能够执行它),但是这种操作会极大地使他的任务变得复杂。

阻止浏览器缓存XAP是没用的,比如使用HTTPS,因为攻击者使用像firebug这样复杂的东西来获取XAP要比在浏览器缓存中查找或使用中间人更容易攻击。

我想如果你有很多动力,你可以:

  • 模糊每个程序集
  • 使用动态加载的XAP
  • 使用由webservice发送的动态生成的密钥加密动态加载的XAP服务器端并使用动态生成的密钥对其进行解密(不在同一请求中。并且不要重复使用密钥。)

它不会阻止攻击者获取您的代码,但他必须分析您的初始(混淆)xap以了解解密代码,获取密钥,获取加密(模糊处理)动态加载的XAP,解密它然后设法对其进行非混淆,然后了解它如何在应用程序中插入自身。 它与使用HTTPS不同,因为加密和解密过程在应用程序中完成,因此像firebug或fiddler这样的工具变得无用。

下摆。没有什么可以阻止任何人阅读您的代码。但你可以让它不值得他的时间。您不必在此处使用所有想法,我相信您可以找到其他人,但请确保实施此类措施也值得您花时间。

无论哪种方式,写这个都很有趣:p

答案 5 :(得分:0)

您无法隐藏(至少不是非平凡的)XAP文件。但是你可以混淆它们。混淆不是一个明确的答案,但它是一个开始,可以提供相当好的保护。