このブログで、sysinernals が別のプロセスに挿入して終了させるためにCreateRemoteThread()
使用することを読みました。ExitProcess
本当ですか?はいの場合、誰かが私の Delphi アプリケーションでそれを行う方法を教えてもらえますか? アプリケーションを開始したプロセスを終了したい。
質問する
1365 次
1 に答える
4
ここでの質問は、次のブログ投稿で回答されています: http://private-storm.de/2009/08/11/case-terminateprocess/
これには、Delphi ソース コードが含まれます。何らかの理由でコードがSE_DEBUG_NAME
特権を有効にしましたが、これは必要ありません。
この種のアプローチの難しExitProcess
さは、ターゲット アプリでのアドレスを見つけることです。この記事のコードは、自分のプロセスと同じアドレスにあることを前提としています。それは本当の可能性が非常に高いですが、常にそうとは限りません。たとえば、プロセスが 64 ビット プロセスであり、ターゲット プロセスが 32 ビット プロセスである場合、それは当てはまりません。または、ターゲット プロセスのベース アドレスが kernel32 の優先アドレスへのロードを許可しない場合。
もう 1 つの問題は、プロセスが 32 ビットで、ターゲット プロセスが 64 ビットの場合です。その場合、そのCreateRemoteProcess
トリックは単に失敗すると思います。
全体として、私はTerminateProcess
.
于 2012-08-30T11:01:29.173 に答える