PDA

Просмотр полной версии : Перехват\подмена процессов WinAPI


Nastar
01.04.2018, 23:02
Ребят, кто силен?

Мне нужно запустить программу на моем компе чтобы она не отображалась в списке процессов.

Читал что можно сделать "перехват и подмену", но на этом инфа закончилась)

Кто вкурсе этого метода, или может знает какой-то другой, подскажите плз!

SpiderFox
13.06.2018, 23:06
В c# можно попробовать сделать.

telegram: @grallator

Интересная задача, имхо.

Я работал с процессами и WinAPI, но такого ещё не делал.

Пиши, если что

st55
14.06.2018, 00:38
Не особо шарю в этом вопросе, но можно заинжектить твой процесс в легитимный и тогда де-факто будет там отсутствовать. Любят инжектить обычно в explorer.exe и svhost.exe.

SpiderFox
14.06.2018, 23:59
Блин, появится время, обязательно попробую.

Сиб)

terszki
20.06.2018, 04:02
ТС - плохо искал, инфы по этому поводу полно.

В таком случае вариантов несколько, по порядку.

1. Можно заинжектить код/длл в диспетчер задач и перехватить функцию, получающую список процессов - хз куда уходит вызов, на win8.1 перехват Process32Next, NtQuerySystemInformation не помог.

2. Можно использовать технику runpe и запуститься в другом процессе. В гугле полно инфы, но если требуется - скину пример.

3. Процесс можно сделать неубиваемым для процессов с меньшими правами:


Code:
bool ProtectProcess()
{
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = false;
if (ConvertStringSecurityDescriptorToSecurityDescript or("D:P", 1, &sa.lpSecurityDescriptor, NULL))
{
if (SetKernelObjectSecurity(GetCurrentProcess(), DACL_SECURITY_INFORMATION, sa.lpSecurityDescriptor)) return true;
}
return false;
}

Помимо этих вариантов, есть и другие, например, инжект длл куда-нибудь (длл выполняет нужные действия)