1. 程式人生 > >反編譯進階之路

反編譯進階之路

前言:本章所講的主要是工具的介紹,雖然起到主要作用的是人,但一款好的工具其實是可以幫助開發者更快的分析出結果的。

本章介紹三個工具:

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效果:

今天就先介紹到這裡