Проверка, если API контролируется (подключен?) - PullRequest
0 голосов
/ 27 октября 2011

Мое приложение использует некоторые API, такие как GetProcAddress и CreateProcess, которые иногда заставляют антивирусы помечать его как вредоносный, даже если это не так.

Я пытаюсь проверить, является ли определенный APIотслеживается или подключается, и если это так, я не буду вызывать эту часть кода.

Как проверить, подключен ли определенный API?

Это приложение для Windows, написанное наC.

Спасибо.

1 Ответ

1 голос
/ 27 октября 2011

На win32 нет официальных методов для обнаружения и / или размещения хуков (кроме функций SetWindowsHookEx() (http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990) и др., Которые охватывают только очень небольшой набор функций).

Обнаружение крючка зависит от того, как был применен крюк.

Существует два популярных способа размещения крючка:

  1. Импорт / экспорт таблицы исправлений
  2. Перезапись кода

Для получения подробной информации (плюсы / минусы) о различных методах размещения хуков, пожалуйста, прочитайте здесь http://help.madshi.net/ApiHookingMethods.htm.

Каждый метод перехвата требует своего подхода для его обнаружения.

Методы обнаружения хуков, размещенных как указано выше, см. В разделе «Алгоритм ApiHookCheck» здесь http://www.security.org.sg/code/apihookcheck.html. На этой странице доступны примеры источников, которые я сделал , а не тест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...