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可以修改内存的值

原文地址:http://www.cnblogs.com/pythonywy/p/16862236.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性