第一章 从堆里抢救丢失的博客
讲述内容:如何在内存中搜索数据
使用命令: lm 列出进程使用的模块
~ 列出该进程的所有线程
!heap 列出堆信息
!address 列出用户态空间所有区域 这个命令显示内容似乎随着版本不同有所变化,我所使用的6.2.9200显示的格式就与书中的不太一样。而且汇总功能需要加参数-summary。
s -u 10000 L8000000 "当年在交大" s 搜索内存命令 -u 指定搜索类型为Unicode字符串 10000 搜索的起始地址,16进制。使用这个地址可能是因为在这个例子中,10000以前的地址都没有使用(free)。 L8000000 搜索的范围,16进制。需要注意的是它的单位是根据搜索的对象类型而变化,可以是字节、字、双字、四字。在本例中由于使用Unicode类型(似乎是使用UTF-16),长度为2个字节,所以实际范围是8000000x2=256MB。
ew 02c9ffcc eb 001b5942-8 ff fe e命令为内存编辑命令。 eb 按字节写入 001b5942-8 写入的起始地址。基地址+(-)偏移量 ff fe 写入的内容。如果忽略不写的话,WinDBG会启用交互式输入。(这个一试便知)
.writemem c:\gedu\blog.txt 001b5942-8 L1458 把内存内容写入文件。 L1458 长度。以字节为单位。其实本例中精确长度为 1b6d82+e - 1b5942 + 8 = 1456。
|