unity反編譯由IL生成的dll文件

 本文由博主SunboyL原創,轉載請註明出處:http://www.cnblogs.com/xsln/p/DLL_DeCompilation.html

    在Unity實際開發過程中,我們可能會用到大量的插件,而很多插件有可能並非開源,而是封裝成dll文件。

    使用免費非開源插件時,插件往往缺少維護,這對我們的開發是非常不利的。例如dll暴露的諸多接口,我們並不知道這些接口背後幹了什麼、底層用到哪些接口、有什麼使用上的潛規則、對性能影響如何。

 

    根據網上發現的網友統計(統計來源:http://www.xuanyusong.com/archives/2664),多數的dll沒有做代碼混淆、反逆向等工作。因此對於這類由IL生成的dll,我們可以直接使用現成的工具,對dll進行反編譯,查看和學習dll內部到底幹了些什麼,是否存對性能產生影響的設計缺陷等等。

 

    目前已存在有很多的翻遍應工具,例如ILSpy、.Net Reflector 8、Resharper等等。

    下面我們使用免費開源的ILSpy爲例,對UnityEngine.dll進行一次反編譯學習。

 

下載工具:

    可以到ILSpy的官方網站進行下載:http://ilspy.net/

 

<聲明:本文分享的是工具的簡單使用方法,僅供學習參考使用,請勿用作其他用途>

使用:

1、打開ILSpy.exe,進入工具主界面:

 

2、點擊工具菜單欄的<File - Open>進入文件瀏覽界面,在Unity安裝路徑中找到UnityEngine.dll並打開

 

3、反編譯成功後,在左側列表中將顯示被反編譯dll的層次列表內容,而右側顯示源碼。

 

反編譯後可以發現,UnityEngine.dll只是一個基於C#的包裝層,因此我們看到的只是UnityEngine的包裝代碼以及一些比較基礎的邏輯代碼,核心代碼並不在其中。

原因是Unity本身是由C++編寫,即便要查看,也應該需要使用OllyDebug等其他反彙編工具深度逆向(這已經不是本文的討論範疇),不能通過ILSpy這類IL反編譯工具獲得。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章