北京模板网站建设全包,外贸网站都有哪些内容,商洛 网站建设,做设计兼职的网站有哪些工作前言 在上一篇文章中#xff0c;我们主要使用了三个命令 !address#xff0c;s#xff0c;.writemem 把丢失的代码成功的保存到了文件中。本文简单介绍一下上文用到的这三个命令。windbg 中的地址范围语法 很多命令都会用到 地址范围。比如 s 命令#xff0c;.writemem 命令… 前言 在上一篇文章中我们主要使用了三个命令 !addresss.writemem 把丢失的代码成功的保存到了文件中。本文简单介绍一下上文用到的这三个命令。windbg 中的地址范围语法 很多命令都会用到 地址范围。比如 s 命令.writemem 命令。在 windbg 中可以通过两种形式指定地址范围。起始地址 L长度 或者 起始地址 终止地址。在上一篇文章中我们使用的是 起始地址 终止地址 的形式。我们也可以使用用 起始地址 L长度 的形式来指定一个范围。其中的 L 必不可少而且L 后面跟的是要查看的单位数量不是字节数。比如我们查看起始地址 0xc0000 处对应的内容同样是L4按字节db按四字节dd和按八字节dq查看显示的内存范围是不一样的display-by-range有两点需要注意如果搜寻的范围超过256MB我们需要使用 L? 而不是 L。我们可以使用 L- 表示给定的 address 是终止位置而不是起始位置。range-specifier!address 命令 该命令可以用来查看指定地址对应的信息也可以用来查找过滤。在之前的文章里使用 !address 查看过某个地址对应的信息。上一篇文章中我们主要使用的是这个命令的查找过滤功能通过 -f 参数f 是 filter 的缩写。我们可以根据用途过滤具体参考下表。filt-by-memory-usage还可以根据内存保护属性过滤具体参考下表。filt-by-memory-protection还可以根据内存状态过滤具体参考下表。filt-by-memory-status还可以根据内存类型过滤具体参考下表。filt-by-memory-type-f 参数需要配合 -c:command 在查找的过程中执行对应的命令。option-cs 命令 该命令可以用来查找符合特定模式的内存。s 是 Search Memory 的缩写。s [-[[Flags]Type]] Range Pattern
s -[[Flags]]v Range Object
s -[[Flags]]sa Range
s -[[Flags]]su Range
这里仅截取 Type 的用法。更多用法请参考官方文档。search-type.writemem 命令 该命令比较简单.writemem FileName Range。FileName 如果路径中有空格需要使用 引起来这个应该是常识了。Range 相关的语法已经在本文开始介绍了。总结 我们在上一篇文章中用到的命令!address -f:heap,PAGE_READWRITE -c:s -u %1 %2 args.Contains(\--all\)的意思是遍历可读写的堆内存对每个内存区域调用 s 命令搜寻匹配 args.Contains(--all) 的 unicode 字符串。s 命令需要的地址范围是通过 !address 命令传递过来的 %1起始地址 和 %2结束地址 传递的。参考资料 https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/-addresshttps://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/-writemem--write-memory-to-file-https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/address-and-address-range-syntaxhttps://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/s--search-memory-欢迎留言交流需要你的