2008-12-05 49 views
4

到目前爲止,我已經在幾個flash項目上工作過。我知道我的AS3方式,但我也開始對其他閃存程序的編寫感到好奇,所以我反編譯了一些swf文件以瞭解它們是如何製作的。 (我也讀過了開源項目,但我沒有這麼說,因爲我對反編譯swf文件或其他任何東西感到內疚。)通過研究這些項目,我學到了很多東西。但是有些項目根本無法理解代碼。看起來他們不可能是人類寫的!Flash程序員:你如何讓你的代碼反編譯證明?

也許他們被混淆了吧?這讓我想到:越來越多的網站提供Flash/Flex應用程序作爲他們的主要服務。我正在考慮Scribd,Sproutbuilder,但你可以想到其他人。這些網站對保護Flash平臺中的代碼非常感興趣。

所以這就引出了我的問題:閃存編程人員使用哪種工具或技術來使代碼反編譯?

編輯:發佈後,我遇到this interesting post by Charles Miller關於混淆的徒勞。他說得很公平。軟件是時間的投入,最終有人會投入足夠的時間來逆向工程,即使是最艱鉅的軟件工程項目。 (提示,提示:Mac OS,Windows,iPhone,你的名字。)但是,這並不意味着混淆並不能爲短期內提供物質利益和競爭優勢。 。我是對還是錯?

回答

0

有幾個商業和免費的動作腳本混淆器,一個google search變成幾個。我不能擔保任何特定的人,但我相信他們都可以在一定程度上逆向工程。

IMO,如果混淆器通過將變量,函數和類重命名爲無意義/隨機字符而使您的代碼變得不可讀,那通常是很多沮喪的人想要閱讀代碼或拼湊更多內容而不是一個微不足道的程序。

1

工作,因爲據我所知,混淆工具,如swfencrypt使用ActionScript 2的工作更好,因爲它有EVAL( )函數,這是隱藏代碼的好方法。但是,我仍然建議使用這樣的東西,更重要的是,你儘可能在服務器上放置儘可能多的邏輯,在安全的地方。

+0

是的,遊戲的規則是「永遠不相信客戶。」 – 2009-04-19 20:03:42