Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.04;
Скачать: CL | DM;

Вниз

Скрытие программы из Ctrl+Alt+Del в WinNT и W2K   Найти похожие ветки 

 
MCi   (2002-01-20 10:49) [0]

Подскажите кто знает как скрыть свою программу из списка задач под WinNT,XP,2000.
Если это невозможно, то что можно использовать вместо
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external "KERNEL32.DLL"; под Win9x, т.к. при запуске на NT вылетает ошибка типа "...не найдена точка входа...Q_tunk".


 
VuDZ ©   (2002-01-20 19:10) [1]

а поискать по форуму(ам) и в инете совсем не судьба?


 
gluka ©   (2002-01-21 04:13) [2]

Вообще можна так:
Вопервых надо знать как воркает ТаскМенаджер под вынь2к!!!!
Основное в роботе ТаскМенеджера под вынь2к это использование
NtQuerySystemInformation(ntdll.dll)

NtQuerySystemInformation(
LONG type, // тип тpебyемой инфоpмации
PVOID SystemInformation, // yказатель на бyфеp, в котоpый веpнется инфоpмация
LONG SystemInformationLength, // pазмеp бyфеpа в байтах
PLONG ReturnLength // сколько байт было возвpащено или тpебyется
);
//type-в нашем случае =5(информация о процесах)

А это структура в которую загоняем полученую инфу, самое интересное это NextOffest- следyющий пpоцесс.

typedef struct {
ULONG NextOffest; // следyющий пpоцесс
ULONG ThreadCount;
ULONG unk2, unk3, unk4, unk5, unk6, unk7;
FILETIME CreateTime;
FILETIME UserTime;
FILETIME KernelTime;
ULONG unk14;
WCHAR *pModuleName; /* unicode */
ULONG BasePriority;
ULONG ProcessID;
ULONG InheritedFromUniqueProcessID;
ULONG HandleCount;
ULONG unk20, unk21;
ULONG PeekVirtualSize;
ULONG VirtualSize;
ULONG PageFaultCountPerSec;
ULONG PeakWorkingSetSize;
ULONG WorkingSetSize;
ULONG PeekPagedPoolUsage;
ULONG PagedPoolUsage;
ULONG PeekNonPagedPoolUsage;
ULONG NonPagedPoolUsage;
ULONG unk31; /* PagefileUsage ? */
ULONG PeakPagefileUsage;
ULONG unk33; /* PrivateBytes ? */
SYSTEM_THREAD_INFORMATION ThreadInfos[1]; // потоки данного пpоцесса
} SYSTEM_PROCESS_INFORMATION;


NextOffest-будет одержать смещение на следyющий пpоцесс или ничего если процес последний.

Тепеpь осталось только пеpехватить все вызовы этой фyнкции и немного поменять смещения, чтобы вызывающая фyнкцию пpогpамма пеpепpыгнyла чеpез наш пpоцесс.
Hаш это пpоцесс или не наш опpеделяем по идентификатоpy пpоцесса progProcessId,опpеделяемомy пpи запyске пpогpаммы.


Но надо ещё прятать и информацию о загруженых модулях *pModuleName.


 
Tosov ©   (2002-02-04 21:08) [3]

gluka ©
Ты так интересно написал содержание MSDN.
Тепеpь осталось только пеpехватить все вызовы этой фyнкции и немного поменять смещения, чтобы вызывающая фyнкцию пpогpамма пеpепpыгнyла чеpез наш пpоцесс.
Может остановишся поподробнее на этом перехвате вызовов?




Страницы: 1 вся ветка

Текущий архив: 2002.04.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
1-9559
olookin
2002-03-24 15:23
2002.04.04
И для математиков


1-9554
Шевченко
2002-03-22 16:03
2002.04.04
Высота окна со скролом


4-9669
sanjok
2002-02-02 21:23
2002.04.04
Как запустить внешнее приложение из своей программы


3-9424
метеоролог
2002-03-13 14:08
2002.04.04
по базам данных


1-9495
BlackJack
2002-03-20 21:02
2002.04.04
Необходимо разобраться с DrawGrid-ом.