前陣子突然沒什么事干了..
老板不找東西給我做,主程不找東西給我做..慢慢我就會覺得自己是個偉大的藝術家,在活着的時候是不會受到別人重視的.
當然我比那些偉大的藝術家更偉大,為什么?的區別就是,我知道我死后也不會受到別人的重視..所以我們要怎么做?我們要自己找事做..
無聊去反編譯了TheMiner的代碼去看了下..收獲到個不錯的事件..那就是allComplete..
想着TheMiner既然可以讀取到所有游戲的信息,分析並處理..那我為什么不可以用它來處理個別的游戲呢..例如是我們自己的游戲..
參考資料除了上面提到的TheMiner,還有下面這個網站..
http://philippe.elsass.me/2010/09/as3-hacking-preloadswf-for-fun-and-profit/
其實我也是跟大部分人一樣..懂得26個英文字母而已..然后啃了很多,才勉強看到那句重點:
All you need is “allComplete”
下面是要認識到的兩個基本的東西:
1.怎么使用allComplete:
package { import flash.display.LoaderInfo; import flash.display.Sprite; import flash.display.Stage; import flash.events.Event; public class PreloadSwf extends Sprite { public function PreloadSwf():void { addEventListener("allComplete", allComplete); } private function allComplete(e:Event):void { removeEventListener("allComplete", allComplete); var info:LoaderInfo = e.target as LoaderInfo; trace(info.url, "is being monitored"); // now let the fun begin! try: // info.content // info.content.stage // info.parameters // info.applicationDomain // info.bytes } } }
ps:很簡單的. 做監聽..然后接收到事件的時候把監聽斷掉, 避免有更多的事件觸發做了重復多余的東西..
在這里有個很好用的東西..每個allComplete傳過來的data都是完整無加密的..說是這些數據是可以存起來的.
如果說我們想破解某個已經加密的swf文件..可以通過這種方法把它取出來...
當allComplete觸發完成之后,就可以通過LoaderInfo的信息去取我們所要的類了...既然取到我們要的類,那我們還有什么事做不了的呢..
2.配置mm.cfg
這個文件里面存了我的破解swf文件路徑..不太了解的話可以搜索一下TheMiner的配置..
PreloadSwf=swf文件路徑
然后把這個配置文件存放在用戶目錄下,例如我的系統是win7,裝個C盤.用戶名是yans.那目錄應該是C:\Users\Yans..
其它的系統可以參考這個
*Macintosh OS X /Library/Application Support/Macromedia *Windows 95/98/ME %HOMEDRIVE%\%HOMEPATH% *Windows 2000/XP C:\Documents and Settings\username *Windows Vista C:\Users\username *Linux /home/username
大概寫了些基本的方法.下次再寫一些具體的實例..還有現在用的簡單的一個框架..