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配置和語(yǔ)言配置等等信息。
使用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打開(kāi)該文件就能查看源代碼:

與源代碼對(duì)比:
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é)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
詳解Android端與JavaWeb傳輸加密(DES+RSA)
這篇文章主要介紹了詳解Android端與JavaWeb傳輸加密(DES+RSA),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Android實(shí)現(xiàn)捕獲TextView超鏈接的方法
這篇文章主要介紹了Android實(shí)現(xiàn)捕獲TextView超鏈接的方法,涉及Android查找TextView中超鏈接的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
AndroidStudio kotlin配置詳細(xì)介紹
這篇文章主要介紹了AndroidStudio kotlin配置詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android Studio 通過(guò)登錄功能介紹SQLite數(shù)據(jù)庫(kù)的使用流程
SQLite是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它包含在一個(gè)相對(duì)小的C庫(kù)中。這篇文章主要介紹了Android Studio 通過(guò)登錄功能介紹SQLite數(shù)據(jù)庫(kù)的使用流程,需要的朋友可以參考下2018-09-09
Android編程實(shí)現(xiàn)使用SoundPool播放音樂(lè)的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)使用SoundPool播放音樂(lè)的方法,較為詳細(xì)的分析說(shuō)明了SoundPool對(duì)象的使用技巧,需要的朋友可以參考下2016-01-01
Android實(shí)現(xiàn)機(jī)房座位預(yù)約系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)機(jī)房座位預(yù)約系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Android實(shí)現(xiàn)通話最小化懸浮框效果
本片內(nèi)容給大家介紹了Android音視頻通話過(guò)程中最小化成懸浮框的實(shí)現(xiàn)的方法以及代碼寫(xiě)法。2017-11-11
Android ListView之setEmptyView正確使用方法
這篇文章主要介紹了Android ListView之setEmptyView正確使用方法的相關(guān)資料,希望通過(guò)本文能幫助到大家使用該方法,需要的朋友可以參考下2017-09-09
TabLayout關(guān)聯(lián)ViewPager后不顯示文字的解決方法
這篇文章主要為大家詳細(xì)介紹了TabLayout關(guān)聯(lián)ViewPager后不顯示文字的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11

