如何将一些脚本添加到现有的 swf 文件中?

Posted

技术标签:

【中文标题】如何将一些脚本添加到现有的 swf 文件中?【英文标题】:How to add some script to an existing swf file? 【发布时间】:2019-02-08 19:17:55 【问题描述】:

我知道关于这个问题已经讨论了很多。 我不想更改值或地址,我可以做这些事情并且没有问题。但我想添加一些代码到 SWF 文件中的现有代码中。

我尝试使用 JPEXS Free Flash Decompiler,但无法保存添加到 SWF 文件中的代码。该软件从文件的其他行报告了可笑的错误并且没有保存更改:"CURLY_CLOSE 预期但在第 779 行找到分号 还有其他方法吗?

我添加了什么:

var tmp_a = 10;

JPEXS 坚持什么:

 777 enterFrameDispatcher.addEventListener(Event.ENTER_FRAME,function():*
 778      
 779        testRenderLoop(psurface);
 780      ,false,0,true);

它确实说“testRenderLoop”有一些问题!

这是SWF File .我正在编写一个名为 VEngine.as 的 swf 脚本。

【问题讨论】:

SWF 是 Fl​​ash 编译的应用程序格式,实际上不应更改。或者你的技能和理解力(没有冒犯)不足以完成这项任务。无论如何,据我所知,JPEXS 是您最好的选择,其他工具仅允许将 SWF 逆向工程为源文件,然后您需要自己将它们构建为 SWF。 也许你是对的。但我不太可能知道我是否没有做过。在尝试将文件保存在 JPEXS 中后,我遇到了“预期为 CURLY_CLOSE 但在第 779 行找到了分号”的错误。此行与我添加的代码无关。很明显,JPEXS 存在一些问题。 您需要展示您添加的一行(或多行)代码的一些示例。他们可能需要一些您没有导入的 API。附加代码的结构是否正确?您的代码中是否缺少 ) 括号?使用 edit 按钮向我们展示您的 AS3 代码(从 775780 行,以帮助我们评估错误“CURLY_CLOSE expected...” 我添加了代码。有帮助吗!? 【参考方案1】:

尝试添加一个数据类型(因为它是变量声明所必需的):

var tmp_a :int = 10;

让我知道进展如何。我也担心enterFrameDispatcher...,但那是以后再说。

【讨论】:

不幸的是,同样的错误仍然存​​在。我将 swf 文件链接放在问题的末尾。如果可能,请检查一下。谢谢 我注意到文件可能被第三方应用程序压缩、优化或混淆,那么我从哪里知道如何处理这些工具呢? 你见过cord.swf真的有效吗?它向我显示了一个空白屏幕,因此即使您可以编辑,仍然不会发生任何事情(可见)。任何简单的编辑都会导致 JPEXS 出错。代码结构也很糟糕。返回类型为 * 而不是 void 的函数太多。最糟糕的是大量的内联函数(为什么要在其他函数内部创建新函数,而这些函数本身已经在更多其他函数内部?谁编写了这段代码不希望它工作?跨度> 我不知道压缩/优化。代码显示正常,因此不会被混淆。你会得到_loc_ 名称,因为编译器不需要它们的名称,它知道它的含义(当应用程序数据在内存中时)。基本上,您在 SWF 中的问题是第 777 行之前的一些错误代码,其中缺少 ,因此您必须向上滚动以查找该错误。 PS:看看你怎么看“一个括号丢失了”?它没有丢失,它位于以false,0,true); 结尾的780 行。但是这种代码布局很乱。如果缺少任何东西,现在就变成了寻找它的试验。基本上一个函数看起来像示例function1 .... 和外部function2 .... 等,但开发人员在这里所做的就像function1 ... function2 ...function3 ...function4 ..function5 .... .. ... ... 所以将长函数inside 其他长函数会使调试混乱并且没有收获好处。注意到我丢失的了吗?

以上是关于如何将一些脚本添加到现有的 swf 文件中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将熊猫数据添加到现有的 csv 文件中?

iText - 将内容添加到现有的 PDF 文件

如何使用Golang将文件添加到现有的zip文件中

如何将 JPA 添加到现有的 Eclipse 项目?

如何将 Sapper 添加到现有的 Svelte 项目中?

如何将文件添加到现有的 docker 镜像? [复制]