• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Как скрыть процесс

  • Автор темы Автор темы MegaDiablo
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
M

MegaDiablo

Как скрыть процесс после нажатия клавиш CRL+ALT+DEL(под Windows XP, 2000), но не используя библиотек( мне надо что бы приложение шло одним EXE файлом). Или подскажите как сделать приложение с библиотекой и всё запихнуть в одну EXE-ку причем запуск библиотеки должен происходить через external.
И как скрыть приложение из списка приложений.
 
Перехватом функции ZwQuerySystemInformation. Без библиотеки сложно - это надо делать снапшоты процессов в цикле и подзаражать таскменеджер или все процессы.
Запускай дллку из экзешника. Я где то на форуме выкладывал пример запуска экзешника из экзешника без сохранения его на диске, с дллкой тоже самое.
 
Перехватом функции ZwQuerySystemInformation. Без библиотеки сложно - это надо делать снапшоты процессов в цикле и подзаражать таскменеджер или все процессы.
Запускай дллку из экзешника. Я где то на форуме выкладывал пример запуска экзешника из экзешника без сохранения его на диске, с дллкой тоже самое.

Да нет вот так можно обойтись без либы:
Внедрение в процесс кода функции, связанных с ней данных и запуск потока.
Process - хэндл открытого процесса,
Thread - адрес процедуры потока в текущем контексте,
Info - адрес данных передаваемых потоку
InfoLen - размер данных передаваемых потоку
Results - необходимость возврата результата (возврат назад переданных данных)
}
function InjectThread(Process: dword; Thread: pointer; Info: pointer;
InfoLen: dword; Results: boolean): THandle;
var
pThread, pInfo: pointer;
BytesRead, TID: dword;
begin
pInfo := InjectMemory(Process, Info, InfoLen);
pThread := InjectMemory(Process, Thread, SizeOfProc(Thread));
Result := CreateRemoteThread(Process, nil, 0, pThread, pInfo, 0, TID);
if Results then
begin
WaitForSingleObject(Result, INFINITE);
ReadProcessMemory(Process, pInfo, Info, InfoLen, BytesRead);
end;
end;
 
kostindima
Ты прежде чем постить, хотя бы разберись в вопросе.
1. Что за функция InjectMemory - в MSDN такой нет? Ты по тупому где то увидел этот код и без понятия тут выложил (наверно на www.wasm.ru).
2. Код, что ты выложил, позволяет внедриться в какой то конкретный процесс, но чтобы скрыть свой процесс, надо внедряться во все процессы, которые могут найти твой процесс, таскменеджер только один из них. Поэтому, о чем, я писал во 2 посте, без библиотеки надо делать снапшоты процессов в цикле и подзаражать вновь открывающиеся процессы, имхо совсем некрасивое решение.
 
Просто у меня есть Pas'ы по етому вопросу...

(И я етим не пользовался за ненадобностью,я внедрял целый ексешник без Рантайма)
 
Читаю и просто стало интересно. Если можно ответьте на следующие вопросы.
1. Можно ли запустить процесс от имени другого процесса (например системного)?
2. Если да то можно ли отследить что или кто именно запустил процесс (какой именно ЕХЕ), ведь в начале до того как внедриться в процесс ,всёравно что-то должно запускаться и не возникнет каких либо конфликтов в системе?
 
Читаю и просто стало интересно. Если можно ответьте на следующие вопросы.
1. Можно ли запустить процесс от имени другого процесса (например системного)?
2. Если да то можно ли отследить что или кто именно запустил процесс (какой именно ЕХЕ), ведь в начале до того как внедриться в процесс ,всёравно что-то должно запускаться и не возникнет каких либо конфликтов в системе?

1Возможно внедрение в него потока
2возможно сделать,чтобы "левоый"CreateProcess слал какието данные другой проге,напривер через АПИ,конфликты могут возникнуть в некоторых случаях,например:Внедряймая либа с рантаймом.
 
Для: kostindima
Внедрение потока - это немного не то. Это запуск своего процесса или потока в адресном пространстве заражаемого процесса.
1. Можно ли запустить процесс от имени другого процесса (например системного)?
Можно запускать процесс из сервиса, он будет работать в 3-ем кольце, но на правах системного сервиса.
2. Если да то можно ли отследить что или кто именно запустил процесс (какой именно ЕХЕ), ведь в начале до того как внедриться в процесс ,всёравно что-то должно запускаться и не возникнет каких либо конфликтов в системе?
Для этого надо опять таки перехватывать функцию ZwQuerySystemInformation. У нее один из параметров - структура типа:
Код:
SYSTEM_PROCESSES = packed record
NextEntryDelta,
ThreadCount: dword;
Reserved1 : array [0..5] of dword;
CreateTime,
UserTime,
KernelTime: LARGE_INTEGER;
ProcessName: TUnicodeString;
BasePriority: dword;
ProcessId,
InheritedFromProcessId,
HandleCount: dword;
Reserved2: array [0..1] of dword;
VmCounters: VM_COUNTERS;
IoCounters: IO_COUNTERS; // Windows 2000 only
Threads: array [0..0] of SYSTEM_THREADS;
end;
Используя InheritedFromProcessId, можно определить процесс-родитель.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab