2011-06-25 36 views
0

我一直試圖找出Flash game中的背景數學,通過使用Sothink SWF反編譯器來查看ActionScript文件。誠然,我不是很瞭解的ActionScript,但我看到的,看起來像行代碼:碩思SWF反編譯器在奇怪的地方使用null

_loc_2 = null * (null * true) <= null; 

或:

_loc_3 = null & null << (null === false); 

從我的立場,值< = NULL不很有道理, null * truenull & null。我只是不正確地理解ActionScript,或者這是反編譯過程中的錯誤?如果這是一個錯誤,有什麼辦法來解決它?

回答

0

swf可能已經用混淆器加密,這就是爲什麼你會看到這樣的廢話。您可以測試自己的代碼(雖然你在非嚴格模式下編譯):

trace("null & null: " + (null & null)); // traces 0 
trace("null === false: " + (null === false)); // traces false 
trace("null & null << (null === false): " + (null & null << (null === false))); // traces 0 
trace("null * true: " + (null * true)); // traces 0 
trace("null * null * true " + (null * (null * true))); // traces 0 
trace("null * (null * true) <= null: " + (null * (null * true) <= null)); // traces true 

所以基本上_loc_2是一個局部變量設置爲0,而_loc_3是一個局部變量設置爲true

+0

所以你說最後的變量本身被設置爲與使用混淆器之前相同的值,但現在已經使用了混淆器,設置每個變量的過程變得非常複雜?或者讓混淆器將我的反編譯器混淆到所有_null_等現在都會破壞腳本的地步? – mayhew

+0

混淆器的要點是保持相同的功能,只是讓它成爲人們反編譯和剝離代碼的PITA。例如,secureSWF將使用非常見的字符,這些字符甚至不會在編輯器中正確顯示。從技術上講,它應該仍然可以工作,但我沒有測試過。例如,比較之前和之後:http://asgamer.com/2009/why-how-to-encrypt-your-flash-swf(滾動到底部) – divillysausages

+0

爲什麼不搜索相同功能的教程,或者嘗試與原始開發人員取得聯繫並尋求建議?大多數Flash開發者都相當友好,並且樂於教導 – divillysausages