【问题标题】:Removing a Watermark from an SWF file从 SWF 文件中删除水印
【发布时间】:2010-11-11 21:43:49
【问题描述】:

我有一个带有水印的 SWF 文件。

然后,我想通过修改磁盘上的原始数据来从 SWF 文件中删除水印。

由于 SWF 是一个开放标准,我查看了 Adob​​e 的 SWF Flash Player 10 规范。

我的水印是在第一帧中加载的影片剪辑对象。但直到现在我都无法删除它。

我正在尝试检查以十六进制编码为 (3F 09) 的标签 (DefineSprite),由于小端序,它被转换为 (09 3F)。

或者有一种不同的方法,即删除我在同一个文件 HEX 转储中找不到的控制标记(PlaceObject2)。

P.S:是的,我已经解压了文件。

有什么建议吗?

【问题讨论】:

    标签: flash


    【解决方案1】:

    在彻底研究和分析令人头疼的 Adob​​e 文档后,我完成了。

    我必须删除 2 个大小约为 (650) 字节的标签,包括图像数据等,从而减少文件大小(另一个好处)。

    还是谢谢。

    【讨论】:

    • 您能分享一下您使用的技术吗?这对于阅读您的问题并希望实现相同目标的社区成员会有所帮助。谢谢。
    • 嗯,它本身不是一种技术,当你完成某件事后,你回头看,说“简单”。我一直在文件中寻找匹配的标签,直到找到大约 180 个,我选择了最大的一个,因为它是承载图像数据并从文件中删除的那个,它被删除了,没有留下任何痕迹。显然我想应用更强大的安全实践,我认为如果我可以从另一侧删除我自己的安全性,我们需要在这里提出意见,是它太弱还是只是我是创建水印的人(这里的安全屏障)被我删掉是正常的吗?
    【解决方案2】:

    解压是指反编译吗?如果没有,通过使用一些可用的反编译器,如sothink decompiler,您可以从 swf 文件中获取资产。顺便说一句,如果您没有此 swf 的版权,您想要做的事情可能违反了版权法。相反,你应该问 swf 的作者...

    【讨论】:

    • 不,解压缩是指文件的 zLib 部分已解压缩。我不想使用反编译器,我拥有该文件并且我知道它包含什么。但是,你可以说我正在对我的水印进行某种安全测试。我无法删除它是一件好事,但我不是那个专家。
    • 好的,不,我不知道 swf 文件的字节码,所以我不能帮你。但是,我可以向您保证,理论上它是“可破解的”,如果您要问的话。
    • 我正在询问(如何?)更多关于(可以完成吗?),因为我知道它可以。不过还是谢谢。
    【解决方案3】:

    动态加载?从哪里?您不能更改 URL 并加载其他内容吗? (空 SWF)

    更新

    还有一个选项 - 跨电影脚本 - 但这取决于您将如何使用 SWF。您可以创建一个“loader.swf”来加载您的“watermarked.swf”,如果它们位于同一个域中,您可以将其加载到加载器自己的ApplicationDomain。然后就可以访问并遍历水印的显示列表,搜索水印并将其移除。

    【讨论】:

    • No dainel,我在磁盘上有文件,解压缩(未反编译)。水印包含在文件中(在库中),它不是从域或其他东西加载的,它只是从 SWF 文件本身加载并添加到第一帧的阶段。你们在这个低级别上使用过 SWF 文件结构吗?
    • 再次,不,它在 SWF 的本地库中。这就是我正在尝试做的,访问显示列表并对其进行修改,但是当您在 HEX 海中潜水时会感到非常困惑。我正在尝试处理较小的文件大小,然后我会尝试错过较大的文件。
    • 不,你不明白我的意思,我不是要修改 swf 文件,我的意思是在运行时以编程方式遍历显示列表。我不知道你对 AS3 的理解是什么,你需要更多关于这方面的帮助吗?
    • 啊哈有趣,我擅长 AS3 及其 OOP,是的,我需要有关此方面的帮助,我认为您的意思是在运行时遍历显示列表并将其从 Flash Player 转储到磁盘,对吧?
    • 好吧,你知道水印在屏幕上的位置(他的父母是谁)吗?他的名字是什么?如果是,那么这应该不是问题。我必须在问题编辑器中继续...
    猜你喜欢
    • 2016-06-02
    • 2012-02-04
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多