反編譯Silverlight項目

作者: jv9  來源: 博客園  發布時間: 2010-08-19 09:55  閱讀: 1620 次  推薦: 0   原文鏈接   [收藏]  
摘要:在文章的開頭,我想事先說明,本文并非誘導讀者惡意反編譯他人作品,盜取他人代碼成果,只是為了學習Silverlight討論而用。

  在互聯網上,每天都會有很多Silverlight項目發布,有的是開源,有的只是為了展示。在Silverlight學習的初期,多數都需要模仿學習,所以,發現一個Silverlight項目,能夠查看其中的源代碼是最好不過了。但是,Silverlight發布,只是發布資源包XAP,而所有資源都在這個XAP文件中,該如何查看其中的資源和代碼呢?下面我將演示反編譯的方法,演示中我將用Silverlight.Net首頁Silverlight作為例子。

  1. 首先打開Silverlight.Net,該頁面中包含一個Silverlight導航動畫;

  2. 在瀏覽器中,點擊右鍵,查看頁面源代碼;

  3. 在html源代碼中搜索"xap",很快就能定位出xap的位置。

  我們看到<param name="Source" value="clientBin/showcasenav/ShowcaseNav.xap" />,該value就是xap在服務器端的位置。

  4. 我們使用同樣的域名,來獲取當前的xap文件。打開新的瀏覽器,在地址欄輸入:http://www.silverlight.net/clientBin/showcasenav/ShowcaseNav.xap,這時瀏覽器會提示你下載該xap文件。

  5. 重新命名下載下來的文件ShowcaseNav.xap,為 ShowcaseNav.zip. 然后解壓該壓縮包到同一個目錄. 在目錄中,會看到該Silverlight使用的裝配單文件,以及類庫,和配置文件。

  6. 下面可以使用大家都比較熟悉的反編譯軟件,Reflector來查看DLL中的資源和代碼文件。 下載Reflector: http://www.red-gate.com/products/reflector/

  7. 在Reflector中雙擊“MsCommunities.Silverlight.ShowcaseNav”,展開文件會看到DLL和Resources,其中Resources中包含這所有的xaml文件和圖片文件,DLL中都是類庫后臺代碼。

  8. 點擊進入Reources目錄,雙擊“MsCommunities.Silverlight.ShowcaseNav.g.resources”,在Reflector右邊可以看到資源列表,選中任意一個想查看代碼的文件,點擊右鍵“Save As”,保存到本地,即可使用VS2008或者文本編輯軟件查看代碼內容。

  9. 對應著每個資源文件會有類庫代碼,雙擊“MsCommunities.Silverlight.ShowcaseNav.dll”,再雙擊“MsCommunities.Silverlight.ShowcaseNav”,可以查看各個類庫文件,這里,我們選中"ItemAdvanceControl“,在Reflector右邊即可看到反編譯代碼。

  至此,我們已經講述如何反編譯Silverlight項目,查看其源代碼,下面我想介紹一款國外的共享軟件,也可以達到上面同樣的效果 - Silverlight SPY,下載地址:http://silverlightspy.com/silverlightspy/download-silverlight-spy/

  Silverlight SPY是一款共享軟件,該軟件可以自動獲取XAP文件,幫你解析XAP中的文件,該軟件和Reflector配合同樣可以查看Silverlight項目源代碼。同時,可以分解項目中的樣式和UI,以及Isolated Storege展示給開發人員。我們在地址欄輸入Silverlight.NET地址,即可得到,雙擊任何一個資源,在View窗口即可查看。

0
0
 
標簽:Silverlight
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()