Диспетчер задач
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Диспетчер задач - 2007-01-30 18:42:28.626666
|
|
|
sinker
Сообщений: 134
Оценки: 0
Присоединился: 2007-01-08 21:55:33.930000
|
Как убрать свою Delphi программу с вкладки процессы в диспетчере задач Windows?
|
|
|
RE: Диспетчер задач - 2007-01-30 19:28:54.693333
|
|
|
Apache
Сообщений: 153
Оценки: 0
Присоединился: 2006-10-13 10:02:03.070000
|
Делай резидент
|
|
|
RE: Диспетчер задач - 2007-02-01 00:05:57.833333
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
можно поподробнее как это сделать давно интересует.. Использую C++Builder 6 or Visual Studio 2005
|
|
|
RE: Диспетчер задач - 2007-02-03 21:23:22.056666
|
|
|
fremax
Сообщений: 43
Оценки: 0
Присоединился: 2007-01-26 14:48:58.293333
|
У меня вот пример завалялся: Убирает программу из списка ALT+CTRL+DEL function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL'; implementation procedure TForm1.Button1Click(Sender: TObject); begin //Hide if not (csDesigning in ComponentState) then RegisterServiceProcess(GetCurrentProcessID, 1); end; procedure TForm1.Button2Click(Sender: TObject); begin //Show if not (csDesigning in ComponentState) then RegisterServiceProcess(GetCurrentProcessID, 0); end; Сам еще не пробывал. Если сработает, скажи.
|
|
|
RE: Диспетчер задач - 2007-02-06 03:18:04.293333
|
|
|
FeraS
Сообщений: 85
Оценки: 0
Присоединился: 2004-11-01 14:27:37
|
sinker В БЗ DelphiWorld про это много написано: http://delphiworld.narod.ru/
|
|
|
RE: Диспетчер задач - 2007-02-06 23:09:26.236666
|
|
|
sinker
Сообщений: 134
Оценки: 0
Присоединился: 2007-01-08 21:55:33.930000
|
quote:
ORIGINAL: FeraS sinker В БЗ DelphiWorld про это много написано: http://delphiworld.narod.ru/ Лично я там ничего полезного на ету тему не нашел. Возможно, плохо искал…
|
|
|
RE: Диспетчер задач - 2007-02-07 09:21:56.120000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
quote:
ORIGINAL: fremax У меня вот пример завалялся: Убирает программу из списка ALT+CTRL+DEL function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL'; implementation procedure TForm1.Button1Click(Sender: TObject); begin //Hide if not (csDesigning in ComponentState) then RegisterServiceProcess(GetCurrentProcessID, 1); end; procedure TForm1.Button2Click(Sender: TObject); begin //Show if not (csDesigning in ComponentState) then RegisterServiceProcess(GetCurrentProcessID, 0); end; Сам еще не пробывал. Если сработает, скажи. Win9x only! если надо под NT скрыть - иши в гугле статьи ms-rem'a по перехвату апи функций - много полезного ЗЫ: читай его 3-ю статью - "Ring0"
|
|
|
RE: Диспетчер задач - 2007-02-07 23:07:32.396666
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
у меня был пример типо регистрации как процесса только он не работает под ХР
#include <iostream.h>
#include <windows.h>
BOOL (WINAPI *RegisterServiceProcess)(DWORD dwProcessId,DWORD dwType);
int main(){
HINSTANCE hKernel;
int i=1;
//Пытаемся получить идентификатор загруженной библиотеки
hKernel=LoadLibrary("KERNEL32.DLL");
if(hKernel){
//Идентификатор загруженной библиотеки был успешно получен
cout<<"Success load library kernel32.dll"<< endl;
RegisterServiceProcess=(int(__stdcall*)(DWORD,DWORD))GetProcAddress(hKernel,"RegisterServiceProcess");
if(RegisterServiceProcess){
//Указатель на функцию RegisterServiceProcess был
//успешно получен.
cout<<"Success to have address of the specified exported dynamic-link library (DLL) function"<< endl;
if(RegisterServiceProcess(GetCurrentProcessId(),i))
cout<<"Success registers the process as a service process"<< endl;
//Процесс был успешно зарегестрирован как сервис
}else{
//Указатель на функцию RegisterServiceProcess не
//был успешно получен.
cout<<"Failed to have address of the specified exported dynamic-link library (DLL) function"<< endl;
cin>>i;
return 0;
}
}else{
//Идентификатор загруженной библиотеки не был получен
cout<<"Failed load library kernel32.dll"<< endl;
cin>>i;
return 0;
}
cout<<"Registers the process as a service process:1"<< endl;
cout<<"Unregisters the process as a service process:0"<< endl;
cin>>i;
if (RegisterServiceProcess(GetCurrentProcessId(),i)){
cout<<"Success"<< endl;
}else{
cout<<"Failed"<< endl;
}
cin>>i;
return 0;
}
может это у меня косяк… кто разберется пишите
|
|
|
RE: Диспетчер задач - 2007-02-08 10:38:22.500000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
quote:
ORIGINAL: halkfild у меня был пример типо регистрации как процесса только он не работает под ХР
#include <iostream.h>
#include <windows.h>
BOOL (WINAPI *RegisterServiceProcess)(DWORD dwProcessId,DWORD dwType);
int main(){
HINSTANCE hKernel;
int i=1;
//Пытаемся получить идентификатор загруженной библиотеки
hKernel=LoadLibrary("KERNEL32.DLL");
if(hKernel){
//Идентификатор загруженной библиотеки был успешно получен
cout<<"Success load library kernel32.dll"<< endl;
RegisterServiceProcess=(int(__stdcall*)(DWORD,DWORD))GetProcAddress(hKernel,"RegisterServiceProcess");
if(RegisterServiceProcess){
//Указатель на функцию RegisterServiceProcess был
//успешно получен.
cout<<"Success to have address of the specified exported dynamic-link library (DLL) function"<< endl;
if(RegisterServiceProcess(GetCurrentProcessId(),i))
cout<<"Success registers the process as a service process"<< endl;
//Процесс был успешно зарегестрирован как сервис
}else{
//Указатель на функцию RegisterServiceProcess не
//был успешно получен.
cout<<"Failed to have address of the specified exported dynamic-link library (DLL) function"<< endl;
cin>>i;
return 0;
}
}else{
//Идентификатор загруженной библиотеки не был получен
cout<<"Failed load library kernel32.dll"<< endl;
cin>>i;
return 0;
}
cout<<"Registers the process as a service process:1"<< endl;
cout<<"Unregisters the process as a service process:0"<< endl;
cin>>i;
if (RegisterServiceProcess(GetCurrentProcessId(),i)){
cout<<"Success"<< endl;
}else{
cout<<"Failed"<< endl;
}
cin>>i;
return 0;
}
может это у меня косяк… кто разберется пишите Ты глянь на 4 пост - там тоже самое написано
|
|
|
RE: Диспетчер задач - 2007-02-08 12:29:22.416666
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
да.. сорри… но вопрос остается открытым.. так как решение скрития процесса еще не нашел..
|
|
|
RE: Диспетчер задач - 2007-02-08 12:50:50.210000
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
усе…:D:D нашел то что искал…
typedef int(_cdecl *MYPROC)(DWORD);
HINSTANCE hDll;
hDll = LoadLibrary("HookNTQSI.dll");
if(hDll == NULL)
{
MessageBox(0, "dll не найдена!", "", MB_OK);
//return 0;
}
MYPROC Proc = (MYPROC)::GetProcAddress(hDll, "Hook");
Proc(GetCurrentProcessId());
Sleep(INFINITE);
и надо еще вот эта длл quote:
HookNTQSI.dll если надо пишите выкину код самой длл
|
|
|
RE: Диспетчер задач - 2007-02-08 18:58:04.786666
|
|
|
sinker
Сообщений: 134
Оценки: 0
Присоединился: 2007-01-08 21:55:33.930000
|
Если работает под ХР то код ДЛЛ мне бы не помешал. Жаль, правда, что не на Дeльфи…
|
|
|
RE: Диспетчер задач - 2007-02-08 20:54:05.383333
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
quote:
ORIGINAL: halkfild да.. сорри… но вопрос остается открытым.. так как решение скрития процесса еще не нашел.. еще раз прочитай 7 пост - там все понятно написано как скрыть процесс
|
|
|
RE: Диспетчер задач - 2007-02-08 22:45:53.520000
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
quote:
HookApi.cpp
#include <windows.h>
#pragma hdrstop
#include <Winnt.h>
#include <winbase.h>
#include <stdio.h>
#include <Tlhelp32.h>
#define _DLL_
#include "HookApi.h"
#include "HookClass.h"
//---------------------------------------------------------------------------
//NtQuerySystemInformation
typedef struct _THREAD_INFO
{
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER CreateTime;
ULONG WaitTime;
DWORD dwStartAddress;
DWORD dwOwnerPID;
DWORD dwThreadId;
DWORD dwCurrentPriority;
DWORD dwBasePriority;
DWORD dwContextSwitches;
DWORD dwThreadState;
DWORD dwWaitReason;
DWORD dwReserved;
}THREADINFO, *PTHREADINFO;
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaxLength;
PWSTR Buffer;
} UNICODE_STRING;
typedef struct _PROCESS_INFO
{
DWORD dwOffset;
DWORD dwThreadsCount;
DWORD dwUnused1[6];
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ProcessName;
DWORD dwBasePriority;
DWORD dwProcessID;
DWORD dwParentProcessId;
DWORD dwHandleCount;
DWORD dwUnused3[2];
DWORD dwVirtualBytesPeak;
DWORD dwVirtualBytes;
ULONG dwPageFaults;
DWORD dwWorkingSetPeak;
DWORD dwWorkingSet;
DWORD dwQuotaPeakPagedPoolUsage;
DWORD dwQuotaPagedPoolUsage;
DWORD dwQuotaPeakNonPagedPoolUsage;
DWORD dwQuotaNonPagedPoolUsage;
DWORD dwPageFileUsage;
DWORD dwPageFileUsagePeak;
DWORD dCommitCharge;
THREADINFO ThreadSysInfo[1];
} PROCESSINFO, *PPROCESSINFO;
typedef long (__stdcall *PNTQUERYSYSTEMINFORMATION)(DWORD,PVOID,ULONG,PULONG);
long __stdcall MyNtQuerySystemInformation(
DWORD SysInformatoinClass,
PVOID SystemInformation,
ULONG SystemInformationLength,
PULONG ReturnLength OPTIONAL);
TAPIHook *NtQuerySystemInformationHook = NULL;
//---------------------------------------------------------------------------
//HHOOK hCallWndHook = NULL;
LRESULT CALLBACK CallWndHook(int nCode,WPARAM wParam,LPARAM lParam);
//---------------------------------------------------------------------------
//ХвёцЦµЦ»УГАґµчУГSetWindowsHookEx
HINSTANCE hInst;
#pragma data_seg("SHAREDATA")
HHOOK hCallWndHook = NULL;
DWORD dwSelfProcessID = -1;
#pragma data_seg()
#pragma comment(linker,"/section:SHAREDATA,RWS")
//ОЄБЛРиТЄЈ¬DLLТ»Жф¶ЇѕНЧФ¶ЇHookБЛGetProcAddressЎўLoadLibraryAЎўLoadLibraryWЎў
//LoadLibraryExAЎўLoadLibraryExWХв5ёцєЇКэЈЁјыHookClass.CppЈ©ЎЈµ±µчУГUnhookЦ®єуЈ¬
//ХвёцDLLЅ«ФЪ±рµДЅшіМЦРР¶ФШЈ¬µ«КЗ¶ФУЪ±ѕЅшіМАґЛµЎЈDLLІўГ»УРВнЙПР¶ФШЈ¬ЛщТФДЗјёёц
//HookИФИ»ЖрЧчУГЈ¬ОЄБЛКµПЦХжХэТвТеЙПµДUnohokЈ¬ЙиЦГБЛХвёц±кЦѕЈ¬ФЪДЗјёёцHookАп±Я
//Ѕ«јмІйХвёц±кЦѕЈ¬ТФ±нГчКЗ·сЅшРРHookЎЈ
bool IsHook = false;
//ЅшРРКµјКµДHookµчУГ
int __fastcall HookFunc();
int __fastcall UnhookFunc();
//---------------------------------------------------------------------------
//#pragma argsused
BOOL APIENTRY DllMain( HANDLE hModule, DWORD reason, LPVOID lpReserved)
{
hInst = (HINSTANCE)hModule;
if(reason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hInst);
__try
{
if(dwSelfProcessID != -1)
HookFunc();
}
__except(EXCEPTION_EXECUTE_HANDLER)
{/* Do nothing */}
}
else if(reason == DLL_PROCESS_DETACH)
{
__try
{
UnhookFunc();
}
__except(EXCEPTION_EXECUTE_HANDLER)
{/* Do nothing */}
}
return TRUE;
}
//---------------------------------------------------------------------------
//Hook
DLL_EXP_IMP int _cdecl Hook(DWORD dwSelfProcessID_P)
{
dwSelfProcessID = dwSelfProcessID_P;
if(hCallWndHook == NULL)
hCallWndHook = SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)CallWndHook,hInst,0);
// HookЦё¶ЁµДєЇКэ
HookFunc();
return 1;
}
//---------------------------------------------------------------------------
//Unhook
DLL_EXP_IMP int _cdecl Unhook()
{
if(hCallWndHook != NULL)
{
UnhookWindowsHookEx(hCallWndHook);
hCallWndHook = NULL;
}
// UnhookЦё¶ЁµДєЇКэ
UnhookFunc();
return 1;
}
//---------------------------------------------------------------------------
int __fastcall HookFunc()
{
IsHook = true;
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL);
NtQuerySystemInformationHook = new TAPIHook("NTDLL.DLL","NtQuerySystemInformation",
(PROC)MyNtQuerySystemInformation,true);
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_NORMAL);
return 1;
}
//---------------------------------------------------------------------------
int __fastcall UnhookFunc()
{
//¶ФУЪЦчіМРт±ѕЙнЈ¬НЁ№эХвёц±кЦѕїЙТФ±ЈЦ¤ФЪГ»УРНЛіцЦчіМРтµДК±єтТІДЬUnhookЎЈ
IsHook = false;
if(NtQuerySystemInformationHook != NULL)
{
delete NtQuerySystemInformationHook;
NtQuerySystemInformationHook = NULL;
}
return 1;
}
//---------------------------------------------------------------------------
//ПыПўHookЈ¬І»ЧцИОєОКВЈ¬Ц»КЗОЄБЛјУФШDLLµЅ±рµДЅшіМ
LRESULT CALLBACK CallWndHook(int nCode,WPARAM wParam,LPARAM lParam)
{
if(nCode < 0)
return CallNextHookEx(hCallWndHook,nCode,wParam,lParam);
// Do nothing
return 0;
}
//---------------------------------------------------------------------------
/*---------------------------------------------------------------------------
ЧФ¶ЁТеµДєЇКэґъВл
//-------------------------------------------------------------------------*/
//---------------------------------------------------------------------------
long __stdcall MyNtQuerySystemInformation(
DWORD SysInformatoinClass,
PVOID SystemInformation,
ULONG SystemInformationLength,
PULONG ReturnLength OPTIONAL)
{
long Result;
Result = ((PNTQUERYSYSTEMINFORMATION)(PROC)(*NtQuerySystemInformationHook))
(SysInformatoinClass,SystemInformation,SystemInformationLength,ReturnLength);
//Т»¶ЁТЄК№УГЅб№№»ЇТміЈґ¦АнЈ¬·сФтѕНУРїЙДЬіцПЦТміЈ¶Ф»°їтЎЈ
__try
{
if(SysInformatoinClass == 5 && Result == 0 /* STATUS_SUCCESS */)
{
PPROCESSINFO pProcessInfo;
PPROCESSINFO pPrevProcessInfo;
pProcessInfo = (PPROCESSINFO)SystemInformation;
pPrevProcessInfo = pProcessInfo;
while(true)
{
if(pProcessInfo != NULL && pProcessInfo->dwProcessID == dwSelfProcessID)
{
if(pProcessInfo->dwOffset == 0)
pPrevProcessInfo->dwOffset = 0;
else
pPrevProcessInfo->dwOffset = pPrevProcessInfo->dwOffset + pProcessInfo->dwOffset;
break;
}
if(pProcessInfo->dwOffset == 0)
break;
pPrevProcessInfo = pProcessInfo;
pProcessInfo = (PPROCESSINFO)((byte*)pProcessInfo + pProcessInfo->dwOffset);
}
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
/*/ ·ўЙъТміЈЈ¬µ«КЗІ»±ШЧцИОєОКВ
::MessageBox(NULL,"Exception Occured at self-defined function :(",NULL,MB_OK | MB_ICONWARNING);
//*/
}
return Result;
}
//---------------------------------------------------------------------------
вот как обещал..8|
|
|
|
RE: Диспетчер задач - 2007-02-08 22:58:00.730000
|
|
|
sinker
Сообщений: 134
Оценки: 0
Присоединился: 2007-01-08 21:55:33.930000
|
Спасибо!
|
|
|
RE: Диспетчер задач - 2007-02-08 23:45:48.776666
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
всегда приятно когда тебе отвечают… ане просто игнорируют:)8|
|
|
|
RE: Диспетчер задач - 2007-02-13 09:58:51.140000
|
|
|
Apache
Сообщений: 153
Оценки: 0
Присоединился: 2006-10-13 10:02:03.070000
|
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowWindow(Handle,SW_HIDE);
ShowWindow(Application.Handle,SW_HIDE);
end;
Только в процессах светится
|
|
|
RE: Диспетчер задач - 2007-02-13 10:02:05.773333
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
это только скрывает в трей…:)
|
|
|
RE: Диспетчер задач - 2007-02-13 10:51:00.330000
|
|
|
sinker
Сообщений: 134
Оценки: 0
Присоединился: 2007-01-08 21:55:33.930000
|
quote:
ORIGINAL: Apache Только в процессах светится Только в процессах он не должен светиться:)
|
|
|
RE: Диспетчер задач - 2007-02-19 10:29:13.393333
|
|
|
grenot
Сообщений: 17
Оценки: 0
Присоединился: 2006-11-21 12:14:26.466666
|
uses windows,messages,classes… procedure RegisterServiceProcess;stdcall;external 'kernel32.dll' … procedure hiding; begin asm push 0 push 1 call RegisterServiceProcess end; end;
|
|
|
RE: Диспетчер задач - 2007-02-19 22:30:34.630000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
quote:
ORIGINAL: grenot uses windows,messages,classes… procedure RegisterServiceProcess;stdcall;external 'kernel32.dll' … procedure hiding; begin asm push 0 push 1 call RegisterServiceProcess end; end; бля время 9х винд уже прошло! проснитесь!! какой нах RegisterServiceProcess??! если надо под NT скрыть - иши в гугле статьи ms-rem'a по перехвату апи функций - много полезного ЗЫ: читай его 3-ю статью - "Ring0"
|
|
|
RE: Диспетчер задач - 2007-02-20 11:15:13.066666
|
|
|
sinker
Сообщений: 134
Оценки: 0
Присоединился: 2007-01-08 21:55:33.930000
|
Надо под ХР скрыть
|
|
|
RE: Диспетчер задач - 2007-02-20 12:07:30.286666
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
мой пример работает под ХП…. проверял сам.. если тебе надо именно на паскале то смотри статьи ms-rem'a:@
|
|
|
RE: Диспетчер задач - 2007-02-21 02:45:02.146666
|
|
|
andrewsoft
Сообщений: 86
Оценки: 0
Присоединился: 2006-12-01 02:55:29.580000
|
Скрывать процесс не всерда обязательно: 1.Прячем форму, как было уже сказано. 2.Называем процесс или весь проэкт, напр. winlogon или что-то подобное. Винда просто не даст его удалить: пишет что это критический системный процесс и его завершить нельзя!!! (Разве что разными спецутилитами)
|
|
|
RE: Диспетчер задач - 2007-02-21 18:55:26.733333
|
|
|
sinker
Сообщений: 134
Оценки: 0
Присоединился: 2007-01-08 21:55:33.930000
|
quote:
ORIGINAL: andrewsoft Скрывать процесс не всерда обязательно: 1.Прячем форму, как было уже сказано. 2.Называем процесс или весь проэкт, напр. winlogon или что-то подобное. Винда просто не даст его удалить: пишет что это критический системный процесс и его завершить нельзя!!! (Разве что разными спецутилитами) А как переименовать процесс?
|
|
|
RE: Диспетчер задач - 2007-02-22 02:55:15.166666
|
|
|
andrewsoft
Сообщений: 86
Оценки: 0
Присоединился: 2006-12-01 02:55:29.580000
|
Зачем переименовывать? При компиляции назвать его winlogon вполне хватит (сохрани проэкт под именем winlogon)
|
|
|
RE: Диспетчер задач - 2007-02-22 16:23:04.126666
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
quote:
ORIGINAL: andrewsoft Зачем переименовывать? При компиляции назвать его winlogon вполне хватит (сохрани проэкт под именем winlogon) Мда .. незнаешь как помочь - не гони всякую чушь, любое ламо заметит два одинаковых винлогона! Все надо делать на совесть! и скрывать процессы надо с помошью нулевого кольца!
|
|
|
RE: Диспетчер задач - 2007-02-22 16:24:53.980000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
http://www.dotfix.net/module.php?module=@6e786b366a6a70736a6a5f6d725e6c646268676227 http://www.dotfix.net/module.php?module=@6e786b366a6a70736a6a5f6d725e6c646268676228 http://www.dotfix.net/module.php?module=@6e786b366a6a70736a6a5f6d725e6c646268676229 Для особо ленивых …
|
|
|
|
|