2009-07-14 1 views
2

この顧客は、2〜5分間正常に動作した後、絶えずクラッシュするという不満を持ちました。
トレース(イベントログ/クラッシュダンプ)を残さずにプロセスが終了するときは、次の2つのオプションがあります。
1.私たち自身のプロセスがTerminateProcess()を呼び出しています。
2.他の人が私たちを殺しています。

"Adplus -crash -CTCFG ..."を実行するだけで自殺発呼スタックを捕捉するには
悲しいかな、これは私たちの顧客状況を解決するのに役立たなかった。不思議なプロセスキラーをキャッチするには?

私たちはお客様の耳元で「たぶん誰かが私たちを殺しているのかもしれません。おそらくウイルスなど何か...?」と囁き始めました。
お客様は懐疑的でしたが( "幽霊/ウイルス/デーモン?")、自分自身を追い出す直前に、Sysadminの自白で救われました。 彼は定期的に私たちのプロセスを監視しているスクリプトを思い出しました。このスクリプトは、私たちがぶら下げられ、プロセスの終了を余儀なくされたと誤って考えていました(Yack!)。

ここで質問が来る:
次回は、プロセスを殺している人を捕まえるためのツールやテクニックが必要ですか? (私は死ぬことを避けるためのいくつかのハッカーツールがあると知っていますが、シリアルキラープロセスのPID/NAMEを記録したいだけです)

これは公式な/非ハッカーの方法ですか?

答えて

1

システムコールでフックをインストールする必要があります。これらの通話をブロックすることもできます。その非ハッカーの方法であるかどうか完全にはわかりません:)

+0

他のプロセスからの 'TerminateProcess'呼び出しを監視するシステム全体のフックはかなり侵略的です。 –

+0

ほとんどのお客様は、このような非公式のフッキングユーティリティをインストールすることを許可しません。また、プロセスを終了することは多くのAPIでアーカイブすることができます。 – Tal

0

私があなただった場合、私はアプリケーションのすべての開始を記録します。不正なツールはおそらくあなたのアプリケーションを定期的に抹消し、あなたのアプリが10分または10秒(またはそれが設定されたもの)ごとに開始されるとあなたの眉を上げます。

tracking system callsのようなものを除いて、この問題のための銀色の弾丸はありませんが、それはかなりハッキーですが、それは外からのトリックを行うべきです。

+0

具体的なケースでは、あなたは正しいです。しかし、監視ツール(または潜んでいるウイルス)が絶え間なく実行されている可能性があります。アプリケーションの開始を追跡することは助けにならないでしょう。 – Tal