windbg操作内存

225 阅读1分钟

摘要

在调试程序时,针对出现问题的函数,如果可以知道函数的输入变量可以加速我们分析问题,毕竟在代码逻辑一定时,如果函数出现问题,一定是函数的输入参数导致的。 同时,在运行环境下,修改输入参数的值,也能够辅助分析问题 当然从根本上来说,还是函数的兼容性做的不足,比如对于指针未判空,或者由于错误的返回值,通过nullptr构造std::string等。

查看内存数据的命令

  • 查看结构体
    • dt xx //xx为内存地址,下同
  • 查看一字节
    • db xx
  • 查看两个字节
    • dw xx
  • 查看四字节
    • dd xx
  • 查看八字节
    • dq xx
  • 查看double八字节
    • dD xx
  • 查看float四字节
    • df xx
  • 查看ascii
    • da xx
  • 查看单字节字符
    • dc xx
  • 查看Unicode
    • du xx
  • 查看ANI_STRING
    • ds xx
  • 查看UNICODE_STRING
    • dS xx

重写内存的值

  • 写入一个字节的数据
    • eb Address Value
  • 写入两个字节的数据
    • ew Address Value
  • 写入四个字节的数据
    • ed Address Value
  • 写入八个字节的数据
    • eq Address Value

示例

操作内存.jpg