4

いくつかの未保存ファイルが含まれているプログラムフリーズ(特にSQL開発者)がありました。プロセスを強制終了する前に、sysinternalのプロセスエクスプローラーを使用してダンプファイルを作成しました。私は実際に数時間の作業を失っただけですが、ダンプファイルから何を抽出できるかを確認することは良い学習経験になると思いました。これまでのところ、windbgをダウンロードして実行し、次のテキストを見つけました。

s -u 0x00000000 L?0xffffffff "text I know exists in my file"

そこから、関連するメモリアドレスを取得し、ファイルの大部分と一緒にメモリウィンドウのテキストを表示できました。しかし、ここから私は少し立ち往生しています。duコマンドを使用してテキストをダンプできることはわかっていますが、開始範囲と終了範囲を決定するためにどのような戦略を使用する必要がありますか。これは1ギガのダンプなので、ほとんどの編集者が開くことができるテキストファイルがないため、0x00000000を0xffffffffにダンプすることは決してありません。ユーザーメモリや非コードメモリなどをダンプする方法はありますか?決して完璧である必要はありません。ダンプファイルをテキストパッドで開くだけで満足しましたが、Unicodeデータは表示されず、職業上のASCIIのみが表示されます(おそらく、テキストパッドがタイプを検出できないため、または64ビットダンプであるため)。

4

1 に答える 1

6

sysinternals(現在はMS)からstrings.exeユーティリティを試して、すべての出力(unicodeとascii)をテキストファイルにリダイレクトすることもできます。次に、テキストファイルを検索して(または単に目で見て)、探しているものを探します。

于 2012-11-27T14:08:11.420 に答える