1.启动调试服务
2023-06-13 09:15:14 时间
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可以修改内存的值
相关文章
- pycharm调试远程主机_服务终端
- arm程序如何调试_arm开发板用什么语言
- 展锐UDX710:LAN7800 PHY驱动调试
- WordPress网站防扒代码-禁止F12调试教程
- HTTPS调试中自签名证书错误ERR_CERT_COMMON_NAME_INVALID的解决方法
- 免越狱调试与分析黑盒iOS应用
- 嵌入式Linux的GDB调试环境搭建
- 让Linux程序调试更轻松:实用调试技巧(linux程序调试方法)
- 深入Oracle数据库:调试存储过程(调试oracle存储过程)
- 深入Linux内核:构建与调试源码(linux源码调试)
- 简单就是易于调试
- Oracle单步调试教程:轻松掌握调试技巧。(oracle单步调试)
- Linux进程调试实践经验(linux进程调试)
- Linux C语言程序调试:必要而有效.(linux c 代码调试)