Android基礎新手教程——1.10 反編譯APK獲代替碼&資源

來源:互聯網
上載者:User

標籤:下載   pop   pos   alt   相關   產生   http   轉換   開源   

Android基礎新手教程——1.10 反編譯APK獲代替碼&資源

標籤(空格分隔): Android基礎新手教程

本節引言:

”反編譯Apk“。看上去好像好像非常高端的樣子,事實上不然,就是通過某些反編譯軟體。對我們的APK進行反編譯,從而擷取程式的原始碼,圖片,XML資源等檔案。不知道你有沒有這樣做過,看到一個別人的一個APP介面做得非常精美,或者你看上別人的圖片素材,簡單點的,我們能夠下載別人的APK。然後改下尾碼名,改成xxx.zip。然後解壓:
筆者隨便解壓了一個APK:

我們能夠開啟res檔案夾,擷取裡面的圖片素材

可是。這個方案,獲得的僅僅會是一些.png,或者.jpg這種位元影像檔案資源,假設是xml類的資源,開啟我們會發現是亂碼。而且假如我們想看APK程式的Java代碼,也是行不通的,由於他們都打被打包到classes.dex檔案裡!
可是反編譯能夠解決你的須要~另外,切勿拿反編譯來做違法的事。比方把人家的APK又一次打包後使用自己的簽名然後公布到相關市場…另外,我們是參考別人的代碼,而不是全然拷貝!

!!

切記!

1.要準備的三個工具
  1. apktool:擷取資源檔。提取圖片檔案,布局檔案,另一些XML的資源檔
  2. dex2jar:將APK反編譯成Java原始碼(將classes.dex轉化為jar檔案)
  3. jd-gui:查看2中轉換後的jar檔案,即查看Java檔案
    為了方便各位讀者,這裡將三個打包到一起放到雲端硬碟中,又須要的能夠進行下載:
    反編譯相關的三個工具.zip
2.使用apktool反編譯APK獲得圖片與XML資源:

把下載好的apktool解壓後。我們能夠看到下述檔案(忽略那兩個csdn。一個是反編譯的apk。一個是反編譯後檔案):


接下來。雙擊cmd.exe,來到命令列,鍵入:
apktool.bat d csdn.apk 就可以。Enter斷行符號:

然後就能夠看到產生的csdn檔案夾,裡面就有我們想要資源

好的,就是XML資源到手了是吧!圖片素材也到手了!

3.使用dex2jar將classes.dex轉換成jar檔案:

把下載好的dex2jar檔案夾解壓,apk解壓後中的classes.dex拷貝到dex2jar.bat所在的檔案夾下:

開啟cmd,來到這個檔案夾下:鍵入:d2j-dex2jar.bat classes.dex

接著我們能夠看到。產生了一個jar包:


好的,轉換完畢!

4.使用jd-gui查看jar包中的Java代碼:

好的,開啟jd-gui的檔案夾

開啟後。開啟我們3中轉換後的jar包。我們能夠看見裡面的代碼:


csdn的client居然不混淆代碼…可能是本著開源的精神吧,給我們學習代碼吧!一般的話,apk公布都會
進行混淆,然後進行一些加密,或者使用第三方的加密平台。用的比較多的”愛加密“,有興趣的也自行百度查看更加具體的介紹。

本節小結:

好的。關於APK的反編譯就介紹到這裡。相信你已經摩拳擦掌想要試試了,那就試試吧,最後提醒一句,別做壞事!尊重別人的勞動成果。另外。關於第一大章環境搭建相關以及一些經常使用開發技巧就到這裡,下一節開始我們就來進行本系列教程的第二章——Android中的經常使用UI控制項的學習了!

因相關的基本控制項較多,預計有幾十個,假設一直學控制項可能沒什麼意思,可能並行寫教程,每天學一個控制項 + 一點其它的知識點這樣,筆者要構思構思,敬請期待~謝謝~

Android基礎新手教程——1.10 反編譯APK獲代替碼&資源

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.