软件断点
int 3
指令,8086 引入,软件断点的基础
机器码为1字节,即 0xCC,没有数量限制
缺陷:属于代码类断点,即可以让CPU执行到代码段内的某个地址停下来,不适用于数据段和I/O空间
对于ROM(只读寄存器)中的程序(比如BIOS或其它固件程序),无法动态增加软件断点,因为目标内存是只读的无法动态写入断点指令
使用 windbg 打开可执行程序,这里用的是扫雷x ntdll!*readfile*
找一下ntdll 里面的 readfile 函数再通过 u 地址
看一下汇编代码
这时候是 mov eax,3 ...
bp 地址
下个断点,bl
查看断点列表
go
运行起来会断住(不知道为啥写的是 Breakpoint 0 hit)
然后 go
一下再次运行起来,这时候再去 u 76f1f8e0
还是 mov eax,3
如果想观察到 int 3 这样的指令可以再打开一个 windbg,通过非侵入式的方式来附加扫雷的进程
再去 u 76f1f8e0