這次剛好有項目需要查找APK反編譯後的java code是否有關鍵字(Key),本來想寫一個爬蟲的,但是剛好有好用的反編譯+搜尋工具,那就拿來用吧!順便分享給大家XD
強大的搜尋功能
藉由快捷鍵ctrl + shift + F 即可開啟搜尋框,輸入關鍵字後可選取選項為class、Method、field、Code。
直接搜尋關鍵程式碼
如果是在程式碼中想要追蹤此關鍵字還出現在哪裡,也可以『選取程式碼』->『右鍵點選』->『Find Usage』,jadx會自動搜尋所有code中有出現此關鍵字的程式碼,並可以點兩下顯示。
反混淆(deobfuscation)
一般在APK發布前,撰寫者都會用工具將APK做混淆,讓其他人對反編譯形成難度,而jadx會使相同的名字前面加入特殊符號,使其在code中為唯一名稱來區分。ex:a -> p00a
此功能可於Tools -> deobfuscation 中啟動。
匯出成Gradle專案
雖然jadx可以圖形化介面觀看程式碼,但是如果不喜歡其介面要使用常用的編譯器,可以匯出為Gradle,其檔案可以直接用Android Studio打開。
可以通過File -> Save as gradle project 來存檔。
反編譯不完整
有時候APK反編譯java程式碼不完整時,會出現inconsistent code 標誌的錯誤,為了解決這個錯誤,可開啟show inconsistent code。
可以通過File -> Preferences -> 勾選inconsistent code
卡頓或卡死
有些APK檔案大小較大,所以反編譯時需要比較長的時間或是失敗,有幾個辦法可以解決!