Android逆向動態調試

動態調試

Android逆向動態調試思維導圖下載

反編譯:

Android Killer反編譯apk,複製出smali文件夾

更名smali文件夾爲src文件夾,並外套##文件夾

AS配置:

Android Studio打開##文件夾,選中Project

Run:

  • Edit Configuration

    • 添加Remote,並配置:

      • Smali
      • Host:localhost
      • Port:8700(默認)

右鍵##文件加,Mark Directory As,Source Root

IDEA調試:

首次調試:

  • 關鍵地方設置斷點

  • 模擬器先打開需要調試apk,再打開DDMS,設置8700到相應進程,端口轉發前關閉DDMS

  • apk設置填寫登陸信息

  • 以調試模式啓動:

    • adb shell am start -D -n com.gewara/com.gewara.main.CoverActivity

      • com.gewara
      • com.gewara.main.CoverActivity
  • 進行端口轉發:

    • adb forward tcp:8700 jdwp:2565

      • 2565
  • Debug ‘Smali’

調試命令(從左往右):

  • Show Execution Point (Alt + F10):如果你的光標在其它行或其它頁面,點擊這個按鈕可跳轉到當前代碼執行的行

  • Step Over (F8):步過,一行一行地往下走,如果這一行上有方法不會進入方法

  • Step Into (F7):步入,如果當前行有方法,可以進入方法內部,一般用於進入自定義方法內,不會進入官方類庫的方法

  • Force Step Into (Alt + Shift + F7):強制步入,能進入任何方法,查看底層源碼的時候可以用這個進入官方類庫的方法

  • Step Out (Shift + F8):步出,從步入的方法內退出到方法調用處,此時方法已執行完畢,只是還沒有完成賦值

  • Drop Frame (默認無):回退斷點

  • Run to Cursor (Alt + F9):運行到光標處,你可以將光標定位到你需要查看的那一行,然後使用這個功能,代碼會運行至光標行,而不需要打斷點

  • Evaluate Expression (Alt + F8):計算表達式

調試命令(從上往下):

  • Rerun ‘xxxx’:重新運行程序,會關閉服務後重新啓動程序

  • Update ‘tech’ application (Ctrl + F5):更新程序,一般在你的代碼有改動後可執行這個功能。而這個功能對應的操作則是在服務配置裏

  • Resume Program (F9):恢復程序,比如,你在第20行和25行有兩個斷點,當前運行至第20行,按F9,則運行到下一個斷點(即第25行),再按F9,則運行完整個流程,因爲後面已經沒有斷點了

  • Pause Program:暫停程序,啓用Debug

  • Stop ‘xxx’ (Ctrl + F2):連續按兩下,關閉程序。有時候你會發現關閉服務再啓動時,報端口被佔用,這是因爲沒完全關閉服務的原因,你就需要查殺所有JVM進程了

  • View Breakpoints (Ctrl + Shift + F8):查看所有斷點

  • Mute Breakpoints:啞的斷點,選擇這個後,所有斷點變爲灰色,斷點失效,按F9則可以直接運行完程序

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