ubuntu環(huán)境下反編譯android apk的方法
使用ApkTool反編譯Apk
下載 apktool1.4.3.tar.bz2 、apktool-install-linux-r04-brut1.tar.bz2 兩個(gè)包,并解壓到統(tǒng)一個(gè)目錄中,解壓后得到aapt apktool apktool.jar 。解壓安裝完成后輸入以下命令解壓:
<span>$ ./apktool d apk/xgd_android_test.apk I: Baksmaling... I: Loading resource table... I: Loaded. I: Loading resource table from file: /home/yangyupeng/apktool/framework/1.apk I: Loaded. I: Decoding file-resources... W: Cant find 9patch chunk in file: "drawable-mdpi/navbar.9.png". Renaming it to *.png. I: Decoding values*/* XMLs... I: Done. I: Copying assets and libs... </span>
顯示如上,注意apktool的參數(shù),d表示decode,b表示build,此時(shí)在當(dāng)前目錄生成apk的解壓文件:
1/xgd_android_test$ ls AndroidManifest.xml apktool.yml lib res smali
這里有apk的源碼(smali)、圖片、xml配置和語言配置等等信息。
使用dex2jar和JD-JUI這兩個(gè)工具查看java源碼
下載dex2jar、JD-JUI 兩個(gè)包,解壓。
把a(bǔ)pk的后綴名改成zip,并解壓得到classes.dex文件,在dex2jar目錄中輸入如下命令得到.jar文件:
<span>$ ./dex2jar.sh classes.dex this cmd is deprecated, use the d2j-dex2jar if possible dex2jar version: translator-0.0.9.9 dex2jar classes.dex -> classes_dex2jar.jar Done. </span>
再使用JD-JUI打開該文件就能查看源代碼:
與源代碼對比:
package xgd.android; import android.app.Activity; import android.os.Bundle; public class ICCardActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.iccard); } }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
詳解Android端與JavaWeb傳輸加密(DES+RSA)
這篇文章主要介紹了詳解Android端與JavaWeb傳輸加密(DES+RSA),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11Android實(shí)現(xiàn)捕獲TextView超鏈接的方法
這篇文章主要介紹了Android實(shí)現(xiàn)捕獲TextView超鏈接的方法,涉及Android查找TextView中超鏈接的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10AndroidStudio kotlin配置詳細(xì)介紹
這篇文章主要介紹了AndroidStudio kotlin配置詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-05-05Android Studio 通過登錄功能介紹SQLite數(shù)據(jù)庫的使用流程
SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對小的C庫中。這篇文章主要介紹了Android Studio 通過登錄功能介紹SQLite數(shù)據(jù)庫的使用流程,需要的朋友可以參考下2018-09-09Android編程實(shí)現(xiàn)使用SoundPool播放音樂的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)使用SoundPool播放音樂的方法,較為詳細(xì)的分析說明了SoundPool對象的使用技巧,需要的朋友可以參考下2016-01-01Android實(shí)現(xiàn)機(jī)房座位預(yù)約系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)機(jī)房座位預(yù)約系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04Android實(shí)現(xiàn)通話最小化懸浮框效果
本片內(nèi)容給大家介紹了Android音視頻通話過程中最小化成懸浮框的實(shí)現(xiàn)的方法以及代碼寫法。2017-11-11Android ListView之setEmptyView正確使用方法
這篇文章主要介紹了Android ListView之setEmptyView正確使用方法的相關(guān)資料,希望通過本文能幫助到大家使用該方法,需要的朋友可以參考下2017-09-09TabLayout關(guān)聯(lián)ViewPager后不顯示文字的解決方法
這篇文章主要為大家詳細(xì)介紹了TabLayout關(guān)聯(lián)ViewPager后不顯示文字的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11