我们需要一个在最终用户的机器上运行的应用程序并为我们提供分数结果,并且我们需要结果准确(即未被篡改).目前,Flash和Silverlight之间存在争议,看起来Silverlight将成为赢家.
除了最终用户机器上的任何东西必须最终被认为是非法的激励之外,攻击SilverLight应用程序有多难?我知道这取决于代码的编写方式等等,我的问题是攻击底层平台有多难.有没有关于像执行Silverlight应用程序和改变运行代码(或其他一些方法)这样的事情的文章?我在想像插入其他可执行代码的缓冲区溢出攻击?
我还听说Flash应用程序很难攻击内存并执行任意代码.这是真的?
我的理解是Silverlight运行在名为CoreCLR的公共语言运行时(CLR)版本上.与在浏览器中运行的任何应用程序一样,主要安全方案是防止恶意代码攻击应用程序的其他实例或用户计算机上的应用程序/数据.
您描述的这种情况与此不同,我想说主动措施几乎没有阻止您的代码被劫持.知识如何的用户可以在汇编级别轻松编辑代码.
您可以尝试通过以下方式缓解这些攻击:
阻止访问复杂的调试工具(除非您控制客户端计算机,否则无法访问).
为每个用户甚至每个会话生成混淆或随机的silverlight代码.从理论上讲,这可能会阻止用户共享黑客攻击.如果您可以使代码超时,则在30分钟后使其变得陈旧,您将使其变得更加困难.
减少应用程序中的逻辑数量,并在服务器端使用Web服务提供.
专家攻击者攻击Flash VM中的应用程序就像攻击Silverlight一样容易.
在用户计算机上运行的任何内容都可以进行修改.它只是用户努力的问题.
如果你想寻找一些例子,有无数关于如何"破解"Flash游戏的教程.