Всяк сюда входящий - приветствую тебя Каким образом скрыться от TaskMananager'а, что б только определенный процесс не был виден? ОСОБЕННОСТИ: Фишка в том чтобы это все выполнял один-единственный модуль, т.е. ни длл, ни драйвер, а единственный исполняемый модуль Post Scriptum: Статьи про Перехват АПИ бегло читал и вроде как представление имею
а что tasklist использует другие АПИ функции в отличии от taskmanager'а? Задача стояла скрыться от таск менеджера, а на счет пользователя захотевшего использовать консольную утилиту tasklist даже и не думал P. S. Пусть даже PspCidTable сканирует мне надо только от таск менеджера скрыться
PHIDE Поток который вызвал движок должен иметь доступ для чтения/записи в \Device\PhysicalMemory в противном случае движок потерпит неудачу. Теперь все уперается в доступ к секции \Device\PhysicalMemory доступ к которой только под администратором
Под Вистой (и вроде в последнем сервиспаке XP) даже под админом доступа не получишь. Лавочку прикрыли.
CrystalIC Знаком со следующими внедрениями : from Jefrey Richter * Внедрение DLL c использованием реестра Через добавления в HKEY_LOCAL_MACHINE\Software\Microsoft\Windows_NT\CurrentVersion\Windows\AppINIT_DLLs * Внедрение DLL с помощью ловушек SetWindowsHookEx * Внедрение DLL с помощью удаленных потоков CreateRemoteThread / VirtualAllocEx Все основана на внедрении через длл, а мне бы использовать единственный модуль
по поводу Физикл Мемори - начиная со SP2 если быть точным....а ваще был вроде PoC руткит от EP_X0FF, который из юзермода умудрялся прятаться без всяких инжектов. так что возможно =) адд: http://forum.sysinternals.com/forum_posts.asp?TID=13773&PN=1
blood_raven по поводу PoC от EP_XOFF, на сисинтернался.ком 21 топик споров на чуждом мне языке ничего не дали, исходный код или же бинарный файл не был найден. CrystalIC Действительно ли можно не использовать сторонние модули для внедрения в процессы? если можно то код на асме
A590 Классический метод внедрения - это как раз без dll: 1) Выделяем память в процессе-жертве. 2) Записываем в эту память код. Базонезависимый код, если быть точным. Вариативный шаг: 3a) Метод номер простой (не классический) - делаем CreateRemoteThread со стартовым адресом на записанный код. 3b) Метод номер чуть сложнее — выбираем поток-жертву — останавливаем поток-жертву — запоминаем контекст потока-жертвы — устанавливаем EIP потока-жертвы равным адресу записанного кода. При необходимости/желании рекомендуется (мной в пику CrystalIC ) также подменить стэк потока. — запускаем поток-жертву — базонезависимый код после своего грязного дела восстанавливает запомненный контекст потока-жертвы Что делает внедрённый базонезависимый код: 1) Устанавливает перехваты одним из способов: — Патч IAT. В случае статического импорта. — Патч инструкций перехватываемой функции (обычно первых инструкций). Работает универсально. — Патч KiFastSystemCall. В случае, если перехватывается вызов системного сервиса. — Патч KiFastSystemCallRet. В случае, если необходима подмена результатов вызова, но не контроль вызова системного сервиса. — Свой вариант. 2a) Завершает работу своего потока (для метода номер простого) 2b) Восстанавливает оригинальный контекст своего потока (для метода номер чуть сложнее) P.S. CrystalIC Придирки вида: "Элито вызывает системные сервисы прерываниями, и все методы идут на все три", — не принимаются. Юзермод есть юзермод.
Не издевайтесь над человеком, не готов он еще для инжектов С таскманом помнится был такой псевдоспособ - в цикле ищется окно таскмана, берется листбокс (или что у него там) с процессами и удаляется строка с нужным процессом Как раз для топикстартера - ни тебе ДЛЛ, ни драйверов, ни инжектов...
CrystalIC Неужели Элито известен метод перехвата кода, не вызывающего исключений, не предусматирвающий патч инструкций, адресов функций или адресов возврата в стеке? Да ещё и к тому же для юзермода? Поверю, даже если скажете, что известен. Но любопытство разбирает.
l_inc Надоел ты с этой элитой, говори нормально. Известно несколько способов перехвата сводящихся к обработке исключений, причём установка хэндлеров выполняется за пределами сканируемой утилями детекта памяти, не пойму по какой причине тебе это не нравитсо. Для тогоже тм достаточно будет установить несколько хардварных бряков(это только один из вариантов) и это будет работоть идеально, ибо потоки в этой программе не сбрасывают в контексте Dr-фрейм и не детектят отладчик. Уже перехваченный код не будет обнаружен ни одной из паблик-утилит, другой вопрос в том, как сделоть это в обход проактивной защиты. Всё это не имеет смысла если это руткит по сути, ибо как пример я не знаю ни одного человека, у которого не была бы установлена проактивная защита, а все стандартные способы(классические) отпадают.