反編譯進階之路
前言:本章所講的主要是工具的介紹,雖然起到主要作用的是人,但一款好的工具其實是可以幫助開發者更快的分析出結果的。
本章介紹三個工具:
1.入門級反編譯工具:Apktool、dextojar,當初看過這個工具的開源介紹,而且用這種技術做過熱更新的差分工作,但不得不承認,這個工具用起來還是有很多不方便的。
2.初級反編譯工具:jadx,這個工具是無意中發現的,比apktool要方便一些,不僅能解析jar包,還可以直接把apk,dex,aar拖進去直接檢視,還可以搜尋,還是很方便的。
3.高階反編譯工具:jeb,這個工具的安裝和使用都比前兩個複雜,而是是需要收費的(建議大家都使用正版)
安裝包下載位置:(沒有放資源的地方,沒有積分的,可以直接留言郵箱地址,我直接給你們發過去)
安裝包:下載 jeb 2.2.7版本
執行環境需要配置是:java version "1.8.0_121" 以下,也有人說還有個1.8.0_50以上的限制,我沒有嘗試。
注意這個java版本是root下的java版本,只配置user的java版本是不可以的,
我修改的是/etc/profile檔案
一開始修改的是~/.bash_profile發現只能改當前使用者的java版本,還是會發生閃退,增加以下資訊
安裝步驟一:檢視java版本,如果高於121版本,需要修改如下配置。
安裝步驟二:進入安裝包目錄,直接執行./jeb_macos.sh
這裡就會安裝一些安裝包,在bin目錄下
步驟三:直接執行./jeb_macos.sh啟動jeb
大概長的就這個樣子
使用步驟一:檢視程式碼,雙擊Bytecode
可以在右邊視窗中看到所有的包名和類
使用步驟二:看AndroidManifest,雙擊Manifest
可以在右邊看到AndroidManifest資訊
使用步驟三:檢視資原始檔,點選Resources下的資源
可以在右邊看到對應的佈局檔案
使用步驟四:可以直接檢視證書資訊,點選Certificate
使用步驟五:雙擊Libraries下面的so檔案,可以和IDA Pro反編譯so有相同的效果
使用步驟六:動態除錯Apk,這個我也在研究階段,就先不介紹了
對比效果:
下面我們隨機選取一個apk對比一下反編譯效果。
同樣是以TestActivity為例:
jadx效果:
jeb效果:
今天就先介紹到這裡