自己在上网搜edb的操作姿势的时候发现这方面的资料有点少,下面总结一下自己摸索出来的edb操作姿势:
- 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,跳过前面的代码直接运行到当前行。
了解以上知识之后,简单使用edb运行程序应该不成问题。