安卓so ida動態調試

1.啓動調試服務

將ida中Android_Server移動到手機中(ida所在目錄dbgsrv文件中)

db push android_Server /data/local/tmp/as

adb shell   
su
cd /data/local/tmp
ls -l
chmod 777 as

./as -p23456   #隨意端口號
adb forward tcp:23456 tcp:23456   #端口轉發到電腦

2.查看調試app包名

#運行需要調試的app
# windows 
#adb shell dumpsys window w |findstr \/ |findstr name=

#mac 
#adb shell dumpsys window w |grep \/ |grep name=   

#例如
mAnimationIsEntrance=true      mSurface=Surface(name=NavigationBar)/@0x69e619c
mAnimationIsEntrance=true      mSurface=Surface(name=StatusBar)/@0xbcd3aaf
    mAnimationIsEntrance=true      mSurface=Surface(name=com.ss.android.ugc.aweme/com.ss.android.ugc.aweme.splash.SplashActivity)/@0xb681146
  mSurface=Surface(name=com.ss.android.ugc.aweme/com.ss.android.ugc.aweme.splash.SplashActivity)/@0x63b4834
  mSurface=Surface(name=com.breel.wallpapers.dioramas.lagos.LagosWallpaperService)/@0x2031e

3.已debug狀態啓動app

adb shell am start -D -n 包名/啓動類
#例如
adb shell am start -D -n com.ss.android.ugc.aweme/com.ss.android.ugc.aweme.splash.SplashActivity

4.IDAdebug連接

1.環境配置

Debugger>Process options

中配置好上一步設置好的調試ip:127.0.0.1 端口23456

Debugger>Attach to Process,

然後 Attach to Process,從彈出的窗口中選擇com.ss.android.ugc.aweme

5.相關快捷鍵

1. F2下斷點
2. F7進入函數,F8單步調試,F9跳到下一個斷點,F2下斷點,G調到函數地址
3. N重名
4. g跳到地址和函數名
5. u取消把函數彙編變成機器碼
6. c就是把機器碼變成彙編
7. F5
8. p分析函數,把機器碼那些東西翻譯成函數
9. ctrl+s看見系統所有的模塊
10. ctrl+f搜索
11. 單步調試注意右上角,寄存器變藍色表示被改了
12. otions->number of opcode bytes可以查看機器碼,填入4一行看4個機器碼
13. 在hex view-1按F2可以修改機器碼,再次按F2確定修改
14. alt+g看是thumb還是arm指令
15. 在函數名上按X可以看見上層調用
16. 在f5僞c/c++代碼的情況下,註釋是/,彙編情況下注釋是;
17. f4移動到光標處
18. 在寄存器窗口按E可以修改寄存器的值
19. 在內存窗口f2可以修改內存的值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章