Re:从零开始的逆向生活03day

IDA动态调试

调试进程

程序运行过程中会生成一些关键的数值,而人力分析这些数值可能很麻烦。所以我们可以让程序运行起来,得到中间过程的数值,这就是动态调试。核心是调试器捕获所选择进程的内存快照,以此创建一个临时数据库。

点击Debugger-->Select Debugger或按F9,EXE文件一般使用Local Windows Debugger

(可能会出现小问题,属于是IDA7.0版本问题,遇到了搜搜)

debugger菜单以新的形式展开,点击带有绿色三角符号的“Start process”或按F9即可开始调试程序

选择yes,进入了调试器界面(包括命令行窗口)

调试器界面与指令

在这里点击f5,可以进入伪代码调试。下面的“hex view”顾名思义,右边从上到下分别是级寄存器/标志寄存,加载到进程内存空间中的可执行文件和共享库(双击模块名称可打开该模块输出的符号表)再向下是栈窗口

Pause 暂停一个正在运行的进程

Terminate  终止一个正在运行的进程

F4          Run to  Cursor 执行进程,直到执行到达当前的光标位置

F7          Step into 执行下一条指令,如果下一条是函数调用,就进入函数第一条

F8          Step over 执行下一条指令 如果下一条是一个函数调用,会跨过

F9          Continue 继续执行一个暂停的进程。执行将继续,直到遇到一个断点暂停

Ctrl+F7  Run Until Return 执行当前函数到返回

断点

IDA调试器支持软件断点和硬件断点

软件断点:软件断点是通过修改程序指令进行实现的。在软件断点设置的位置上,调试器会将指令替换为特殊的中断指令,当程序执行到这个位置时,触发中断,使得程序暂停执行。

硬件断点:硬件断点则是通过处理器内部的调试功能实现的。处理器提供了一些专门的调试寄存器,可以设置断点的地址和触发条件。当程序执行到设定的断点位置时,处理器会自动触发中断,使得程序暂停执行。

按F2或点击代码前圆圆的标志设置软件断点

 点击Add breakpoint设置硬件断点,再点击Edit breakpoint(原位置)

location栏是断点地址,condition栏则是条件断点的表达式

选Hareware,按照需求选择读写或者执行断点

监视

可以持续监视一个或几个变量的值,不需要每次进程暂停后导航到相关内存的位置。需要监视的数据一般在栈或者数据块中,如果需要删除,则按Delete

注:ida还支持另一种调试方式,即将目标文件附加到一个正在运行的进程上,以调试某些无法独立运行的文件,点击Attach to process后即可选择附加进程

参考资料:ida使用技巧之动态调试_ida动态调试_parafish_0的博客-CSDN博客

                  IDA基本使用_ida显示机器码_烨鹰的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值