2009-07-14 3 views
2

У нас был этот клиент, жалующийся на то, что продукт постоянно терпел крах после того, как он работал нормально в течение 2-5 минут. Потребовалось несколько дней догадки, но мы пришли к следующему выводу:
Когда процесс завершается, не оставляя никаких следов (журналов событий/аварийных дампов), существует два варианта:
1. Наш собственный процесс вызывает TerminateProcess()
2. Кто-то еще убивает нас.

Для того, чтобы поймать суицидальные стеки вызовов (случай 1) вам просто нужно запустить «Adplus -crash -CTCFG ...»
Увы, это не помогло разрешить нашу ситуацию клиента.Как я могу поймать загадочного убийцу процесса?

Мы начали шептать нашим ушам для клиентов: «Может быть, кто-то убивает нас, может быть, вирус или что-то ...?!».
Клиент был скептически настроен («призраки/вирусы/демоны?»), Но перед тем, как нас выгнали, мы были спасены исповедью Сисадмина. Ему напомнили сценарий, который они периодически запускали, контролируя наш процесс. Этот сценарий ошибочно думал, что мы повешены и вынуждены прекратить процесс (Yack!).

На данный момент возникает вопрос:
В следующий раз мы хотим, чтобы инструмент или техника поймали, кто убивает наш процесс? (Я знаю, что есть некоторые хакерские инструменты, чтобы избежать убийства, но я просто хочу зарегистрировать, что такое серийный убийственный процесс PID/NAME.)

Это какие-то официальные/не-хакерские способы сделать это?

ответ

1

Вам необходимо установить крючок на системные вызовы. вы также можете блокировать эти вызовы. Не совсем уверен, если это не хакерский путь :)

+0

Общесистемный крюк для просмотра вызовов 'TerminateProcess' из любого другого процесса будет довольно инвазивным. –

+0

Большинство клиентов не позволят вам установить такую ​​неофициальную утилиту для подключения. Также я прочитал, что завершение процесса может быть заархивировано многими API-интерфейсами, как вы можете быть уверены, что подключили их все? – Tal

0

Я бы записал каждое начало приложения, если бы я был вами. Инструмент для изгоев, вероятно, убил ваше приложение в обычные периоды времени, и он поднимет вашу брови, если вы увидите начало своего приложения каждые 10 минут или 10 секунд (или все, что было установлено).

Насколько я знаю, нет серебряной пули для этой проблемы, кроме чего-то вроде tracking system calls, и это довольно взломанно, но это должно сделать трюк из коробки.

+0

В нашем конкретном случае вы правы. Но инструмент мониторинга (или скрытый вирус) может постоянно работать. Отслеживание запуска приложения там не поможет. – Tal

Смежные вопросы