我們編寫源程式經過編譯變成可執行檔案,反編譯就是其逆過程。
為什麼要需要研究反編譯?
在小公司開發中,偶爾就隻有1-2個人獨立面對一個項目。碰到問題後,可能你身邊沒有什麼技術大牛,這時運用反編譯,可以研究一個實作類似功能程式的源代碼,吸取别人的程式設計思路和經驗,提高自己的程式設計能力 。
這邊特别聲明,告訴你這個方法純粹是為了學習程式設計技術,而不是教你盜版别人的軟體。
我們反編譯需要用到的三種工具apktool 、dex2jar、jd-gui ,如下圖所示

apktool工具:擷取我們需要反編譯APK檔案資源檔案(圖檔和布局檔案)。
dex2jar工具:将APK反編譯成源代碼 。
jd-gui工具:檢視APK中源代碼檔案 。
先把要反編譯的apk放在apktool檔案夾中,用指令行打開,輸入如下指令:apktool d xxx.apk
反編譯完成後,在apktool中會新出現一個新的檔案夾,名字跟apk的名字一樣的檔案夾,這個檔案夾中,有我們需要的布局檔案和圖檔資源檔案。具體檔案夾如下圖所示:
2.接下來介紹我們的第二個工具dex2jar的使用。首先我們需要将要反編譯的APK字尾名改為 .zip,然後解壓開來,解壓開來檔案夾的目錄結構如下圖:
這時我們會看到解壓開來會有一個classes.dex檔案,然後把這個檔案放在dex2jar 檔案夾的目錄下,跟 dex2jar.bat同一級目錄下。然後指令行定位到該層目錄下,輸入指令 dex2jar.bat classes.dex
看到上圖後,我們會看到目錄底下會生成一個classes_dex2jar.jar的檔案,如下圖所示:
3.最後介紹我們的第三個工具jd-gui的使用。這個非常簡單,隻是一個代碼檢視工具。打開這個jd-gui工具後,把上一步生成的classes_dex2jar.jar檔案拖進來就大功告成了,就是這麼簡單。我們會看到如下圖所示的apk的源代碼,如果大家有接觸Google源碼,就會知道我這次反編譯的apk代碼就是Google原生的浏覽器Browser源碼。
方式二:關注公衆号【程式IT圈】,背景回複:反編譯,獲得反編譯工具。如下圖所示:
另外,我把自己反編譯出來的Google原生浏覽器的源代碼也上傳了,有需要的,也可以在公衆号【程式IT圈】,背景回複:浏覽器源碼,擷取代碼。
5總結
本文屬于原創,如有轉載,請标注原作者,版權歸本公衆号所有。如果你喜歡我寫的文章請關注 程式IT圈 ,歡迎大家繼續關注本公衆号的技術博文。如果您覺得這篇文章對你有所幫助的話,不妨點個贊或給個贊賞哈,您的支援就是我堅持原創的動力~~
最後,如果你想寫公衆号和熱愛程式設計的朋友們,我建立了個技術微信群,可以公衆号回複 "加群" ,歡迎您進群學習哈~
推薦閱讀
<a href="http://mp.weixin.qq.com/s?__biz=MzA5NzgzODI5NA==&mid=2454031200&idx=1&sn=11b87422351bf2357843f1f1224bfdf2&chksm=872b9ed9b05c17cf4e82272fea6a60ba6fcbc730ac9ff12000fbaece7c8f0cf79f32349c90e1&scene=21#wechat_redirect">【收藏篇】9月優秀技術博文整合,值得收藏</a>
<a href="http://mp.weixin.qq.com/s?__biz=MzA5NzgzODI5NA==&mid=2454031046&idx=2&sn=e7d88832d7dbc435c1e9e2c463827560&chksm=872b9f7fb05c1669b78ad91d50fa456c1fcf16a4877dd1568fc2db351cb4cda8056f85855da1&scene=21#wechat_redirect">【幹貨篇】福利篇:學習程式設計視訊免費領取</a>
<a href="http://mp.weixin.qq.com/s?__biz=MzA5NzgzODI5NA==&mid=2454031156&idx=1&sn=85e633c6d5943f2251517c1e7cc492f6&chksm=872b9e8db05c179b796404f47d88119f4b4cc8222f0536f2691e40b2ab3f6e10ff5f1515cac2&scene=21#wechat_redirect">【福利篇】邀您免費加入到程式猿小密圈</a>