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

Вниз

Как скрыть программу в диспетчере задачь? WindowsXP   Найти похожие ветки 

 
MAXHo ©   (2005-12-05 17:14) [0]

Икал по инету, но там только на 98ю или же описывают как скрыть окно. Мне необходимо чтоб в диспетчере задачь на вкладке процессы небыло видно моей программы. Заранее спасибо за ответ.


 
Игорь Шевченко ©   (2005-12-05 17:22) [1]

Вирусы пишут на другом сайте


 
Antonn ©   (2005-12-05 17:59) [2]

найти икно Диспетчера, найти его список, распотрашить его:)


 
gdaujk ©   (2005-12-05 18:25) [3]

>MAXHo ©   (05.12.05 17:14)

>Как скрыть программу в диспетчере задачь?

Можете не беспокоиться. Диспетчер задач не отображает программ. Он отображает только видимые родительские окна и запущенные процессы :-).

PS: идите на ... http://www.wasm.ru/article.php?article=hidingnt . Только, то что там излагается, вам скорее всего не по зубам :-)


 
MAXHO ©   (2005-12-05 19:09) [4]

Игорь Шевченко:

Мне не для вируса я админ клуба и мне надо чтоб юзера не могли завершить один процес. Или посоветуйте как перехватить закрытие форму когда ее закрывают через диспетчер задач.


 
Alexandr Bydantcev ©   (2005-12-05 19:35) [5]

Смотря что ты этим процессом хочешь делать.
А если подойти со стороны сервисов?


 
Volf_555   (2005-12-05 21:47) [6]

Тебе нужно чтобы юзверы вообще не открывали Диспетчер задач?
Если да - то запрети с помощью политик или же в реестре запуск этого окна.

Если нет - то решается просто - создаётся прога, которая висит в памяти и блокирует запуск Диспетчера задач.

Если же всё-таки список процессов должен отображаться и юзеры имели возможность завершать процесс, то не трудно создать свою программу, которая будет вызываться по определённым горячим клавишам Windows, отображать процесс, в списке процессов находить "не нужную для завершения" программу и удалять просто такую строку - и всё! Юзверы не смогут завершить "не нужную для завершения" программу!


 
Ботвин Дмитрий   (2005-12-06 07:54) [7]

MAXHo ©   (05.12.05 17:14)

Для администрирования клуба применять такие извращенческие методы просто излишне, как минимум. А если к тебе придёт продвинутый юзер со своей прогой, умеющей показывать и завершать скрытые процессы (а таких не мало), то вся твои старания на смарку :-)))

Самый правильный совет дан в посте [5]. Юзер с правами пользователя никогда не завершит сервис. А скрывать его ни к чему...


 
Чапаев ©   (2005-12-06 10:48) [8]

Обзови её winlogon.exe и диспетчер задач не сумеет её завершить.

ЗЫ. Только ведь не один диспетчер задач задачи снимать умеет...


 
Васяня   (2005-12-06 11:45) [9]


> Чапаев ©   (06.12.05 10:48) [8]
> Обзови её winlogon.exe и диспетчер задач не сумеет её завершить.
>

Чо за бред? с каких пор диспечер задач обращает внимание на название EXE? В смысле bum.exe я завершу, а winlogon.exe не буду, я его люблю, так чтоли?


 
Хинт ©   (2005-12-06 11:57) [10]

Нет, диспетчер запрещает завершать все процессы с именем winlogon.exe


 
Хинт ©   (2005-12-06 11:59) [11]

А вот ответ на вопрос:
http://forum.sources.ru/index.php?showtopic=58824


 
Игорь Шевченко ©   (2005-12-06 12:10) [12]

Хинт ©   (06.12.05 11:59) [11]

Желаю тебе найти альтернативный диспетчер задач, показывающий скрытые таким образом процессы. И смотреть почаще на свой компьютер.


 
Чапаев ©   (2005-12-06 12:17) [13]


> с каких пор диспечер задач обращает внимание на название
> EXE?

С давних...


> Нет, диспетчер запрещает завершать все процессы с именем
> winlogon.exe

А так же csrss.exe, lsass.exe, smss.exe и так далее.


 
Ботвин Дмитрий   (2005-12-06 14:42) [14]

Хинт ©   (06.12.05 11:59) [11]

