格蠹汇编阅读理解

一、调试工具使用方式

  1. WinDbg常用命令:
  • 执行 lm 命令,可以看到进程中有几个模块。
  • 执行~命令列一下线程。
  • 用!heap 命令列一下堆。
  • 执行!address 命令可以列出用户态空间中的所有区域。
  • 搜索吧!就从当前进程用户态空间的较低地址开始搜,找文章里的一句有特色的话:0:045> s -u 10000 L80000 “当年在交大”, 前几次尝试,什么都没找到,看来要扩大搜索范围:0:045> s -u 10000 L8000000 “当年在交大” ,延迟一刹那后,“刷刷”地出来很多结果。搜到了!这让人很高兴,说明数据还在内存里。
    在这里插入图片描述
    但是仔细看看搜索的结果后,又有点怀疑。因为 WinDbg 不支持中文显示,所以有点不确认上面搜到的信息。为了确认,执行 r 命令,观察 ESP 寄存器的值:0:043> r esp ,esp=02c9ffcc 。然后使用内存编辑命令在栈上输入上面的中文字符,再用内存观察命令查看,证实上面搜索到的结果是对的,5f53 就是“当”字的编码,4ea4 5927 就是“交大”。
    在这里插入图片描述
  • 接下来的目标是将数据从内存堆保存到文件,WinDbg 已经帮我们准备好了一条命令:0:045> .writemem c:\dumps\blog.txt 07288600 L2000。
  • WinDbg –I可以将windbg设置为及时调试器,这样当Windwos下应用程序core以后可以立刻拉起来WinDbg分析问题。
  • 在您提到的.frame /c c命令中,/c选项用于指定使用C调用的上下文,而c则表示当前帧。因此,这个命令的意思是切换到当前帧,并使用C调用的上下文来解释局部变量。这对于调试C语言程序非常有用,因为它允许您在C调用的上下文中查看和操作局部变量。
  • lm vm urlmon命令可以查看指定的模块名称的详细信息。
  • kn 100查看当前线程的最高100层栈帧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值