在 Flash 中访问环境变量

Posted

技术标签:

【中文标题】在 Flash 中访问环境变量【英文标题】:Accessing Environment Variables in flash 【发布时间】:2013-08-05 14:42:33 【问题描述】:

我知道我不能直接。

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

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

我认为 AIR 的实现更加复杂。

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

欢迎任何建议,提示。

问候

【问题讨论】:

如何定义未经授权的 PC? 这是一个没有名为“授权”的环境变量的人。 【参考方案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,以混淆代码。

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

【讨论】:

以上是关于在 Flash 中访问环境变量的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu学习前传—uboot常见环境变量

openwrt设置uboot环境变量在flash上的存储地址

MPC8313ERDB在Linux从NAND FLASH读取UBoot环境变量的代码分析

全局变量和局部变量的区别

如何从前端访问环境变量

在Postman中如何设置环境变量?