2010-11-11 79 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