Задача: есть процесс он невидим и зашищён от удаления драйвером. Предположим найти PID процесса и его EPROCESS мне удалось. Как можно уничтожить этот процесс или остановить его не снимая хуки и не выгружая сам драйвер? Какие методы существуют? Использовать DKOM или как? Пример процесса: касперский. Пишу программу для поиска и удаления скрытых процессов в системе. Спасибо за внимание.
Ну ты прям зиродей хочешь. Ты понимаешь, что, если тебе тут выложат приватный код, завтра этот метод работать не будет. И код, который стоит очень не мало, просто пропадет. Ты правда веришь, что тебе вот так возьмут и за спасибо это напишут?
Вызвать ф-цию nt!PsTerminateProcess передав ей указатель на EPROCESS. Она не экспортируемая, но вполне находится несложным анализом кода ядра. Все известные антивирусы таким образом точно прибиваются. Ещё можно выкинуть потоки этого процесса из списков планировщика (не совсем завершение, скорее саспенд получится). Это такой троллинг?
Ув. MSoft, я очень ценю ваше авторитетное мнение. Но какое отношение ваша жадность имеет к обсуждаемой теме, для оффтопов есть специальная ветка форума?
да причем тут моя жадность? Я с периодичностью раз в неделю наблюдаю, как тут создают новые темы в стиле "как обойти все проактивки, фаерволы, антивирусы и защиты без прав администратора из третьего кольца". И каждый раз ответ один и тот же - отправляют в коммерц или начинают флудить. Вот я и говорю тебе, чтобы ты был готов к тому, что вероятность получить полноценный ответ стремится к нулю.
Ув. MSoft, флудите здесь только ВЫ, а кое-какую информацию из этого топика я уже вынес. Возможно её будет больше, а возможно нет, но я на шаг ближе к поставленной цели. Сидеть и критиковать всё и вся может любой, а оказать помощь, далеко не каждый. Вобщем читайте мою подпись, и возможно вы поймёте, почему я создал эту тему)))
Вот ещё полезная ссылка (где мне забрать свои 100500 жидовмз за одей? ) http://wj32.wordpress.com/2009/05/10/12-ways-to-terminate-a-process/ Ясно. Идите дальше зиродейно криптовать приватные zBot-ы и не флудите в нормальных темах, если по делу нечего сказать.
Ага т.е. в моём случае применимы 3 варианта: 1)PspTerminateThreadByPointer 2)PsTerminateThread, который вызывает PspTerminateProcess, который вызывает PspTerminateThreadByPointer сводиться к 1му варианту. Да и сигнатура поиска и цепочка поиска у PspTerminateThreadByPointer намного лучше. 3)Почистить списки диспечеризации ручками. А собственно что произойдёт с процессом, если ему убить все Thread'ы руками и не упадёт ли система при таких махинациях? Есть ещё какие-нибудь варианты? П.С. Спасибо Cr4sh, за указание направления раскопок.
haxorart Из ядра можно поставить user mode APC на выполнение ntdll!NtTerminateProcess() в треде целевого процесса. Как правило, любая защита позволяет процессу уничтожать самого себя.
Можно ntdll анмапнуть =) Если хендл есть конечно.. NtUnmapViewOfSection(hProcess,pvNtdllBase) так из юзермода можно много чего грохнуть.. Тот же нод и раппорт (хендл из csrss взять).
Great да причем тут я??? почитай предыдущие аналогичные темы и скажи, сколько ответов по теме было получено? мне все равно, сколько это стоит. Пусть хоть еще сверху доплатят - мне это не интересно. Но ты сам знаешь, как на васме отвечают на подобные вопросы п.с.: мои сообщения из этой темы можно удалить
Именно так, но я предложил такой способ не как альтернативный путь уничтожения процесса, а как способ обхода защиты этого процесса.
не гоните на мсофта, он всё правильно сказал, и если бы не пришёл краш или х64 с бескорыстным стремлением облегчить жизнь молодняку, то его слова бы в сотый раз нашли подтверждение и был бы он героем треда. я, к слову, тоже был уверен что всё будет так .)