1. 安卓逆向助手
有一款叫安卓逆向助手軟件反編譯apk 十分方便写隶。這里給大家介紹的反編譯方法就是基于這款軟件的呜笑。安卓逆向助手下載地址
Android逆向助手是一功能強(qiáng)大的逆向輔助軟件。該軟件可以幫助用戶來進(jìn)行apk反編譯打包簽名失球;dex/jar互轉(zhuǎn)替換提取修復(fù)擦耀;so反編譯;xml吭敢、txt加密;字符串編碼等等暮芭,操作簡單鹿驼,只需要直接將文件拖放到源和目標(biāo)文件欲低。
將下載好的rar 包解壓縮以后目錄結(jié)構(gòu)如下(內(nèi)置的廣告被我刪除后的)
Tips:lib 目錄存放都是用java 寫的核心反編譯邏輯,必須跟exe 文件放在同一個目錄下蠢沿。
打開Android 逆向助手.exe伸头,如下圖所示:
選擇源文件匾效,并且選擇(也是默認(rèn)的選擇)反編譯apk舷蟀,我們找到mtxx.apk 的路徑,然后點(diǎn)擊操作面哼。
在mtxx.apk 目錄下生成了一個mtxx 文件夾野宜,打開該文件,目錄結(jié)構(gòu)如下圖所示:
在上面操作后打開lib 目錄可以找到美圖秀秀的動態(tài)庫文件魔策,但是我們還需要找到其java 代碼匈子。顯然
美圖秀秀用smali 算法反編譯了。那么我們接著下一步闯袒。
在Android 逆向助手.exe 中打開源文件虎敦,選擇提取dex 點(diǎn)擊執(zhí)行。
這時候在目標(biāo)文件夾下生成了dex 文件
最后在Android 逆向助手.exe 中選擇dex 轉(zhuǎn)jar 選項政敢。在源文件中選擇上一步生成的classes.dex 文件其徙,然后點(diǎn)擊執(zhí)行(這個過程大概需要幾秒的等待時間)。這時候該軟件會自動將我們生成的jar 文件用jd-gui工具打開喷户。打開效果如下所示:
2. jadx
jadx是新一代反編譯大殺器唾那,github地址。Android開發(fā)(/學(xué)習(xí))有時候需要用到反編譯工具褪尝,Window上有很多工具闹获,而Mac上則不多,這里稍微介紹一下Mac上可用的反編譯工具Jadx
2.1 準(zhǔn)備
clone 倉庫河哑,編譯
mkdir jadx
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist #這個需要稍微等待一下
開始反編譯避诽,等完畢后,可以開始了璃谨,我就介紹個最簡單最常用的用法
把a(bǔ)pk改成zip沙庐,解壓zip獲取class.dex文件,將class.dex文件放到j(luò)adx目錄下
cd build/jadx/
bin/jadx -d out class.dex # 反編譯后放入out文件夾下(如果out不存在它會自動創(chuàng)建)
#or
bin/jadx-gui class.dex # 會反編譯睬罗,并且使用gui打開
OK轨功,就這樣,后續(xù)還可以配置環(huán)境變量容达,更加方便
3. 更多反編譯工具
3.1 Classyshark
輕松查看apk內(nèi)部每個包的方法數(shù)古涧,用了哪些開源庫,同樣拿知乎開刀做例子
3.2 smalidea
smali代碼調(diào)試插件花盐,你以為沒有拿到安卓Java源碼就不能調(diào)試了嗎羡滑?圖樣圖森破了吧
3.3 IDA Pro
IDA Pro菇爪,逆向大利器,不管你是smali還是so文件柒昏,照樣動態(tài)調(diào)試你
3.4 Android Killer
下載地址1 下載地址2 使用指南
集Apk反編譯凳宙、Apk打包、Apk簽名职祷,編碼互轉(zhuǎn)氏涩, ADB通信(應(yīng)用安裝-卸載-運(yùn)行-設(shè)備文件管理)等特色功能于一 身,支持logcat日志輸出有梆,語法高亮是尖, 基于關(guān)鍵字(支持單行代碼或多行代碼段)項目內(nèi)搜索, 可自定義外部工具泥耀;吸收融匯多種工具功能與特點(diǎn)饺汹, 打造一站 式逆向工具操作體驗,大大簡化了用戶在 安卓應(yīng)用/游戲修改過程中的各類繁瑣工作痰催。
3.5 SmaliViewer
下載地址 使用指南
是一款免費(fèi)的APK分析軟件兜辞,無論從分析的深度還是廣度來看,都是一款能夠滿足用戶需求的產(chǎn)品夸溶,使您在APK分析的過程中逸吵,更加得心應(yīng)手。
3.6Enjarify
Enjarify 是一個用 Python 寫的蜘醋, Google 官方開源的可以將 Dalvik 字節(jié)碼轉(zhuǎn)換為 Java 字節(jié)碼的工具