Flash 更改已编译SWF文件中变量值的最佳方法

Flash 更改已编译SWF文件中变量值的最佳方法,flash,actionscript-3,flex3,Flash,Actionscript 3,Flex3,在将修改后的SWF返回给客户机之前,是否可以通过servlet(比如每会话)更改已编译SWF(使用as3)中变量的值。我注意到有一些命令行UTIL是开源的,但它们似乎主要关注AS2。AS3代码是否可以实现这一点?有哪些lib可以从java执行此操作?(即,基本上在未绑定的SWF中编辑生成的pcode,然后重新打包) 理想情况下,您希望在主swf中嵌入一个每会话令牌(不使用flash vars),然后可以使用该令牌对请求进行身份验证。我们的目标是将此say作为XSS支持的又一个步骤(与跨域权限文件

在将修改后的SWF返回给客户机之前,是否可以通过servlet(比如每会话)更改已编译SWF(使用as3)中变量的值。我注意到有一些命令行UTIL是开源的,但它们似乎主要关注AS2。AS3代码是否可以实现这一点?有哪些lib可以从java执行此操作?(即,基本上在未绑定的SWF中编辑生成的pcode,然后重新打包)


理想情况下,您希望在主swf中嵌入一个每会话令牌(不使用flash vars),然后可以使用该令牌对请求进行身份验证。我们的目标是将此say作为XSS支持的又一个步骤(与跨域权限文件结合使用时)。Flash vars仍然在DOM中,但这将只允许加载程序知道密钥的值(对于java脚本来说非常困难),我们可以很好地锁定Flash,不向任何加载的swf公开该值,并且跨域文件可以限制仅由原始swf(仅来自该域的一个)在原始服务器上读取xml文件.

您可以在请求时使用Flex SDK从源代码编译swf。我建议使用一个非常小的swf,然后可能会加载其他更复杂的swf。

部分问题在于编译后的swf在内部使用zlib流进行压缩,因此不需要从命令行SDK重新编译就可以修改二进制文件

使用命令行工具(mxmlc或Ant——我们在项目中都使用这两种工具)设置和自动化Flex SDK并不困难,但是如果您确实坚持希望修改二进制文件而不重新编译,那么您可能会发现这很有帮助。它包括一个实用程序,用于将内部流解压缩为其原始数据,并使用不同的压缩算法进行重新压缩。在该脚本的中间(当数据被解压缩)时,您可以通过二进制搜索您要寻找的值(或者通过实验发现的已知偏移量,或者从公共成员标签中查找),更改数据,压缩流,和VoILA -您有一个自定义。SWF。如果更改嵌入式资源(如文本XML文件)中的值,则可以更轻松地在二进制文件中查找要更改的数据


想到了这一点,但a)flex编译器并不是最快的b)需要自动化大量工作。读取swf并更改var aka FLASM将是一件轻松愉快的事情——我们也不必担心产品服务器上的源代码和发布代码。如何编辑调用swfextract后创建的swf_数据?