豌豆莢逆向分析


  最近玩手機應用,聽說創新工廠有個豌豆莢,然后到官方往去下載,結果發現運行要求那里寫着系統要求.net 2.0,一見到這個就高興了,原來用.net做桌面應用的軟件還是不少的,而且可能還可以逆向看部分代碼。

  裝完豌豆莢,到安裝目錄里一看就看到幾個關鍵的動態庫了,其實豌豆莢用到了許多第三方開源庫。就目前我知道的,有以下幾個:

  1.ffmpeg(http://ffmpeg.org/)大名鼎鼎的視頻編碼解碼庫,,豌豆莢在應該是用來做視頻格式轉換的,從幾個dll的名稱就可以看出

  2.WebKit瀏覽器內核,豌豆莢是跟其它第三方應用市場合作的,基本上是通過web展示的,所以使用了WebKit的.net版本,具體可                    看http://github.com/webkitdotnet

  3.用到了C#壓縮組建 SharpZipLib,具體可以自行google

  4.JavaScriptCore,javascript解析引擎,其實是WebKit的javascript引擎

  5.Json.Net,就一Json的.net實現

 

  接着對豌豆莢進行逆向,使用Reflector.exe逆向結果顯示已經針對該工具加過殼,我一直從事.net應用程序的開發,對.net的保護常識還是知道的,因為我們的軟件也需要保護。Reflector.exe不行最多就是換個逆向工具嘛,使用ILSpy把豌豆莢一拖進去,源碼自然全部就出來了,結構如圖

,只是由於使用了加殼和混淆工具,代碼的一些核心都是使用一些奇怪的字符替換,要想分析經過混淆后的代碼還是沒那么容易的,只能通過代碼邏輯來分析每個方法的作用了,至少可以看得到有些實現是什么做的。

  本人只出於對於.net愛好的研究目的,做了簡單的分析,也做一個警示,.net代碼的保護不容忽視,在做開發時要學會保護軟件。

     注意經測試該文章只針對豌豆莢1的版本,豌豆莢2以上版本已變成使用C++。希望是豌豆莢看到我的這篇文章之后改的,哈哈


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM