Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Вниз

Как скрыть программу в диспетчере задачь? 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.042 c
2-1138888280
Silica
2006-02-02 16:51
2006.02.26
Массивы


15-1138813609
jack128
2006-02-01 20:06
2006.02.26
"Золотой теленок"


4-1134164934
vladik
2005-12-10 00:48
2006.02.26
wnetopenenum и wnetenumresurce


8-1126684012
ABS
2005-09-14 11:46
2006.02.26
Вращение


2-1139199972
TimScorp
2006-02-06 07:26
2006.02.26
DLL.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский