Actionscript 3 ActionScript代码的可黑客性如何

Actionscript 3 ActionScript代码的可黑客性如何,actionscript-3,networking,Actionscript 3,Networking,我正在开发一款小型网络flash游戏。我有自己的服务器,内置于C/Linux中,我通过闪存插座连接到服务器。我在争论是把沉重的游戏逻辑负载放在客户端还是服务器上。主要担心的是有人破解了代码,破坏了其他人的游戏 即使我在服务器上尽可能多地添加逻辑,如果有人能够破解代码并找出发送到服务器的消息,似乎也不可能阻止所有入侵 我应该如何处理这个问题?我应该如何担心AS3黑客?是的,反编译swf并根据需要修改它非常容易。风险是相当低的,但如果有一些大的可能的金钱回报,那么是的,我会小心 因此,我的建议是:

我正在开发一款小型网络flash游戏。我有自己的服务器,内置于C/Linux中,我通过闪存插座连接到服务器。我在争论是把沉重的游戏逻辑负载放在客户端还是服务器上。主要担心的是有人破解了代码,破坏了其他人的游戏

即使我在服务器上尽可能多地添加逻辑,如果有人能够破解代码并找出发送到服务器的消息,似乎也不可能阻止所有入侵


我应该如何处理这个问题?我应该如何担心AS3黑客?

是的,反编译swf并根据需要修改它非常容易。风险是相当低的,但如果有一些大的可能的金钱回报,那么是的,我会小心

因此,我的建议是:

  • 不要把高风险的逻辑强加给客户
  • 但一定要在客户端安装高成本的算法

编辑:我想再补充一点。如果服务器依赖于客户端将游戏的某些状态发送给它,那么您还可以代理、检查,然后使用类似的工具修改请求。有人可以使用此工具在请求上设置断点,然后在将结果转发到服务器之前修改结果。它甚至比反编译和修改swf更容易


教训是,你永远不应该依赖于有一个诚实的客户。

Flash代码非常容易破解。我可能错了,但我认为当你反编译一个swf时,它是一个完整的反编译-它给你变量和所有东西的原始名称。在游戏运行时,使用作弊引擎等工具修改内存也相当容易。除非您有意混淆代码和数据结构,否则我建议将大部分计算放在服务器上。

我在两年前的一次会议上做了一个关于保护flash游戏的演讲

你对“黑客能力”的衡量标准是什么?你至少可以混淆你的代码,有几个应用程序可以做到这一点。谢谢大家。但是,即使我将所有逻辑放在服务器上,所有人所要做的就是找到我的客户端发送到服务器的消息,它们可能会造成严重破坏。我不知道有什么办法可以避免这种情况,是吗?是的,永远不要相信客户端,总是假设客户端应用程序试图作弊。验证所有数据包。因为这是一个游戏,客户无论如何都应该是“哑巴”。客户端上没有游戏逻辑。为了预测的目的镜像一些逻辑是可以的,但要确保服务器是负责人。这是迄今为止最好的答案之一。我最近看到了一个C#、Java和Delphi代码的完全可执行到项目反编译器,但这并不意味着我们将停止编写应用程序。只要遵循最佳的反黑客实践,一切都会很好。毕竟,一个很难在运行中打包的编译文件比完全的应用程序源代码(html js项目)要好得多,后者甚至可以在运行中调试——不是吗:)基本上每一个代码都可以被黑客攻击,但这并不意味着它很容易在运行中打包。