11.windbg-d、e 读写内存

来源:互联网 发布:云计算安全论文 编辑:程序博客网 时间:2024/05/29 23:21

d

d*命令显示给定范围内存的内容。

如果省略掉Range ,命令将会从上一条内存查看命令结束的位置开始。这使得可以连续的进行内存查看。

d*命令显示给定范围内存的内容。这种显示的格式和最近一次d*命令的格式相同。如果之前没有使用过d*命令,ddb 的效果相同

0:000> d76c07e36  90 90 90 b8 10 20 00 00-b9 00 00 00 00 8d 54 24  ..... ........T$

daASCII 字符遇NULL结束

0:000> da 0x002e573c 002e573c  "I am string"

db字节值和ASCII字符

0:000> db 0x002e573c 002e573c  49 20 61 6d 20 73 74 72-69 6e 67 00 25 73 0a 00  I am string.%s..002e574c  00 00 01 00 00 00 00 00-01 00 00 00 02 00 00 00  ................

dc双字值(4字节)和ASCII字符
0:000> dc 0x002e573c 002e573c  6d612049 72747320 00676e69 000a7325  I am string.%s..002e574c  00010000 00000000 00000001 00000002  ................

dd双字值(4字节) 
0:000> dd 0x002e573c 002e573c  6d612049 72747320 00676e69 000a7325002e574c  00010000 00000000 00000001 00000002

dD双精度浮点数(8字节) 
0:000> dD 0x002e573c 002e573c      2.18174376168e+243     1.45322123485e-308     3.23790861659e-319002e5754      4.24399158242e-314     1.69759663297e-313     6.79038653188e-313


df单精度浮点数(4字节) 
0:000> df 0x002e573c 002e573c    4.3545723e+027   4.8418253e+030   9.4986638e-039   9.5966104e-040002e574c    9.1835496e-041                0   1.4012985e-045   2.8025969e-045

dp指针大小的值。该命令根据目标机的处理器是32位还是64位的,分别等于dddq
0:000> dp 0x002e573c 002e573c  6d612049 72747320 00676e69 000a7325002e574c  00010000 00000000 00000001 00000002


dq四字值(Quad-word values) (8 bytes)。
0:000> dq 0x002e573c 002e573c  72747320`6d612049 000a7325`00676e69002e574c  00000000`00010000 00000002`00000001

duUnicode字符 。遇NULL结束
0:000> .dvalloc 100Allocated 1000 bytes starting at 000300000:000> ezu 00030000 "I am unicode"0:000> du 00030000 00030000  "I am unicode"

dwWORD值(2字节)。 
0:000> dw 00030000 00030000  0049 0020 0061 006d 0020 0075 006e 006900030010  0063 006f 0064 0065 0000 0000 0000 0000


dWWORD值(2字节)和ASCII字符。
0:000> dW 00030000 00030000  0049 0020 0061 006d 0020 0075 006e 0069  I. .a.m. .u.n.i.00030010  0063 006f 0064 0065 0000 0000 0000 0000  c.o.d.e.........

如果尝试显示一个非法地址,它的内容会显示为问号(?)。


e

e命令和d命令非常相似,一个读一个写嘛!

e输入数据的格式和前一次e* 命令一样eaASCII 字符串(不以NULL结尾)。

0:000> .dvalloc 100Allocated 1000 bytes starting at 000800000:000> ea 00080000 "i am ansi "0:000> db 00080000 00080000  69 20 61 6d 20 61 6e 73-69 20 00 00 00 00 00 00  i am ansi ......

eb字节值。
0:000> eb 00080000 'i' 'i' 's'0:000> db 00080000 00080000  69 69 73 6d 20 61 6e 73-69 20 00 00 00 00 00 00  iism ansi ......

ed双字值(4字节)。注意字节序从高到低
0:000> ed 00080000 6d6120690:000> db 00080000 00080000  69 20 61 6d 20 61 6e 73-69 20 00 00 00 00 00 00  i am ansi ......

euUnicode字符串(非NULL结尾)。ezaNULL结尾的ASCII字符串。ezuNULL结尾的Unicode字符串。
0:000> ezu 00080000 "hi unicode"0:000> du 00080000 00080000  "hi unicode"

如果省略Values 参数,会提示进行输入。指定的地址和它的内容会显示出来,并且出现Input> 提示符。这时可以进行如下这些操作:

  • 通过键入值和ENTER键来输入新的值。
  • 通过按下SPACE然后按下ENTER来保持内存的当前值。
  • 按下ENTER来退出当前命令。











<pre>
	
				
		
原创粉丝点击