edb-debugger
edb是一个跨平台的x86 / x86-64调试器。它受到了Ollydbg的启发,但是目标是在x86和x86-64以及多个操作系统上运行。Linux是目前唯一官方支持的平台,但FreeBSD,OpenBSD,OSX和Windows端口正在进行不同程度的功能。
EDB操作基础知识:首先点击运行,这时程序会运行前面的初始化函数到main,此时可以开始单步调试。
step into:执行代码,如果是函数则进入。
step over:执行代码,如果是函数会执行然后跳过
step out:如果没有断点会直接跳到函数的ret指令处。
F2调用右键的Toggle BreakPoint设置断点, 当然右键也有Conditionnal BreakPoint 条件断点的选择,对应Shift+F2。
Rigisters和Stack窗口可以分别查看运行处寄存器和栈的值。Data Dump可以查看内存区域的值,这一块内存区域应该是伴随程序分配的内存区域。三个窗口呈现的形式都是左边是二进制,右边是字符串,如果真的存储的是字符串类型,那么我们可以通过右边直接看到,比较方便。
如果想要查看程序不同段的内存,可以通过View->Memory Regions查看。
无论是Registers还是Stack都可以右键直接设定二进制的值,这个特性可以用来进行程序的调试工作。
Ctrl+F调用Plugin中的BinarySearcher可以直接搜索内存区域中的字符串。
选定一行,Ctrl+*调用邮件的set EIP to this instruction,跳过前面的代码直接运行到当前行。
下载
https://github.com/eteran/edb-debugger
加群与永恒之锋逆向组讨论工具相关使用问题