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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2011, 23:27   #1
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
Печаль Скрыть процесс в Windows 7

На этом сайте как-то нашёл следующий код DLL для скрытия собственного процесса Приведу не весь, а только часть:
Код:
library hide;
uses Windows,SysUtils,TlHelp32,ImageHlp;
...
...             SystemInformation:Pointer;SystemInformationLength:ULONG;ReturnLength:PULONG):LongInt;stdcall;
label onceagain,getnextpidstruct,quit,fillzero; 
asm 
   push ReturnLength
   push SystemInformationLength
   push SystemInformation
   push dword ptr SystemInformationClass
   call dword ptr [addr_NtQuerySystemInformation]
   or eax,eax
   jl quit
   cmp SystemInformationClass,SystemProcessesAndThreadsInformation
   jne quit
   onceagain:
   mov esi,SystemInformation
   getnextpidstruct:
   mov ebx,esi
   cmp dword ptr [esi],0
   je quit
   add esi,[esi]
   mov ecx,[esi+44h]
   cmp ecx,mypid
   jne getnextpidstruct
   mov edx,[esi]
   test edx,edx
   je fillzero
   add [ebx],edx
   jmp onceagain
   fillzero:
   and [ebx],edx
   jmp onceagain
   quit:
   mov Result,eax
end;
...
...
begin 
   hmap:=OpenFileMapping(FILE_MAP_READ,false,'NtHideFileMapping');
   if hmap=0 then exit;
   try
      mapaddr:=MapViewOfFile(hmap,FILE_MAP_READ,0,0,0);
      if mapaddr=nil then exit;
      mypid:=mapaddr^;
      hideOnlyTaskMan:=PBOOL(DWORD(mapaddr)+4);
      if hideOnlyTaskMan^ then
      begin
         fname:=allocMem(MAX_PATH+1);
         GetModuleFileName(GetModuleHandle(nil),fname,MAX_PATH+1);
         //if not(ExtractFileName(fname)='taskmgr.exe')then exit;
      end;
      InterceptFunctions;
      finally
      UnmapViewOfFile(mapaddr);
      CloseHandle(Hmap);
      DLLProc:=@LibraryProc;
   end; 
end.
и под Windows XP его скомпилировал.
а полученный файл DLL уже применял в другом проекте, чтоб скрыть свой процесс.
Позже под Windows 7 попробовал запустить всё по новой.Но вот те же Deplhi 5 и 7 ругаются на следующую строчку в коде:
Код:
cmp SystemInformationClass,SystemProcessesAndThreadsInformation
в итоге DLL всё равно компилируется, но какой-то косячный. И если его использовать в другом проекте для скрытия, то процесс всё равно виден в списке. Не скрывается...
Что не так в этом коде?
И ещё в Инете видел такой вариант той самой строчки:
Код:
cmp SystemInformationClass,5
Пробовал и так и эдак, но безуспешно.
У меня Windows 7 (x64 Максимальная)
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 17.08.2011 в 23:53.
NetSpace вне форума Ответить с цитированием
Старый 18.08.2011, 09:09   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Читаем до полного просветления:
http://www.transl-gunsmoker.ru/2009/...post_9405.html
http://www.transl-gunsmoker.ru/2009/...teprocess.html
http://forum.vingrad.ru/forum/topic-...1985719/0.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 18.08.2011, 13:06   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

Этими ссылками вы хотели красноречиво сказать, что "лучше не делать ядерную бомбу, которая может убить не только врагов, но и нас вместе с ними тоже"? И лучше не пытаться её изобретать?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 25.08.2011, 13:33   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
cmp SystemInformationClass,SystemProces sesAndThreadsInformation
SystemProcessesAndThreadsInformatio n и 5 это одно и тоже.

Цитата:
Сообщение от NetSpace Посмотреть сообщение
Не скрывается...
Что не так в этом коде?
под XP работает, а на W7 нет. для того чтобы перехват работал твоя DLL должна быть загружена в процесс taskmgr.exe. Убедись что твоя DLL грузится taskmgr.exe
rpy3uH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скрыть процесс legendary Win Api 10 30.07.2012 22:42
реально ли скрыть процесс от DEFENSE goluzov Win Api 6 07.06.2011 13:29
Скрыть процесс RuVarez Общие вопросы Delphi 11 10.09.2010 20:22
Подскажите как скрыть процесс? SCL Win Api 2 05.01.2009 15:23
скрыть процесс выполнения макроса Iskin Microsoft Office Excel 1 21.11.2008 07:28