Нужна помощь с крючками Windows - PullRequest
1 голос
/ 09 февраля 2011

Я работаю над созданием системы, которая может отслеживать, как пользователи реагируют на предупреждения безопасности в своих системах (обновления программного обеспечения, предупреждения и т. Д.).Также необходимо следить за веб-трафиком и процессами, запущенными в системе, и я обращаюсь к сообществу за помощью в разработке этой системы.Мы намерены предоставлять пользователям тестовые ноутбуки и следить за их поведением в течение определенного периода времени, чтобы увидеть, как они реагируют на предупреждения системы безопасности, генерируемые различными приложениями и ОС (в данном случае Windows).

Ниже приведены мои вопросы

  • Могу ли я использовать хуки окон для решения первой проблемы, то есть выяснения того, как пользователи реагировали на предупреждения, генерируемые различными приложениями.В частности, можно ли использовать глобальные хуки для решения этой проблемы?(Как эта информация должна собираться (XML?) И передаваться обратно на сервер (как часто?) - это другая проблема)

    • Могу ли я сделать это в C # или это нужно сделатьтолько в c ++ или VB?

    • Знаете ли вы альтернативный подход к решению проблемы?Есть ли какое-либо программное обеспечение, обладающее этими возможностями?

У меня есть еще много вопросов, но получить ответы на них было бы хорошим первым шагом.Очень надеюсь, что знающие люди в этом сообществе получат хорошие идеи

Заранее спасибо

Редактировать: Пример сценария, когда Adobe предлагает вам обновить Flash Player илиантивирус запрашивает обновление определений, или любое приложение отображает уведомление (связанное с безопасностью с такими ключевыми словами, как обновление, предупреждение, установка и т. д.), требующее от пользователя каких-либо действий.Обновления системы Windows - другой пример.Я хочу знать, как пользователь реагировал на эти оповещения / уведомления / обновления (которые обычно являются всплывающими окнами).Так что мне было интересно, поместил ли я глобальный хук, который может контролировать содержимое окон, отображаемых на экране, и уведомлять меня (сервер), когда определенные слова, такие как обновление, предупреждение, предупреждение и т. Д., Появляются в содержимом / заголовке окон и чтопользователь сделал с сообщением (отклонил его, Oked это и т. д.).К сожалению, у меня нет больше спецификаций, чем эта.Я могу использовать все, что хочу, чтобы достичь этого, и мне не ясно, каков мой выбор.

Редактировать 2:

Изучив мои требования и прочитав о хуках, я чувствую, что могу добиться этого с помощью комбинации хуков и следующего textGrab SDK,http://www.renovation -software.com / ен / TextGRAB-SDK / TextGRAB-sdk.html .Я хочу, чтобы некоторые указания знали, нахожусь ли я на правильном пути.Я думаю, что если я смогу установить хуки, то это даст мне дескрипторы для всех возможных окон на экране, и я смогу использовать textGRAB SDK для поиска определенных ключевых слов в этих окнах.Хотя это может захватить некоторый интересный текст, я все еще не уверен, как я узнаю, какое действие пользователь предпринял в окне.Если у вас есть опыт работы с хуками или с textGRAB, пожалуйста, дайте мне знать, если это выглядит разумно.Если у сообщества есть другие идеи о том, как я мог бы отслеживать сообщения, связанные с безопасностью, которые выдает любое приложение в системе, предложите.Я с нетерпением жду некоторых полезных советов для завершения сложного проекта.

Ответы [ 2 ]

0 голосов
/ 09 февраля 2011

По правде говоря, вам нужно более четкое направление.Я благодарю вас за попытку предоставить подробности, но, похоже, вам все еще нужно больше информации о вашей проблеме (проблемах).

Я постараюсь ответить на некоторые ваши вопросы, но, как я уже сказал - звучит такВам нужно больше узнать о своих проблемах, прежде чем мы сможем предоставить вам оптимальный ответ.

- Оповещения - слишком расплывчатый термин, вам нужно будет определить это лучше.Эти приложения «оповещения» находятся под вашим контролем или они являются сторонними приложениями?Не каждое приложение будет показывать «Alert» одинаково, и даже если бы они это делали - я думаю, что использование системного уровня Hook, вероятно, было бы слишком проблематично для реализации вашего решения.Я не говорю, что это обязательно невозможно, но вы говорите о возможной реализации другого набора логики (для определения данных для предупреждений (й) данного приложения) для каждого приложения, которое вы хотите отслеживать.

-Не один из нас не может определить оптимальный механизм хранения для ваших конкретных потребностей, это то, что вам нужно либо предоставить более подробную информацию, либо принять решение самостоятельно.

-Как часто вы собираете данныеэто также то, что вам придется либо предоставить более подробную информацию, либо принять решение самостоятельно.

-C / C ++, вероятно, предоставит вам наиболее переносимое решение, хотя ничто не мешает вам использовать c # длявызов Win32 API.(Не у всех установлена ​​платформа .NET - хотите верьте, хотите нет)

-Проблема, о которой вы упомянули, кажется несколько специализированной ... Я не знаю ни одного существующего программного обеспечения, которое будет делать всечто вы хотите сделать.

Еще одна возможная проблема, которую вы не затронули: вы не указали свою целевую аудиторию для этого «сервиса», но я хочу, чтобы вы знали, что если я обнаружу мониторинг приложенийстолько событий, сколько вы говорите, я бы быстро удалил это и написал бы неприятное письмо компании, которая его написала.

В итоге, прочитайте эту статью на крючках дляполучить лучшее понимание того, как они работают.

0 голосов
/ 09 февраля 2011

Прежде всего, вам нужно определить, как вы будете «видеть» предупреждения безопасности в коде. «Предупреждение о безопасности» - довольно расплывчатый термин. Это будет какое-то окно с заголовком и сообщением для пользователя или ...?

Далее, о сети и процессах: ловушки Windows не помогут вам в вашей задаче. Они более низкоуровневые и не такие продвинутые, как вам нужно. Вы не можете перехватить сетевой трафик (вам нужен либо драйвер сетевого фильтра для Pre-Vista, либо Microsoft Filtering Platform для Vista и выше) См. этот вопрос для получения некоторой информации о проверке списка процессов с помощью C # (кажется, что также нет простого способа отследить запуск процесса).

...