#c #windows #winapi #hook
#c #Windows #winapi #перехват
Вопрос:
Мое приложение использует некоторые API, подобные GetProcAddress
и CreateProcess
которые иногда заставляют антивирусы помечать его как вредоносный, даже если это не так.
То, что я пытаюсь сделать, это проверить, отслеживается или подключается конкретный API, и если это так, я не буду вызывать эту часть кода.
Как мне проверить, подключен ли определенный API?
Это приложение для Windows, написанное на C.
Спасибо.
Комментарии:
1. И как бы вы проверили, что ваш детектор API monitor не был подключен?
2.
GetProcAddress
иCreateProcess
сам по себе не должен поднимать никаких флагов для AVS. Используете ли вы удаленную инъекцию dllCreateRemoteThread
? В этом случае сигнатура вашей функции может совпадать с сигнатурой вредоносной программы.3. Нет внедрения dll и создания удаленного потока. Эти 2 API находятся в разных частях программ, выполняющих разные действия. Знаете ли вы, как проверить наличие перехвата API?
4. «… проверьте, используется ли определенный API … «, о каких API (ах) вы говорите?
5. Нет надежного способа проверить, был ли подключен API, потому что человек, который подключил API, возможно, также подключил ваш детектор API.
Ответ №1:
В win32 нет официальных методов для обнаружения и / или размещения перехватов (кроме SetWindowsHookEx()
(http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990 ) и другие функции, которые охватывают только очень небольшой набор функциональных возможностей).
Обнаружение перехвата зависит от того, как был применен перехват.
Существует два популярных метода размещения перехвата:
- Исправление таблиц импорта / экспорта
- Перезапись кода
Для получения подробной информации (плюсы / минусы) о различных методах размещения перехватов, пожалуйста, прочитайте здесь http://help.madshi.net/ApiHookingMethods.htm .
Для каждого метода подключения требуется свой подход для его обнаружения.
Для методов обнаружения перехватов, размещенных, как указано выше, пожалуйста, посмотрите здесь «Алгоритм ApiHookCheck» http://www.security.org.sg/code/apihookcheck.html . На этой странице доступны примеры источников, которые я не тестировал.
Комментарии:
1. Ссылка на алгоритм ApiHookCheck больше не работает. Не мог бы кто-нибудь предоставить хорошую ссылку на него?
2. @Benny: Это может быть отправной точкой: security.stackexchange.com/q/17904/36769
3. @alk спасибо, я тоже нашел этот вопрос. Похож ли он на алгоритм проверки APIHookChecking, на который вы ссылались в своем ответе?