6

この質問と回答を見る前に:WinDbgを使用してManaged Byte []の内容をファイルに書き込みますが、すべてのバイトをファイルに書き込むという質問があります(メソッドテーブルポインター、配列の長さ、配列の内容) 、ファイルに配列の内容を書き込みたいだけです。

たとえば、私は8192の長さのバイト配列を作成しました。

var bytes=new Byte[8192]

windbgを使用して、これをクラッシュさせます。

0:034> !do 0x0143fd1c
Name:        System.Byte[]
MethodTable: 5ce54944
EEClass:     5cb8af1c
Size:        8204(0x200c) bytes
Array:       Rank 1, Number of elements 8192, Type Byte
Element Type:System.Byte
Content:     .0.................:.i......$...,x"!.a_.h#......66..vx.4...P.R?...M
Fields:
None
0:034> dd 0x0143fd1c
0143fd1c  5ce54944 00002000 0a0d300a 16460a0d
0143fd2c  957bd993 1f92335c 79a2d058 72455ef6
0143fd3c  cc16c7b1 05b18e14 5b1df595 0fb5dbd8
0143fd4c  629a16c6 0edb5c9a 6ede4110 5d5da54e
0143fd5c  4638143a efcad6db 060935f1 a9a48285
0143fd6c  e414cff0 8aeaae92 f169b93a f80bd6de
0143fd7c  9a9824d1 22782ccd 5f610c21 0f2368b4
0143fd8c  ae09d410 083636c3 0b787616 101ab234

0:034> !da 0143fd1c
Name:        System.Byte[]
MethodTable: 5ce54944
EEClass:     5cb8af1c
Size:        8204(0x200c) bytes
Array:       Rank 1, Number of elements 8192, Type Byte
Element Methodtable: 5ce525ec
[0] 0143fd24
[1] 0143fd25
.......

では、コマンドで開始オフセットと出力長をどのように配置するの.writememですか?ありがとうございます。

4

1 に答える 1

15

!daが答えを出します。[0]0143fd24<-ここの最初のバイトのアドレス。

最初のバイトのアドレスを取得し、ファイル名とともに.writememに渡します。

.writemem C:\ somefile 143fd24 L0n8192

このコマンドは、C:\ somefileへの書き込み、データは143fd24で始まり、10進数の8192バイトまで続くことを示しています。

于 2012-04-18T11:58:07.183 に答える