eDBG调试器命令速查手册所有命令参数与使用示例【免费下载链接】eDBGeBPF-based lightweight debugger for Android with MCP support项目地址: https://gitcode.com/gh_mirrors/edb/eDBGeDBG是一款基于eBPF的轻量级Android调试器具有强大的抗反调试能力。本速查手册将详细介绍eDBG的所有命令参数和使用方法帮助开发者快速掌握这款高效的调试工具。无论是Android应用逆向分析还是安全研究eDBG都能提供稳定可靠的调试体验。 快速入门与启动参数eDBG的启动命令非常灵活支持多种参数配置。以下是最常用的启动方式./eDBG -p com.example.app -l libtarget.so -b 0x1234,0x5678启动参数详解参数说明示例-p目标应用包名-p com.example.app-l目标动态库名称-l libtarget.so-b初始断点偏移列表逗号分隔-b 0x1234,0x5678-t线程名称过滤器逗号分隔-t Thread-1,Thread-2-i使用配置文件-i config.json-s保存进度到使用的配置文件-s-o保存进度到指定文件名-o save.json-hide-register禁用寄存器信息输出-hide-register-hide-disassemble禁用反汇编代码输出-hide-disassemble-preferuprobe或hardware断点类型-prefer hardware-disable-color禁用彩色输出-disable-color-mcp启动MCP服务模式-mcp-mcp-portMCP服务监听端口-mcp-port 19810 核心调试命令断点管理命令eDBG支持多种断点设置方式满足不同调试场景的需求软件断点设置b 0x1234 # 相对动态库的偏移 b libexample.so0x1234 # 库名偏移 b $1 # 当前位置1条指令硬件断点与监控点hbreak 0x1234 # 硬件断点最多4个 watch 0x1234 # 写监控断点 rwatch 0x1234 # 读监控断点断点管理info b # 查看所有断点状态 enable 1 # 启用第1个断点 disable 2 # 禁用第2个断点 delete 3 # 删除第3个断点执行控制命令控制程序执行的流程实现精确的调试控制c # 继续执行到下一个断点 s # 单步步入进入函数 n # 单步步过跳过函数 fi # 执行到函数返回 u 0x1234 # 运行到指定地址内存查看与操作eDBG提供了强大的内存查看和操作功能查看内存内容x 0x12345678 # 查看指定地址内存默认16字节 x 0x12345678 128 # 查看指定地址128字节 x SP128 # 查看SP寄存器偏移128字节 x X10x58 # 查看X1寄存器偏移0x58字节内存操作命令dump 0x12345678 1024 mem.bin # 转储内存到文件 write 0x12345678 62626262 # 向内存写入数据 display 0x12345678 32 # 持续显示内存区域 undisplay 1 # 取消显示第1个监控 信息查看命令寄存器与线程信息info reg # 查看所有寄存器 info r # 查看所有寄存器简写 info t # 查看线程信息 info f libexample.so # 查看文件地址和偏移反汇编与代码查看l # 查看当前PC位置10条指令 l 0x1234 # 查看指定地址10条指令 l 0x1234 20 # 查看指定地址20条指令 dis # 反汇编当前指令调用栈分析bt # 查看完整调用栈 bt1 # 查看当前栈帧 线程管理命令eDBG支持灵活的线程过滤和管理t # 列出所有可用线程 t 0 # 在第0个线程上增加过滤器 t - 0 # 取消第0个线程过滤器 t all # 删除所有线程过滤器 t n ThreadName # 增加线程名称过滤器 高级功能命令符号与地址管理set 0x12345678 func_entry # 为地址设置符号名称虚拟偏移断点vb 0x1234 # 设置虚拟偏移断点虚拟偏移断点与IDA中显示的偏移相同其他命令默认使用文件偏移。 实用技巧与最佳实践1. 调试会话管理启动调试会话./eDBG -p com.target.app -l libtarget.so -b 0x1000 -t MainThread保存调试进度# 启动时保存配置 ./eDBG -p com.target.app -l libtarget.so -b 0x1000 -s # 或指定保存文件 ./eDBG -p com.target.app -l libtarget.so -b 0x1000 -o my_session.json2. 高效调试流程设置初始断点使用-b参数在关键位置设置断点启动程序手动运行目标应用断点触发程序在断点处暂停单步调试使用s或n进行单步跟踪内存分析使用x命令查看内存状态继续执行使用c继续到下一个断点3. 内存监控技巧# 设置内存监控 display 0x12345678 64 important_var # 每次断点触发时自动显示 # 监控变量变化⚠️ 重要注意事项必须使用-b参数eDBG不能随时暂停程序必须在启动时设置初始断点断点限制最多支持20个启用的断点硬件断点限制最多支持4个硬件断点命令执行时机只有在断点触发、程序停止后才能执行命令系统库调试调试系统库如libc.so、libart.so时可能较卡顿 进阶配置选项性能优化配置# 禁用不必要输出提升性能 ./eDBG -p com.target.app -l libtarget.so -b 0x1000 -hide-register -hide-disassemble # 优先使用硬件断点 ./eDBG -p com.target.app -l libtarget.so -b 0x1000 -prefer hardwareMCP模式配置# 启动MCP服务 ./eDBG -p com.target.app -l libtarget.so -b 0x1000 -mcp -mcp-port 19810 # 通过adb转发端口 adb forward tcp:19810 tcp:19810 配置文件结构eDBG支持JSON格式的配置文件可以通过-i参数加载{ ConfigVersion: 1, packagename: com.example.app, libname: libtarget.so, hidereg: false, hidedis: false, brk: [ { brklib: libtarget.so, offset: 4096, enable: true } ], tname: [Thread-1, Thread-2] } 故障排除常见问题解决断点不触发检查包名和库名是否正确确认偏移地址有效验证程序是否已运行命令无响应确保程序在断点处暂停检查线程过滤器设置内存访问失败确认地址可读/可写检查进程权限 命令速查表命令类别命令别名功能描述断点管理breakb设置软件断点断点管理vbreakvb设置虚拟偏移断点断点管理hbreakhb设置硬件断点断点管理watch-设置写监控点断点管理rwatch-设置读监控点执行控制continuec继续执行执行控制steps单步步入执行控制nextn单步步过执行控制finishfi执行到函数返回执行控制untilu运行到指定地址内存操作examinex查看内存内存操作dump-转储内存到文件内存操作writew写入内存内存操作displaydisp持续显示内存信息查看infoi查看调试信息信息查看listl, dis查看反汇编信息查看backtracebt查看调用栈线程管理threadt管理线程过滤器符号管理set-设置地址符号系统命令quitq退出调试器 结语eDBG作为一款基于eBPF的轻量级Android调试器提供了强大而灵活的调试功能。通过本速查手册您可以快速掌握所有命令的使用方法提高逆向分析和调试效率。无论是基础的断点设置还是高级的内存分析eDBG都能满足您的调试需求。记住调试是一个迭代的过程熟练掌握这些命令将帮助您更快地定位和解决问题。祝您调试愉快【免费下载链接】eDBGeBPF-based lightweight debugger for Android with MCP support项目地址: https://gitcode.com/gh_mirrors/edb/eDBG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考