![]() |
Как создать неубиваемый процесс
Народ подскажите как создать неубиваемый процесс? Если я не ошибаюсь то делается это при помощт функции CreateProcess только какие параметры ей надо передать для того чтобы его нельзя было убить из диспетчера задач.
И сразу вопрос в догонку. Если я создам такой процесс смогу ли я получить доступ к нему из той программы при помощи которой я его запустил с помощью функций ReadProcessMemory/WriteProcessMemory ? ps: Код желатьльно на Delphi |
чето мне кажеца ты чувак гонишь)))
может просто создать скрытый процес, и не так палева и не че завершать то будет)) вот пример из статьи мс-рема http://wasm.ru/pub/21/files/ring0.rar |
_http://articles.org.ru/cfaq/index.php?qid=1321&frommostrecent=yes
|
Цитата:
если нет то ненадо блистять гениальностью!!! Могбы ставить минусы влепил бы ейбогу. Цитата:
Цитата:
|
Листинг hide.dpr
Код:
library hide;Прописываем Код:
implementationКод:
HideProcess(GetCurrentProcessId, false); |
ты сам видать не смотрел пример....
а насчет минусов, умный.. хех, лепи если сумеешь, мне фиалетово |
Можно перехватывать функции для работы с процесами (желательно на уровне ядра) и никому не давать себя убить. Так, например, делает Касперский.
Про перехват функций в ring0 стоит прочитать на wasm'е |
Цитата:
Из-за того чтобы сделать просто неубиваемые процес мы полезем в 0 кольцо(верх гениальности) Ладно с процесом коекак разобрались хотя неплохобы бало сделать чтото типа _http://articles.org.ru/cfaq/index.php?qid=1321&frommostrecent=yes Только хотелось бы узнать как вобще эта штука работает? А что насчёт ReadProcessMemory/WriteProcessMemory ? Можно ли будет их использовать если сделать как вот сдесь _http://articles.org.ru/cfaq/index.php?qid=1321&frommostrecent=yes ? (Хотелось бы) |
Цитата:
|
Цитата:
|
Дак а смогу ли я использовать
ReadProcessMemory/WriteProcessMemory к так созданому процессу? |
Цитата:
Получение debugePrivelege Код:
function EnableDebugPrivilege(const Value: Boolean): Boolean;Функция включает/выключает SeDebugPrivilege. Зачем эти привилегии нужны? На досуге попробуй записать что-нибудь в память системных процессов, например, в lsass.exe, без таких привилегий ты ничего сделать не сможешь. Насчет самой функции: OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken) - получаем токен нашего процесса. LookupPrivilegeValue(nil, SE_DEBUG_NAME, tp.Privileges[0].Luid); - Получаем LUID привилегии AdjustTokenPrivileges(hToken, False, tp, SizeOf(TOKEN_PRIVILEGES), nil, d); - добавляем (точнее включаем) привилегию к нашему процессу |
А как можно как нибудь создать неубиваемый процесс и использовать ReadProcessMemory/WriteProcessMemory только из того приложения которое его запустило.
То есть надо создать прогу которая запускает приложение меняет пару байт в запущеной проге и потом запрещает любое изменение запущенного приложения? |
2EST a1ien: ядерное программирование как раз и есть верх гениальности.
если ты хочешь чтобы процесс нельзя было убить - блокируешь доступ например к OpenProcess путем перехвата native api NtOpenProcess. Т.о. пропадет возможность открыть дескриптор процесса по которому его можно грохнуть. Перехват осуществляется простой подменой адресов ф-ий в SDT, доступ к которой имеет любой драйвер импортирующий KeServiceDescriptorTable. Но... все это говно. Хуки с ядра можно снять даже из юзермода :) сам работал над этой вещью, назвал бетатеразином. Например после отработки начальной фазы кода, которая снимает все перехваты, мгновенно падает вся проактивная защита от касперского 6... ибо основана она на руткит-технологиях перехвата... которые уже стары как мир выход есть. например полное скрытие процесса. мне вот нравится метод разрыва 2сторонних описателей процессов. можно заценить в исходниках FU rootkit |
Да блин мне ненадо настолько глубако закапыватся мне надо просто чтобы пользователь немог убить процесс запущенный мной из моей проги и всё!!!
Только вот этот http://articles.org.ru/cfaq/index.php?qid=1321&frommostrecent=yes Пример почемуто неработает он компилится запускает блокнот только я всёравно могу его убить из диспетчера задач на вкладке процесы!!!! |
хм.. прикольно но пашет
назови свою прогу именем одним из неубиваемых процессов... (winlogon к примеру) увидешь эффект :D |
Неа это бред ты просто назови любой exe'шник именем системного процеса запусти его и ты его несможеш убить:)
|
EST a1ien
если серьезно то что тебе нужно это: 1. Использовать dll-ку с wasm'a 1.1. "пихаешь" ее в res. 1.2. при запуску распаковываешь 1.3. тут уже LoadLibrary, GetProcAddress, FreeLibrary 2. я писал что-то на подобие статьи вот: http://www.forum.antichat.ru/thread24230.html ... так вот в процессах спрятали... а если хотим скрыть сам файл? (чтобы в проводнике не видно было?) делаем как сказанно... к нашему файлу SetAtribytes(OurFile,faAnyFile) |
| Время: 18:07 |