Android Apk反編譯系列教程(一)如何反編譯APK

教程導航

背景

在作競品分析的時候,須要對競品apk進行反編譯分析競品功能實現方法。java

APK反編譯工具對比分析

apktool

  • 項目地址:ibotpeaches.github.io/Apktool/doc…
  • 優勢
    • 可對apk進行反編譯和編譯,apk重打包須要依賴此工具
  • 缺點
    • 反編譯的代碼須要藉助對應的工具才能閱讀

bytecode-viewer

  • 項目地址:github.com/Konloch/byt…
  • 優勢:
    • 集成了apktool,jd-gui等
    • 支持多種smali代碼的反編譯器
    • 支持smali代碼和java代碼對照分析
  • 缺點
    • 每次查看都須要從新反編譯
    • 搜索很是難用

jadx

  • 項目地址:github.com/skylot/jadx
  • 優勢:可將apk直接導出爲gradle項目
  • 缺點:同bytecode-viewer (1)將apk導出爲gradle項目
    (2)在AS中對導出的工程進行分析

工具推薦

上述工具各有優劣,在對應的場景選擇最合適的工具才能達到最高的效率。下面針對不一樣的場景,推薦其對應的工具git

(1)apk編譯和反編譯:apktoolgithub

(2)smali代碼分析:bytecode-viewermarkdown

(3)java代碼分析:jadx gradle項目導出+AS代碼分析工具

  • 一次導出,永久分析,不用每次都從新反編譯
相關文章
相關標籤/搜索