我有一个炼金术编译的swc,其中包含执行某些关键算法的方法。只有在出于安全目的授权用户(从在线服务购买许可证)时,这些方法才应返回值。因此,我计划在此基础上添加另一个SWC,其中包含所有许可代码。但是当我在我的自定义swc中导入Alchemy生成的swc时,所有的炼金术方法都会暴露出来。任何想法如何限制他们的访问。即我希望这些方法仅用于自定义组件,而不是使用自定义组件的方法。
答案 0 :(得分:1)
欢迎来到flash中的安全世界,在那里,没有这样的事情。问题是客户端始终拥有您的代码。因此,您不能采用任何策略来始终保护您的代码免受客户端的影响。即使加密和解密二进制文件,代码也始终在内存或密钥中。这就是下一代游戏公司试图编写在服务器上运行的游戏,并为最终用户提供远程用户界面的原因之一。所以基本上你真正要保护的唯一方法就是在服务器端编写功能。有关更多信息,请参阅此评论:
What is the best way to stop people hacking the PHP-based highscore table of a Flash game
另外,我只是想说,我不只是在这里说出我的耳朵。我曾经在炼金术中为闪存开发了一种实时二进制加密/解密方案,并试图成为通过这种服务使闪存安全的天才。虽然是的,也许这样的事情可以保护基本用户的内容,但你总是会得到你的二进制文件,因此你的源代码或者至少你的加密算法+密钥暴露给最终用户,所以最终有人会去来吧,妥协你的系统。
答案 1 :(得分:1)
Ascension Systems的回答是正确的:您无法阻止客户端上运行的代码被盗。你能做的最好就是混淆。
在这种情况下,您可以在编译之前在Alchemy源上使用C/C++ code obfuscator。这至少会使炼金术功能(FSM_Z18blahblahblah等)胡言乱语,更难以弄明白。