Comments 19
5-й метод встречал в троянах.
А полностью ручная загрузка всего необходимого не поможет?
А полностью ручная загрузка всего необходимого не поможет?
0
5 метод действительно может использоваться для того чтобы скрыть api функцию из импорта приложения, когда через PEB (Process Environment Block) находят адрес GetProcAddress, далее LoadLibrary и все необходимые функции, это можно реализовать не прибегая к использованию inline asm-а.
уточните пожалуйста, что вы имеете ввиду под «полностью ручной загрузкой»?
уточните пожалуйста, что вы имеете ввиду под «полностью ручной загрузкой»?
0
Как применить метод 5, если NtCreateFile и NtReadFile уже перехвачены и «читают» из библиотек искажённое содержимое?
Видимо, нужно проверять, что NtCreateFile и NtReadFile выглядят так, как полагается в данной ОСи.
От Windows XP до Vista Nt-функции однообразны:
А начиная с Windows 7, по-видимому, становятся таким как в статье, причём NtCreateFile и NtReadFile становятся существенно различными между собой.
Итог. Нужно иметь два варианта (XP и 7) массива dNtCreateFile и сравнивать с телом NtCreateFile, допуская несовпадение только в константе в
То же для NtReadFile.
Видимо, нужно проверять, что NtCreateFile и NtReadFile выглядят так, как полагается в данной ОСи.
От Windows XP до Vista Nt-функции однообразны:
mov eax, ...
mov edx, 7FFE0300h
call dword ptr [edx]
retn ...
А начиная с Windows 7, по-видимому, становятся таким как в статье, причём NtCreateFile и NtReadFile становятся существенно различными между собой.
Итог. Нужно иметь два варианта (XP и 7) массива dNtCreateFile и сравнивать с телом NtCreateFile, допуская несовпадение только в константе в
mov eax, ...
То же для NtReadFile.
0
От Windows XP до Vista Nt-функции однообразны: А начиная с Windows 7, по-видимому, становятся таким как в статье
Начиная с XP SP2 вид функции не зависит от версии системы и определяется разрядностью ядра. Вариант с вызовом
dword ptr [7FFE0300h]
используется на 32-битных системах и вызывает непосредственно ядро. Вариант с вызовом fs:[0C0h]
используется на 64-битных системах и вызывает подсистему эмуляции WOW64 (wow64cpu.dll, в свою очередь вызывающий wow64.dll+wow64win.dll), которая преобразует 32-битный вызов в 64-битный (расширяет параметры, осуществляет filesystem/registry redirection).В XP до SP2, кстати, было
mov eax, ...
mov edx, 7FFE0300h
call edx
retn ....
Раньше — вообще
int 2Eh
.0
Если догадаться, что этот метод используется (а наличие VirtualProtect хорошо заметно и наталкивает на такие мысли), то тот же самый VirtualProtect можно перехватить, взять из него номер syscall, сформировать свой блок нужного кода и вернуть его. Не?
P.S. Но вообще статья — отличная.
P.S. Но вообще статья — отличная.
0
я не совсем понял, можно ли защититься или определить перехват через через kernel драйвер?
0
Система у врага, защиться невозможно! Можно усложнить и отсеять кидисов.
+3
Здравствуйте, Кэп
+1
Система не у врага. Система у порядочного пользователя. Подверглась нападению злого софта.
Автор вируса видел предыдущую версию антивируса, но не видел текущую. Поэтому не может просто править код антивируса. Вирус не проник в ядро, потому что запущен без администраторских прав.
Автор вируса видел предыдущую версию антивируса, но не видел текущую. Поэтому не может просто править код антивируса. Вирус не проник в ядро, потому что запущен без администраторских прав.
+1
Против каждого антихука найдётся свой хук на функцию проверки на наличие хуков.
+4
UFO just landed and posted this here
Дык это, самый простой хук — подложить длл и всё.
+1
Еще парочку вариантов сходу предложу:
1. Перед вызовом записать magic, а сразу после смотреть стек по адресу меньше вершины — хук засветится лишним адресом.
2. Сделать MD5 digest используемых библиотек после инсталляции. Особо параноидальный вариант — подписать RSA.
1. Перед вызовом записать magic, а сразу после смотреть стек по адресу меньше вершины — хук засветится лишним адресом.
2. Сделать MD5 digest используемых библиотек после инсталляции. Особо параноидальный вариант — подписать RSA.
-1
Автор пропустил небольшой нюанс.
Для правильной работы описанной методики из 32 битного приложения в 64 битной ОС нужно делать вызов шлюза FS:[0xC0]
Вот тут был рассмотрен этот момент
Для правильной работы описанной методики из 32 битного приложения в 64 битной ОС нужно делать вызов шлюза FS:[0xC0]
Вот тут был рассмотрен этот момент
0
Sign up to leave a comment.
Антихукинг — теория