我可以在没有源 FLA 文件的情况下更改 SWF 中的 ActionScript 字符串文字吗?

Posted

技术标签:

【中文标题】我可以在没有源 FLA 文件的情况下更改 SWF 中的 ActionScript 字符串文字吗?【英文标题】:Can I change an ActionScript string literal in a SWF without the source FLA file? 【发布时间】:2012-07-09 00:52:06 【问题描述】:

一位客户要求我将他们的一个主要基于闪存的旧网站移至新服务器。

该网站的原始开发者多年前犯了一个错误,在某个 ActionScript 的一个重要链接中使用了“http://127.0.0.1/....”。原来的开发公司早已不复存在。

我可以使用Sothink SWF Decompiler 反编译 SWF 并找到并更正有问题的 ActionScript。但是,我无法重新编译回完全正常工作的 SWF(出现许多其他错误,因为它是一个复杂的 Flash 项目)。我尝试了不同的 Flash 版本(回到 v.6),SWF 的第 4 个字节表明它最初是 v.7(MX2004),并且我尝试将重新编译的输出中的十六进制字节与原始字节匹配(考虑到用于标签压缩等)到目前为止,没有任何匹配项。

我需要很长时间才能修复重新编译的 Flash 中的所有其他错误,而我真正想做的只是更改原始 SWF 中的一个字符串文字,以便网站完全按照最初的预期工作.我准备在必要时使我的新文字的字符串长度与旧的不正确的字符串长度完全匹配(通过在新服务器上添加一个目录/符号链接链接回正确的文件)。

有什么办法吗?

【问题讨论】:

我认为这可能会回答您的问题。 ***.com/questions/119694/replacing-strings-inside-swf 如此接近,但如此遥远。正如我提到的,我已经尝试过 sothink,感谢您的建议,我刚刚尝试了该帖子中的其他一些,结果如下: URL 操作编辑器:花费 119 美元,这比我为这个简单的“移动到新服务器”工作所获得的报酬还多 swfreplacer:错误“目前我不支持压缩的 SWF 文件。” Swiffotron:“SWFProcessing.SWFModeller.SWFModellerException:SWFParsing;仅支持 SWF 9+(发现 7);” apparat: 可能有效,但评论只说 AS3(显然我的来源不是),我需要安装标量和 7-zip 来确认。我应该吗? 你能劫持链接而不是编辑源吗?我想这基本上是@Feras 的建议,但不必用 IIS 来完成。您可以将 swf 包装在另一个 swf 中,例如***.com/questions/2826086/… John:另一家公司的前同事有一个 URL Action Editor 的工作副本。完全按照宣传的方式工作。如果您将此作为答案发布,我会给您功劳。 【参考方案1】:

URL Action Editor 完美运行。在不破坏任何其他内容的情况下更改了字符串文字(与其他帖子中提到的其他工具/反编译器不同)。

【讨论】:

【参考方案2】:

这是一个免费的应用程序,可以满足您的需求,而且它应该会更好地工作。

http://www.free-decompiler.com/flash/

【讨论】:

以上是关于我可以在没有源 FLA 文件的情况下更改 SWF 中的 ActionScript 字符串文字吗?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在没有原始 .fla 的情况下从 documentClass 文件 (.as) 生成 SWF?

编辑 SWF 或 FLA 文件

可以通过 Javascript 控制 SWF 吗?

是否可以从命令行发布 FLA?

如何在不带整个库的情况下将场景或影片剪辑导出为 SWF?

为 SWF 扩展面板添加关闭和更改 FLA 文档的事件侦听器。使用 ActionScript、JSFL