2010-11-11 77 views
2

我有一个SWF文件,我用水标记。从SWF文件中移除水印

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

既然SWF是一个开放标准,我已经看了一下Adobe的SWF Flash Player 10规范。

我的水印是在第一帧中加载的动画片段对象。但直到现在我无法删除它。

我想检查在Hex中编码为(3F 09)的标签(DefineSprite),由于小尾数而转换为(09 3F)。

还是有一种不同的方法,它是删除控制标记(PlaceObject2),我找不到在同一个文件十六进制转储。

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

有什么建议吗?

回答

1

经过彻底的研究和分析头部疼痛的Adobe文件,我已经完成了。

我不得不删除2个大小约为(650)字节的标签,包括图像数据等等,这也减少了文件大小(另一个好处)。

无论如何。

+1

你可以分享你使用的技术吗?如果社区成员阅读您的问题并想要达到相同的效果,这将会有所帮助。谢谢。 – sthg 2010-11-15 04:22:43

+1

好吧,这本身不是一种技术,在你做了一些事情后,你会回头看,说'容易'。我一直在寻找文件中的标签匹配,直到我找到它们中的大约180个,并且我选择了最大的一个,因为它是承载图像数据并将其从文件中移除的一个,并且它被删除而不留痕迹。显然我想应用更强大的安全实践,我认为如果我可以从另一方移除我自己的安全性,我认为我们需要意见,它太弱或者只是我是创建水印的人(这里是安全屏障)这是正常的,我被删除? – 2010-11-15 05:24:26

0

动态加载?来自哪里?你不能改变URL并加载其他的东西吗? (空SWF)

UPDATE

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

+0

No dainel,我有磁盘上的文件,解压(不反编译)。水印包含在文件中(在库中),它不从域或其他东西加载,它只是从SWF文件本身加载并添加到第一帧中的阶段。你们有没有在这个低级别上使用SWF文件结构? – 2010-11-12 13:23:20

+0

再次不,它位于SWF的本地图书馆。这就是我想要做的,访问显示列表并对其进行修改,但当你在HEX海中潜水时,它会非常混乱。我试图操纵一个较小的文件大小,然后我会尝试错过大的文件。 – 2010-11-12 15:52:10

+0

不,你不明白我,我不是故意修改swf文件,我的意思是在运行时以编程方式遍历显示列表。我不知道你的AS3理解是什么,你需要更多的帮助吗? – 2010-11-12 16:08:51

0

通过解压缩你的意思是反编译?如果没有,通过使用一些可用的反编译器,如sothink decompiler,您可以从swf文件获取资产。顺便说一句,如果你没有版权的这个瑞士法郎,你想要做的可能是违反版权法。相反,你应该问swf的作者...

+0

不,通过解压缩,我的意思是文件的zLib部分被解压缩。我不想使用反编译器,我拥有该文件,并且知道它包含的内容。但是,你可以说我正在对我的水印进行某种安全测试。我无法删除它是一件好事,但我不是那个专家。 – 2010-11-12 13:16:19

+0

好的,不,我不知道swf文件的字节码,所以我不能帮你。不过,我可以向你保证,理论上它是“可破解的”,如果这就是你所要求的。 – 2010-11-12 13:39:14

+0

因为我知道它可以,所以我在问(怎么做?)更多关于(可以做?)。不过谢谢。 – 2010-11-12 15:46:43