Ответ 1
Если вы можете завладеть "Системным верификатором девственности" от Джоанны Рутковски, это должно дать вам довольно хорошую идею, где они реализуют свои крючки. Подобные инструменты (включая GMER) можно использовать для исследования того, что происходит в недрах системы. Это может показаться странным, но иногда AVs используют методы, которые обычно обнаруживаются во вредоносном программном обеспечении, т.е. Методы руткита, в попытке защитить свое программное обеспечение от обмана.
Похоже, что SSDT-Hooking и подобные методы были использованы для "защиты" процесса. Мой первый выстрел в это будет приостановить все потоки процесса. Большинство таких механизмов защиты (вредоносных программ и вредоносных программ) срабатывают только при попытках завершения. Но как только вы приостановите все потоки (Process Explorer может это сделать), ни один из них больше не будет планироваться планировщиком (что приведет к отсутствию использования ЦП).
SSDT (иногда SDT) обозначает таблицу дескрипторов системной службы. Это таблица с функциональными адресами системных служб (номер системной службы, являющейся индексом). Когда вы вызываете что-то вроде CreateFile
из вашего приложения Win32, оно будет в NTDLL, вызывающем NtCreateFile
(== ZwCreateFile
в UM). Оттуда механизм (который изменился с Windows 2000/XP) будет отличаться в том, как он переходит в режим ядра (KM), так называемое "кольцо 0". Во всяком случае, реализация NtCreateFile
в NTDLL примерно делает следующее: он перемещает индекс системной службы в регистр и затем вызывает метод, который используется для перехода к коду KM (sysenter
в новых реализациях). Прибыв в KM, обработчик проверит индекс, выберет адрес функции из SSDT и затем вызовет эту функцию. Существует еще несколько проверок стека единой системы обмена сообщениями, который происходит здесь (когда вы пришли из UM), но это простой процесс. Поэтому, когда вы используете функциональность на этом уровне, вы можете предотвратить любую подсистему, включая подсистему Win32, от выполнения каких-либо действий. Однако это связано с несколькими проблемами (т.е. Наименьшим из них). Большинство разработчиков выполняют плохую работу, что часто можно увидеть в вредоносных программах, таких как руткит. Sony решила поставить некоторые аудиодиски еще в 2005 году. Таким образом, отсоединение практически невозможно без риска проверки ошибок и нескольких независимых фрагментов кода, Индекс SSDT также обычно приводит к проблемам из-за безрассудства на стороне разработчиков.
Так что приостановка потоков кажется возможной, хотя этот вопрос, конечно, является разновидностью открытого (без знания деталей драйвера ESET). Если, однако, они предотвращают это, вы также должны рассмотреть возможность переключения продуктов. Я утверждаю, что недостатки в стабильности системы таких продуктов перевешивают дополнительную "защиту", хотя они (ESET) собираются рассказать вам об обратном.
Другим возможным методом может быть инъекция кода (например, через DLL) и вызов самого процесса ExitProcess
. Это также зависит от того, позволяют ли крючки для этой лазейки.