Mac端如何反編譯apk?

前情提要

今天上班的時(shí)候,我的一位專于web安全的網(wǎng)友聯(lián)系我,讓我?guī)兔Ψ治鲆豢頰pp的架構(gòu)和運(yùn)行方式。雖然之前沒有弄過這一塊,但是出于好奇,也希望在安卓相關(guān)方面多接觸點(diǎn)陌生的東西,我欣然地接受了。分析一款app,首先需要拿到源碼,而拿到源碼的第一步就是反編譯,本篇文章我們來講解反編譯的工具的使用,因本人使用的是Mac電腦,所以本片文章基于Mac平臺(tái)。

下載反編譯工具

反編譯用到的相關(guān)工具主要有三個(gè),分別為:

  • dex2jar
  • jd-gui
  • AndroidCrackTool

三者的作用分別是:

  • 將dex文件轉(zhuǎn)為jar文件
  • 查看jar包里的源碼
  • 字節(jié)碼轉(zhuǎn)源碼

反編譯工具已上傳csdn,點(diǎn)擊這里跳轉(zhuǎn)下載頁面。

使用反編譯工具

反編譯工具的使用操作步驟如下:

  1. 得到dex文件
    使用解壓工具將apk安裝包解壓縮,在解壓后的文件根目錄下得到以classes.dex命名的dex文件。

  2. dex文件轉(zhuǎn)jar文件
    下載好反編譯工具并解壓后得到命名為dex2jar-0.0.9.15的文件夾,將classes.dex文件拷貝至該文件夾下,打開終端,執(zhí)行命令:

cd dex2jar-0.0.9.15文件路徑
shdex2jar.shclasses.dex

待命令行如下圖所示,表示文件轉(zhuǎn)換成功:

圖片截自Terminal

轉(zhuǎn)換成功后,可在dex2jar目錄下找到classes-dex2jar.jar文件。

  1. 查看源碼
    安裝jd-gui軟件,并在該軟件中打開classes-dex2jar.jar文件,可以看到工程包下的源碼:
    圖片截自jd-gui

    因apk的代碼經(jīng)過混淆,所以我們查看到的類名多為abcd等形式,盡管如此,我們依然可以通過源碼中的細(xì)節(jié)去推敲類的作用。

查看manifest.xml配置文件

若我們查看混淆后的源碼有些吃力,查看manifest文件可以幫助我們分析,里面包含了所有的activity、權(quán)限、服務(wù)等信息。但是查看直接解壓后的manifest文件,我們可以看到里面只有十六進(jìn)制的字節(jié)碼,這時(shí)候我們需要用到AndroidCrackTool工具。

圖片截自AndroidCrackTool

點(diǎn)擊瀏覽選擇需要反編譯的apk文件,點(diǎn)擊打開選擇crack后的文件路徑,點(diǎn)擊執(zhí)行,待控制臺(tái)窗口顯示如上圖,則說明crack結(jié)束。打開crack后的文件夾,打開其中的manifest.xml,即可查看apk的配置文件。

本人對反編譯的掌握尚處于認(rèn)識(shí)的程度,若有過來人對于如何分析源碼有好的建議,歡迎在文章下方評論交流!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 本文已授權(quán)微信公眾號:鴻洋(hongyangAndroid)原創(chuàng)首發(fā) 公司的項(xiàng)目代碼比較多,每次調(diào)試改動(dòng)java文...
    typ0520閱讀 44,218評論 56 434
  • 前言 處理反編譯,首先先要了解apk文件的結(jié)構(gòu),然后是編譯過程,最后是反編譯。反編譯Apk的目的就是Apk拆成我們...
    yzzCool閱讀 5,885評論 0 8
  • apk是安卓工程打包的最終形式,將apk安裝到手機(jī)或者模擬器上就可以使用APP。反編譯apk則是將該安卓工程的源碼...
    隋胖胖LoveFat閱讀 67,198評論 6 56
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,781評論 25 709
  • 昨晚女兒有拖欠作業(yè),我心里面就不太高興。今天老師請家長了,原因是未按老師的要求準(zhǔn)備筆記本。跟老師溝通后也沒...
    禧東東閱讀 221評論 0 0

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