gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:25:59 29 4
gpt4 key购买 nike

在将修改后的 SWF 返回给客户端之前,是否可以通过 servlet(例如基于每个 session )更改已编译的 SWF(使用 as3)中的变量值。我注意到有一些命令行实用程序是开源的,但这些似乎专注于 AS2。这可以用 AS3 代码实现吗? java 可以使用哪些库来执行此操作? (即,基本上在未捆绑的 SWF 中编辑生成的 pcode,然后重新打包它)。

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

最佳答案

部分问题在于,已编译的 SWF 在内部使用 zlib 流进行压缩,因此在不从命令行 SDK 重新编译的情况下修改二进制文件并非易事。

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

swf_recompress.zip

关于flash - 更改已编译 SWF 文件中变量值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/945859/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com