【发布时间】:2015-06-08 21:35:50
【问题描述】:
我无法使用 windbg 设置 4 字节读/写访问硬件断点。
0:000> dd 02e80dcf
02e80dcf 13121110 17161514 1a191800 1e1d1c1b
02e80ddf 011c171f c7be7df1 00000066 4e454900
实际上,我必须检查值 0x13121110(地址 0x02e80dcf)何时被程序更改/覆盖。
所以当我尝试设置一个 4 字节写访问硬件断点 @ 0x02e80dcf 时,我得到 Data breakpoint must bealigned 错误。
0:000> ba w 4 02e80dcf
Data breakpoint must be aligned
^ Syntax error in 'ba w 4 02e80dcf'
0:000> ba r 4 02e80dcf
Data breakpoint must be aligned
^ Syntax error in 'ba r 4 02e80dcf'
0:000> ba w 1 02e80dcf
breakpoint 0 redefined
我可以在地址处设置 1 字节的写访问断点,但是当指针@地址 0x02e80dcf 被覆盖时它不会被触发。
如果有人能提出任何其他方法来检测地址被覆盖的东西,那将非常有帮助。
注意:我在特定程序中面临的问题。我可以在同一个调试环境中设置 4 字节的硬件断点。
【问题讨论】:
-
你有一个 C++ 标签。 C++代码在哪里?我看到的只是与 WinDbg 的对话。
-
SO 建议的。
标签: c++ debugging reverse-engineering windbg