Android逆向工具

Android逆向

Android逆向工具思維導圖下載

環境配置

1、寫在前面

  • java

    • smali
  • c++

    • arm

2、Android開發環境

  • JDK1.8

    • JAVA_HOME

      • JDK安裝路徑
    • CLASSPATH

      • .;%JAVA_HOME/lib/dt.jar;%JAVA_HOME/lib/tools.jar
    • PATH

      • %JAVA_HOME/bin;%JAVA_HOME/jre/bin
  • Android Studio

    • SDK

      • PATH

        • AndroidSDK\platform;AndroidSDK\tools
    • NDK

      • Android Studio下載

3、安卓模擬器

4、一臺調試手機

  • Google親兒子
  • 或者root手機

反編譯

Smali

  • 字段信息(.—>/)

Android Killer

  • java----->classes.dex

  • res------>

    • res
    • resources.arsc
  • AndroidManifest.xml

    • AndroidManifest.xml

調試方法

  • (老方法:修改源程序)

    • 工具:

      • Apktool

        • java -jar apktool d -d #.apk -o dir

          • d(反編譯)
          • b(回編譯)
          • -d(使用debug模式)
          • -o(輸出文件夾)
      • ShakaApktoo

        • java -jar shakaapktool.jar d -df #.apk -o dir

          • d(反編譯)
          • b(回編譯)
          • -df(使用框架資源文件)解決api版本問題
          • -o(輸出文件夾)
    • Android.mainfest文件application標籤中插入

      • android:debuggable=“true”
    • 在入口點的類中onCreate方法中添加

      • invoke-static{},Landroid/os/Debug=>waitForDebugger()V
    • 反編譯修改過的apk文件

      • java -jar apktool.jar b -d dir -o #.apk

        • b(會回編譯)
    • 手動對apk文件進行簽名

      • java -jar signapk.jar testkey.x509.pem testkey.pk8 未簽名apk 生成簽名apk
    • adb install #.apk

    • 導入apk代碼

      • 1、Android打開反編譯後的文件夾
      • 2、找到入口onCreate函數設置斷點(invoke-static{},Landroid/os/Debug=>waitForDebugger()V)下一行設置
      • 3、開啓遠程調試(run–>edit–>±->Remote(遠程)–>localhost,8700)
      • 4、tools–>Android–>Android Device Monitor(SDK/tools/monitor.bat)
    • 注意:

      • Android Killer配置自動代碼輔助
  • (新方法)

    • 反編譯

      • Android Killer
      • apktool
      • apktool
      • jadx
      • 解壓單個dex2
    • Android Studio/IDEA打開反編譯文件夾

    • 配置遠程調試模式

      • Remote(local,8700)
      • Monitor
    • 使用adb以debug方式啓動apk

      • adb install #.apk

      • adb shell am start -D -n packageName/ActivityName

        • packageName:

          • AndroidManifest.xml
        • ActivityName:

          • AndroidManifest.xml(android:name)
    • 下好斷點

    • 對關注的寄存器添加watch

  • 注意:

    • smali文件修改:

      • 1、跳轉修改
      • 2、添加log
      • 3、手動修改調用類中的方法

Android Monitor

AndroidSDK中提供的一款全面監控Android系統應用,功能非常強大,無論是做開發還是做破解都是無法離開這款工具的

Monitor日誌過濾(老版本)

Android Studio日誌過濾(新版本)

JD-GUI

把smali自動變換位java代碼的工具,免費的,並且反編譯結果較爲準確,方便平時查看用,對於一些小型apk軟件很好用

JEB

一個大型的smail代碼反編譯工具,需要購買,價格較貴,相對來說功能比較強大,反編譯結果相對於上面那個的來說要更加準確,當然,對主機要求較高

基本操作:

  • 1、重名名
  • 2、跟蹤
  • 3、返回

1、插件幫助文件

  • jeb/doc/apidoc

2、插件編寫

  • 語言

    • java
    • python

去除應用廣告

1、抓包

  • Charls
  • Fiddler

Android dx工具

AndroidSDK/build-tools/version/dx.bat

dx --dex --output=輸出dex路徑 jar文件路徑

dx --dex --output=/dir/#.dex /dir/#.jar

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章