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