Левый походу способ - в фаре по F11 "скрытые" таким образом процессы видны.
Там "HideOnlyFromTaskManager - нужно ли прятать процесс только от TaskManager"а, или же от остальных программ" видимо не подразумевается
под словами "остальных программ" использование фара ;-)))


 
Хинт ©   (2005-12-06 19:27) [15]

Этот способ скрывает приложение только от Диспетчера задач и тех программ, которые используют NtQuerySystemInformation для листинга процессов. А от tlhelp32 не спасает...


 
Игорь Шевченко ©   (2005-12-07 10:16) [16]

Хинт ©   (06.12.05 19:27) [15]


> А от tlhelp32 не спасает...


Я наверное открою страшную тайну, но thelp32 внутре себя вызывает NtQuerySystemInformation. Причина проста - это единственный способ получить список процессов.


 
Rouse_ ©   (2005-12-07 10:37) [17]


> Хинт ©   (06.12.05 11:59) [11]
> А вот ответ на вопрос:
> http://forum.sources.ru/index.php?showtopic=58824

А вот тебе штопор на этот код (жаль ветка в архиве, поэтому просто процитирую):

Игорь Шевченко ©   (02.02.05 10:21)  
Небольшой код, позволяющий определить, есть ли в системе потенциально вредоносный процесс, скрывающий себя от Task Manager"а, Process Explorer"а и прочих просмотрщиков списка процессов. В сочетании с включенным аудитом процессов поможет выявить поделки доморощенных пакостников.
Проверено на Windows 2000 и Windows XP.

unit CheckNtDll;
interface
uses
Windows, HsNtDef;

function RealQueryListInformation (InfoClass: Integer; var rc: NTSTATUS;
var ReturnLength: DWORD): Pointer;

function IsNtDllHooked: Boolean;

implementation
uses
SysUtils, NtDll, PeImage, NtStatusDefs;

{$IFDEF VER140}
{$WARN SYMBOL_PLATFORM OFF}
{$ENDIF}

type
TSysCallData = array[0..13] of Byte;
TNtQuerySystemInformation = function (SystemInformationClass: LongInt;
  SystemInformation: Pointer; SystemInformationLength: ULONG;
  ReturnLength: PDWORD): NTSTATUS; stdcall;

var
FRealQuerySystemInformation: TNtQuerySystemInformation;

function RealQueryListInformation (InfoClass: Integer; var rc: NTSTATUS;
var ReturnLength: DWORD): Pointer;
var
ListSize: Integer;
begin
ListSize := $400; { Начальный размер буфера }
GetMem(Result, ListSize);
rc := FRealQuerySystemInformation(InfoClass, Result, ListSize, @ReturnLength);
while rc = STATUS_INFO_LENGTH_MISMATCH do begin
  FreeMem(Result);
  ListSize := ListSize * 2;
  GetMem(Result, ListSize);
  rc := FRealQuerySystemInformation(InfoClass, Result, ListSize,
    @ReturnLength);
end;
if rc <> STATUS_SUCCESS then begin
  FreeMem(Result);
  Result := nil;
end;
end;

procedure MakeRealQS (const SysCallData: TSysCallData);
var
OldProtection: DWORD;
FuncPtr: Pointer;
begin
FuncPtr := VirtualAlloc(nil, $1000, MEM_COMMIT, PAGE_READWRITE);
Win32Check(Assigned(FuncPtr));
Move(SysCallData, FuncPtr^, SizeOf(SysCallData));
Win32Check(VirtualProtect(FuncPtr, SizeOf(SysCallData), PAGE_EXECUTE,
  OldProtection));
@FRealQuerySystemInformation := FuncPtr;
end;

function IsNtDllCodeHooked (const FileName: string; ProcOffset: ULONG): Boolean;
var
Image: THSPeImage;
SysCall: TSysCallData;
SysCall2: TSysCallData;
QSPtr: Pointer;
begin
Image := THSPEImage.Create (FileName);
try
  Move(Image.RVAData[ProcOffset]^, SysCall, SizeOf(SysCall));
finally
  Image.Free;
end;
QSPtr := GetProcAddress(GetModuleHandle("ntdll.dll"),
  "NtQuerySystemInformation");
Move(QSPtr^, SysCall2, SizeOf(SysCall2));
Result := not CompareMem(@SysCall, @SysCall2, SizeOf(SysCall));
if Result then
  MakeRealQS (SysCall);
