Нашёл несколько методов воплощения сабжа в реальность (виртуальную): - остановка потоков; потом завершение avp.exe - ну и конечно из ring0 Но оба метода имеют свои ограничения по применению. может кто знает что-нибудь по сабжу? ЗЫ: если ещё с исходниками - огромнейший РЕСПЕКТИЩЕ!
nitrotoluol Не пробовал пока, но закрадываются смутные сомнения. Даст ли Кашперский доступ к /Device/PhisycalMemory ?
как это нету! Сделал функцию OpenProcessEx (как у MS-Rema, кажеться), ищет открытые хэндлы в csrss - работает, все параметры определяет вроде верно а поподробнее?
>> а поподробнее? поиск по форуму, такой топик был недавно >> Даст ли Кашперский доступ к /Device/PhisycalMemory ? даст, только что пробовал на самой свежей бетке KIS-а, могу дать код если нужно (в асю)
У меня стоит KAV 6.0 Открываем ProcessExplorer, смотрим на хэндлы процесса csrss - там НЕТ хэндла KAV! Если бы он там был, что бы тогда помешало взять KAV под отладку?
Хэндл KAVа я получить могу (+ любую инфу через ZwQueryInformationProcess), но отладка не прокатывает (минут 40 назад попробовал), тут нужно как-то по-другому.
PROCESS_ALL_ACCESS, уже кажется говорил, что через OpenProcessEx, она перебирает все хэндлы в csrss. Несмотря на заявления о её неработоспособности, у меня всё работает нормально. См. исходники в какой-то статье Ms-Rema. По-моему что-то с обнаружением скрытых процессов иди перехватом API. Я её малость переделал (для ускорения), ну и с++ перевёл.
Но весь прикол в том, что TerminateProcess ни ZwterminateProcess ни системный вызов через int 2Eh (или sysenter) уже не прокатывает. Ну понятно, что Каспер их перехватывает, либо блокирует доступ к своей памяти.(блин понапихал дров своих в систему!)
а зачем тебе доступ к памяти? подгружай драйвер. в любом случае устройство /Device/PhisycalMemory доступно только админу, а в последних версиях только системе. подгрузить же дров из под админа без вопросов КАВ - не проблемма. и уже оттуда редактируешь память ядра. запретил прерывания, сбросил бит WP регистра cr0 - делай с ядром всё что пожелается. И ещё: не знаю как КАВ, но аутпост можно убить и из Ring3. восстанавливаешь память кернел32 нтдлл, или же вообще пишешь всё на int 2E. инжектишь в процесс outpost.exe модуль, который выполняет ZwTerminateProcess(-1,0), тем самым убивая аутпост.
ринг 3 бессилен ПО ОПРЕДЕЛЕНИЮ. Но если есть привилегии админа, то почему бы не подгрузить драйвер? Из под юзверя все равно никто никого завалить не даст.
значит Process Explorer врёт! Если ты уже скачал WinMan попробуй запусти KAV 2006 и взгляни на список процессов - все параметры (кроме самого PID KAVа) определяются по хэндлу процесса, я ZwQuerySystemInformation (5, ....) не юзаю для этого. т.е. получаю список PIDов, открываю по очереди и получаю инфу сторонними функциями.