0

我知道我不能直接在 Flash 中访问环境变量。

我的项目是一个本地 swf 文件,从 Flash 播放器运行,而不是通过浏览器运行。目标是保护 SWF 从未经授权的 PC 上播放。(这是我的客户要求)。

我的想法是将它作为activeX嵌入到EXE中(例如用Delphi制作)。我不确定这是最好的解决方案。

我认为 AIR 做起来更加复杂。

另外,如何直接禁止SWF的访问?也许以任何方式嵌入swf?

欢迎任何建议,提示。

问候

4

1 回答 1

1

我首先要说的是,我不认为有 100% 的方法可以阻止未经授权的访问——如果有的话,就不会有盗版 windows 或 flash 之类的东西。你能做的最好的就是让它难以破解。

一些建议:

  • 您实际上可以通过调用 AIR 中的外部进程,使用 NativeProcess 来访问环境变量(此链接有一个快速编写:http ://www.tikalk.com/js/get-windows-environment-variables-air-application ) -但是破解 .bat 或添加 env var 很简单
  • 您可以实现自己的序列密钥系统并将密钥分发给合法用户。理想情况下,它需要通过服务器调用进行验证
  • 您可以编写“phone-home”服务器呼叫 - 没有它,该应用程序将无法运行。如何识别用户完全取决于您;您可以通过IP尝试,但这并不完美
  • 您可以禁用本地执行(查看 SecureSWF),并在登录墙后面在线运行它
  • 您可以禁用本地执行,并通过 Intranet 运行它,因此公司中的人可以使用它,但不能让公众使用
  • 根据您的应用程序,在启动时,您可以从 Web 下载必要的文件(内容)。这可能需要登录,或者您可以阻止未经授权的 IP。这就是 Ubisoft DRM 在他们的一些游戏中的工作方式。
  • 同样,您可以下载包含应用程序实际逻辑的其他 SWF 文件。这些 SWF 将仅存储在内存中,从不保存到磁盘

有了所有这些,应用程序最终可能会被黑客打开和修改(例如,您的服务器检查代码可能会被删除,因此电话回家永远不会发生)。至少,在任何公开发布之前,通过 SecureSWF ( http://www.kindi.com/ ) 之类的东西运行您的 SWF 以混淆代码。

这一切都取决于你想为解决这个问题付出多少努力。对于所有涉及互联网的建议,如果网络出现故障,您将无法使用您的应用程序,这会造成挫败感,这是可以理解的。对于所有不涉及互联网的建议,您永远不会知道它是否成功。

于 2013-08-06T08:36:51.133 回答