edb-debugger 使用教程
项目介绍
edb-debugger(Evan's Debugger)是一个跨平台的图形化调试器和反汇编器,支持AArch32、x86和x86-64架构。它受到Ollydbg的启发,旨在在x86和x86-64架构以及多个操作系统上运行。目前,Linux是唯一官方支持的平台,但FreeBSD、OpenBSD、OSX和Windows的移植工作正在进行中,具有不同程度的功能性。
项目快速启动
安装
在Kali Linux上,可以使用以下命令安装edb-debugger:
sudo apt install edb-debugger
基本使用
-
生成符号映射文件
edb --symbols /lib/libc.so.6 > libc.so.6.map
-
在调试器中打开程序
edb --run /bin/ls
-
附加到正在运行的进程
edb --attach 1720
应用案例和最佳实践
案例1:调试动态链接库
假设你需要调试一个动态链接库(例如/lib/libc.so.6
),你可以生成符号映射文件并使用这些文件进行调试:
edb --symbols /lib/libc.so.6 > libc.so.6.map
edb --run /bin/ls
案例2:附加到现有进程
如果你需要调试一个已经运行的进程,可以使用--attach
选项:
edb --attach 1720
最佳实践
- 符号映射文件:在调试大型项目时,生成符号映射文件可以显著提高调试效率。
- 定期更新:由于edb-debugger是一个活跃的开源项目,定期更新到最新版本可以获得最新的功能和修复。
典型生态项目
1. capstone 反汇编库
edb-debugger使用capstone反汇编库来处理反汇编任务。capstone是一个轻量级、多平台的反汇编库,支持多种架构。
2. ptrace API
edb-debugger基于ptrace API实现进程调试功能。ptrace是一个Linux系统调用,允许一个进程控制另一个进程的执行。
3. Qt 图形库
edb-debugger使用Qt图形库来实现其图形用户界面。Qt是一个跨平台的C++图形用户界面应用程序开发框架。
通过这些生态项目的协同工作,edb-debugger能够提供强大的调试和反汇编功能。