天天看點

反編譯初識

系統mac  

編譯器eclipse

工具首先下載下傳安裝 apktool和 jadx

在沒有代碼混淆的情況下

反編譯步驟:

1:通過apktool得到res

将xx.apk複制到apktool同級目錄下 

執行./apktool d xx.apk

得到同名檔案夾

2:通過jadx得到src源碼

通過jadx-gui 輕按兩下得到源檔案

3:建立android項目工程

4:将建立的項目裡面res替換為第一步中得到的res

5:将建立項目中manifest替換為第一步中得到的manifest

6:将建立項目中src替換為第二部中得到的java源檔案

7:導入依賴包 删除重複檔案

這樣一個apk就通過反編譯 合成了一個新的應用

遇到的錯誤:

07-30 11:49:25.882: D/AndroidRuntime(1410): Shutting down VM

07-30 11:49:25.990: E/AndroidRuntime(1410): FATAL EXCEPTION: main

07-30 11:49:25.990: E/AndroidRuntime(1410): Process: com.brosmike.airpushdetector, PID: 1410

07-30 11:49:25.990: E/AndroidRuntime(1410): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.brosmike.airpushdetector/com.brosmike.airpushdetector.DetectorActivity}: java.lang.ClassNotFoundException: Didn't find class "xxxxxxxx" on path: DexPathList[[zip file "/data/app/XXXXXX-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

07-30 11:49:25.990: E/AndroidRuntime(1410): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

錯誤解決請參考:點選打開連結

我遇到這個問題的原因是因為我的support-v4-jar引入出現錯誤,我一開始放到/bin目錄下

後來改放倒/libs目錄下就好了