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自定義雙向進(jìn)度條的實(shí)現(xiàn)代碼
本篇文章主要介紹了Android自定義雙向進(jìn)度條的實(shí)現(xiàn)代碼,非常具有實(shí)用的價(jià)值,有興趣的同學(xué)一起來了解一下2017-09-09
Android自定義ListView實(shí)現(xiàn)下拉刷新上拉加載更多
Listview現(xiàn)在用的很少了,基本都是使用Recycleview,但是不得不說Listview具有劃時(shí)代的意義,我們可以自己添加下拉刷新,上拉加載更多功能。本文就來利用自定義ListView實(shí)現(xiàn)下拉刷新上拉加載更多效果,需要的可以參考一下2022-10-10
Android編程實(shí)現(xiàn)列表側(cè)滑刪除的方法詳解
這篇文章主要介紹了Android編程實(shí)現(xiàn)列表側(cè)滑刪除的方法,結(jié)合實(shí)例形式詳細(xì)分析了Android列表側(cè)滑刪除功能的原理與具體實(shí)現(xiàn)技巧,注釋中包含詳盡的說明,需要的朋友可以參考下2018-01-01
Android?利用ImageView屬性實(shí)現(xiàn)選中和未選中效果
這篇文章主要介紹了Android巧用ImageView屬性實(shí)現(xiàn)選中和未選中效果,實(shí)現(xiàn)思路通常我們會(huì)選擇在布局里加個(gè)ImageView,然后通過代碼層面加個(gè)判斷去讓ImageView加載不同狀態(tài)的圖片,需要的朋友可以參考下2023-06-06
Android基于TextView實(shí)現(xiàn)跑馬燈效果
這篇文章主要為大家詳細(xì)介紹了Android基于TextView實(shí)現(xiàn)跑馬燈效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Android自定義豎排TextView實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了Android自定義豎排TextView實(shí)現(xiàn)實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android嵌套滾動(dòng)和協(xié)調(diào)滾動(dòng)的多種實(shí)現(xiàn)方法
嵌套的滾動(dòng)主要方式就是這些,這些簡單的效果我們用協(xié)調(diào)滾動(dòng),如?CoordinatorLayout?也能實(shí)現(xiàn)同樣的效果,這篇文章主要介紹了Android嵌套滾動(dòng)和協(xié)調(diào)滾動(dòng)的多種實(shí)現(xiàn)方法,需要的朋友可以參考下2022-06-06
通過Android trace文件分析死鎖ANR實(shí)例過程
遇到ANR(Application Not Responding)是比較常見的問題,產(chǎn)生ANR的原因有很多,比如CPU使用過高、事件沒有得到及時(shí)的響應(yīng)、死鎖等,下面將通過一次因?yàn)樗梨i導(dǎo)致的ANR問題,來說明如何通過trace文件分析ANR問題2013-06-06

