この顧客は、製品が 2 ~ 5 分間正常に動作した後、常にクラッシュしていると不満を漏らしていました。推測に数日かかりましたが、次の結論に達しました:
プロセスが痕跡 (イベント ログ/クラッシュ ダンプ) を残さずに終了する場合、2 つのオプションがあります:
1. 自分のプロセスが TerminateProcess() を呼び出している
2. 他の誰かが呼び出している私たちを殺している。
自殺的なコールスタック (ケース 1) をキャッチするには、「Adplus -crash -CTCFG …」を実行するだけです
。
私たちは顧客の耳に「誰かが私たちを殺しているのではないか、ウイルスか何かではないか…?!」とささやき始めました。
顧客は懐疑的でした (「ゴースト / ウイルス / デーモン?」)。彼は、私たちのプロセスを監視するスクリプトを定期的に実行していたことを思い出しました。そのスクリプトは、私たちがぶら下がっていると誤って考え、プロセスを強制的に終了させました (Yack!)。
次の質問は次のとおりです
。次回は、誰がプロセスを停止させているかを特定するためのツールまたは手法が必要ですか? (殺されるのを避けるためのハッカーツールがいくつかあることは知っていますが、シリアルキラープロセスのPID / NAMEをログに記録したいだけです。)
彼らはそれを行うための公式/非ハッカーの方法はありますか?