end;

function IsNtDllHooked: Boolean;
const
SDllPath = "%SystemRoot%\system32\ntdll.dll";
var
DllPath: ZString;
HFile, HMap: THandle;
Map: Pointer;
Headers: PImageNtHeaders;
QSysInfo: Pointer;
begin
Result := false;
Win32Check(
  ExpandEnvironmentStringsA(SDllPath, DllPath, SizeOf(DllPath)) <> 0);
HFile := CreateFileA(DllPath, GENERIC_READ, FILE_SHARE_READ, nil,
  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, INVALID_HANDLE_VALUE);
Win32Check(HFile <> INVALID_HANDLE_VALUE);
try
  HMap := CreateFileMappingA(HFile, nil, PAGE_READONLY, 0, 0, nil);
  Win32Check(HMap <> 0);
  try
    Map := MapViewOfFile(HMap, FILE_MAP_READ, 0, 0, 0);
    Win32Check(Assigned(Map));
    try
      Headers := RtlImageNtHeader(HMODULE(Map));
      if Assigned(Headers) then
        Result :=
          Headers.OptionalHeader.ImageBase <> GetModuleHandle("ntdll.dll");
        if not Result then begin
          QSysInfo := GetProcAddress(GetModuleHandle("ntdll.dll"),
            "NtQuerySystemInformation");
          if Assigned(QSysInfo) then begin
            Result := (Cardinal(QSysInfo) <=
              Headers.OptionalHeader.ImageBase) or (Cardinal(QSysInfo) >
              Headers.OptionalHeader.ImageBase +
              Headers.OptionalHeader.SizeOfCode);
            if not Result then
              Result := IsNtDllCodeHooked(DllPath, ULONG(QSysInfo) -
                Headers.OptionalHeader.ImageBase);
          end else
            Result := true;
        end;
    finally
      UnmapViewOfFile(Map);
    end;
  finally
    CloseHandle(HMap);
  end;
finally
  CloseHandle(HFile);
end;
end;

initialization
finalization
if Assigned(FRealQuerySystemInformation) then
  VirtualFree(@FRealQuerySystemInformation, $1000, MEM_DECOMMIT);
end.

Пример использования:


  FQueryInformationFunction: TQueryListInformation;
.........
if IsNtDllHooked then begin
  ShowMessage("NtDll is hooked!");
  @FQueryInformationFunction := @RealQueryListInformation;
end else
  @FQueryInformationFunction := @QueryListInformation;

.....

var
ProcessInfo: Pointer;
rc: NTSTATUS;
Dummy: ULONG;
begin
ProcessInfo := FQueryInformationFunction (
  SystemProcessesAndThreadsInformation, rc, Dummy);
if NT_SUCCESS(rc) then
  ShowProcessList (ProcessInfo)
else
  RaiseNtError (rc);
.........


 
Rouse_ ©   (2005-12-07 10:39) [18]


> Игорь Шевченко ©   (02.02.05 12:01) [19]
> Всем:
>
> Данный код иллюстирует только идею. Если все детали выкладывать,
>  места не хватит. Остальные используемые модули представляют
> кучу служебных полезностей, написанных в разное время.
> Часть можно взять по адресу


 
Rouse_ ©   (2005-12-07 10:39) [19]

Блин, адрес не докопировал :)
http://www.schevchenko.net.ru/SRC/Common_60.zip


 
MAXHO ©   (2005-12-07 17:54) [20]

Чапаев
Супер! Спасибо то что нужно :)

Диспетчер задач я раньше запрещал но отказался от него, часто была необходимость вызвать когда зависла игр и т д. Всем спасибо за советы :)



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

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

Наверх




Память: 0.53 MB
Время: 0.037 c
5-1125933078
TStas
2005-09-05 19:11
2006.02.26
НЕ публикация свойства


3-1136285879
Стелс
2006-01-03 13:57
2006.02.26
Обращение к полям


15-1138893441
Mastak
2006-02-02 18:17
2006.02.26
Люди, попинайте поисковую прогу!


4-1133957255
Shastox
2005-12-07 15:07
2006.02.26
Буфер и StringGrid


2-1139682980
Интересующийся
2006-02-11 21:36
2006.02.26
Получить данные из INI