mac反編譯安卓apk

反編譯工具

apktool

兩種方式

dex2jar

兩種方式

jd-gui

apktool 安裝

  • 安裝方式查看 https://ibotpeaches.github.io/Apktool/install/

  • 下載好帶版本號的jar修改名字為apktool.jar

  • apktool文件各式如圖

    屏幕快照 2018-10-23 13.47.19.png

  • apktool.jarapktool存放在/usr/local/bin

  • 終端輸入apktool 顯示下面 安裝成功

$ apktool
Apktool v2.3.4 - a tool for reengineering Android apk files
with smali v2.2.2 and baksmali v2.2.2
Copyright 2014 Ryszard Wi?niewski <brut.alll@gmail.com>
Updated by Connor Tumbleson <connor.tumbleson@gmail.com>

usage: apktool
 -advance,--advanced   prints advance information.
 -version,--version    prints the version then exits
usage: apktool if|install-framework [options] <framework.apk>
 -p,--frame-path <dir>   Stores framework files into <dir>.
 -t,--tag <tag>          Tag frameworks using <tag>.
usage: apktool d[ecode] [options] <file_apk>
 -f,--force              Force delete destination directory.
 -o,--output <dir>       The name of folder that gets written. Default is apk.out
 -p,--frame-path <dir>   Uses framework files located in <dir>.
 -r,--no-res             Do not decode resources.
 -s,--no-src             Do not decode sources.
 -t,--frame-tag <tag>    Uses framework files tagged by <tag>.
usage: apktool b[uild] [options] <app_path>
 -f,--force-all          Skip changes detection and build all files.
 -o,--output <dir>       The name of apk that gets written. Default is dist/name.apk
 -p,--frame-path <dir>   Uses framework files located in <dir>.

For additional info, see: http://ibotpeaches.github.io/Apktool/ 
For smali/baksmali info, see: https://github.com/JesusFreke/smali

開始反編譯

目錄結(jié)構(gòu)

AndroidDecompilation/
├── Decompile
│   └── com.stub.StubApp.apk
├── apktool
├── apktool.jar
├── dex2jar-2.0
│   ├── d2j-baksmali.bat
│   ├── d2j-baksmali.sh
│   ├── d2j-dex-recompute-checksum.bat
│   ├── d2j-dex-recompute-checksum.sh
│   ├── d2j-dex2jar.bat
│   ├── d2j-dex2jar.sh
│   ├── d2j-dex2smali.bat
│   ├── d2j-dex2smali.sh
│   ├── d2j-jar2dex.bat
│   ├── d2j-jar2dex.sh
│   ├── d2j-jar2jasmin.bat
│   ├── d2j-jar2jasmin.sh
│   ├── d2j-jasmin2jar.bat
│   ├── d2j-jasmin2jar.sh
│   ├── d2j-smali.bat
│   ├── d2j-smali.sh
│   ├── d2j-std-apk.bat
│   ├── d2j-std-apk.sh
│   ├── d2j_invoke.bat
│   ├── d2j_invoke.sh
│   └── lib
│       ├── antlr-runtime-3.5.jar
│       ├── asm-debug-all-4.1.jar
│       ├── d2j-base-cmd-2.0.jar
│       ├── d2j-jasmin-2.0.jar
│       ├── d2j-smali-2.0.jar
│       ├── dex-ir-2.0.jar
│       ├── dex-reader-2.0.jar
│       ├── dex-reader-api-2.0.jar
│       ├── dex-tools-2.0.jar
│       ├── dex-translator-2.0.jar
│       ├── dex-writer-2.0.jar
│       └── dx-1.7.jar
├── dex2jar-2.0.zip
├── jd-gui-osx-1.4.0
│   ├── JD-GUI.app
│   │   └── Contents
│   │       ├── Info.plist
│   │       ├── MacOS
│   │       │   └── universalJavaApplicationStub.sh
│   │       └── Resources
│   │           ├── Java
│   │           │   └── jd-gui-1.4.0.jar
│   │           └── jd-gui.icns
│   ├── LICENSE
│   ├── NOTICE
│   └── README.md
└── jd-gui-osx-1.4.0.tar
  • 反編譯的目標(biāo)apkcom.stub.StubApp.apk
    存放路徑Decompile/com.stub.StubApp.apk
    進(jìn)入此目錄$ cd /Decompile

  • 執(zhí)行 $ apktool d com.stub.StubApp.apk

  • 執(zhí)行$ ls 結(jié)果

com.stub.StubApp    com.stub.StubApp.apk
  • 反編譯java源文件
    com.stub.StubApp.apk修改為com.stub.StubApp.zip
    JavaSourceCode用來存放源碼
$ mv com.stub.StubApp.apk com.stub.StubApp.zip
$ mkdir JavaSourceCode
$ unzip com.stub.StubApp.zip -d JavaSourceCode/
  • 使用dex2jarclasses.dex生成classes.jar
  • JavaSourceCode里面會有一個(gè)classes.dex文件
  • 進(jìn)入$ cd JavaSourceCode/ 執(zhí)行cp classes.dex ../../dex2jar-2.0/
    執(zhí)行cd ../../dex2jar-2.0
$ sudo chmod +x d2j_invoke.sh
$ sh d2j-dex2jar.sh classes.dex
  • 會生成classes-dex2jar.jar
  • 使用jd-gui工具打開這個(gè)classes-dex2jar.jar包就可以看到java源代碼了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在大四最迷茫的時(shí)候,我的男友告訴我:想什么就去做,你可以做的很好!于是,我在2016下半年的時(shí)間里,同時(shí)進(jìn)行...
    遠(yuǎn)行與JING閱讀 876評論 1 2
  • 外賣的沙拉連續(xù)吃了五周,是無論如何再也吃不下去了。 家里有個(gè)漂亮的廚房,裝修的時(shí)候因?yàn)榈教幎歼x不到喜歡的瓷磚,就用...
    April愛貓愛王菲閱讀 731評論 1 50
  • 20170813晴周末 非常順利的到達(dá)揚(yáng)州,揚(yáng)州的大巴好長,空氣好新鮮,就連陽光都是溫溫和和,一點(diǎn)也感受不到夏天的...
    三月小女子閱讀 464評論 1 0
  • 你若安好 我的每一日子 都是晴天
    閬苑寒梅閱讀 319評論 3 4
  • 系統(tǒng)化學(xué)習(xí),知其然,知其所以然 每個(gè) iOS 應(yīng)用程序至少需要一個(gè)窗口, 有些可能包含多個(gè)窗口。一個(gè)窗口對象有幾個(gè)...
    好_快閱讀 537評論 0 0

友情鏈接更多精彩內(nèi)容