Windows で外部プロセスを意図的にクラッシュさせる
-
20-09-2019 - |
質問
ネイティブコードフォールトを合成したいと考えています。これは、デバッグが発生したときに、特にデバッグ出力がどこに配置されるかを確認できるようにするためです。
Pskill (Sys-Internals から) は正常に終了します。DotCrash.exe は Microsoft から直接入手できなくなったようです。
外部からプロセスのクラッシュを引き起こす方法はありますか?
解決
Windbg を使用する前に、次のようにしてこれを実行しました。
- プロセスの開始
- Windbg を使用してプロセスにアタッチする
- アプリの関数の 1 つにブレークポイントを設定する
- ブレークポイントに到達するまでアプリを実行する
- Windbg でローカル変数をアクセス違反の原因となるものに設定します (例:ポインタを 0xFFFFFFFF に設定するか、レジスタ値を変更してください)
- f5 キーを押すとアプリがクラッシュするはずです
他のヒント
何がしたいことはコアダンプのと同等である場合は、
、drwtsn32 -p ProcessId
は、実行中のプロセスの現在の状態のダンプを生成します。あなたは適切なデバッグシンボルを持っている場合は、貴重な情報を得ることができます。
HTHます。
ニックが言及したよう
、これは簡単にWindows用デバッグツールを介して行うことができます - でも、私はさらに一歩進んで、スクリプトに全体の相互作用をCDB(コマンドラインのWinDbg)を使用すると思います。
。
あなたが任意の時点でのダンプが必要な場合は、
、あなたはjrbjazzによって推奨されているようにそれを行うか、コマンドラインdrwtsn32 -p processid
にするための良いUIを持っているマイクロソフト社の無料のデバッグ診断ツールを使用することができます。
あなたが使用して試みることができる CreateRemoteThread 。それを正しく使用することは容易ではありませんが、他のプロセスがクラッシュを作ることはとても簡単でなければなりません; - )
あなたはフック関数のいくつかの種類をインストールするか、回り道のようなものを使用することができます>ライブラリー?
所属していません StackOverflow