Форум: "Потрепаться";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизЯ сделал это!!!! Я спрятал процесс от Task Manager а. Найти похожие ветки
← →
Marouder (2003-09-24 11:11) [0]Что бы не говорили некоторые люди, я сделал это. Спрятал процесс от TaskManager"а!!! Ура.
DLL Здесь: http://www.delphimaster.ru/download/296_exe.zip
Исходники Здесь: http://www.delphimaster.ru/cgi-bin/download.pl?get=1064387228&n=1
DLL экспортирует функцию для скрытия процесса от Task Manager и некоторых других прог в Win 2000\XP.
procedure HideProcess(pid:DWORD;HideOnlyFromTaskManager:Bool);stdcall;external "nthide.dll";
Pid - id процесса. HideOnlyFromTaskManager задает, прятать только от TaskManager или от других прог тоже.
Исходники - на C++, но нетрудно переделать на Delphi. Обращайтесь - помогу.
← →
Игорь Шевченко (2003-09-24 11:45) [1]Дядька Руссинович таких перехватчиков NtQuerySystemInformation кушал на завтрак десятками и даже не морщился, отплевываясь.
← →
Marouder (2003-09-24 13:28) [2]Что ты имеешь в виду?
← →
Digitman (2003-09-24 13:32) [3]
> Marouder
то что ты изобрел велосипед)
← →
Marouder (2003-09-24 13:35) [4]Работает ведь. А то, что Sysinternal"s Process Explorer не обнаруживает - единичный случай. Его профессионалы делали.
Помнится, сколько тут было вопросов про прятанье процесса в Win2000 - нормальных ответов не было. Только "нет" и все.
← →
Marouder (2003-09-24 13:40) [5]Ведь вопрос то был, как от Task Manager спрятать.
А как спрятать от Sysinternals Process Explorer - это уже другой вопрос. :). А от Task Manager все-таки нормально прячется.
2 Игорь Шевченко:
Мне особенно понравился твой ответ в FAQ. :) Респект.
← →
Digitman (2003-09-24 13:41) [6]
> Marouder
нет, а что тут удивительного ?
достаточно внедрить во все существующие и потенциально стартуемые процессы хук-модуль, перехватывающий соотв. API-вызовы - и всех делов) ... хоть процесс скрыть, хоть самого черта)
← →
Игорь Шевченко (2003-09-24 14:11) [7]Marouder © (24.09.03 13:40)
Ох, и много же тебе придется перехватывать...Впрочем, в инете есть более оригинальное решение - перехватывать NtQuerySystemInformation не в NTDLL.DLL, а в NTOSKRNL.EXE. Это спасает от динамической загрузки NTDLL.DLL и получения адреса этой процедуры по GetProcAddress. Но от Руссиновича (да и от меня тоже) все равно не спрячешься :)
← →
Е-Моё имя (2003-09-24 14:22) [8]Удалено модератором
Примечание: Offtopic
← →
Digitman (2003-09-24 14:30) [9]
> Игорь Шевченко
> Это спасает от динамической загрузки NTDLL.DLL и получения
> адреса этой процедуры по GetProcAddress
в принципе ничего ж страшного и в дин.загрузке
перехватили LoadLibrary() и/или GetProcAddress() - и а ля у лю !))
← →
Игорь Шевченко (2003-09-24 14:47) [10]Digitman © (24.09.03 14:30)
А...LoadLibrary NTDLL.DLL перехватить ? Сомневаюсь я в этом ОЧЕНЬ сильно. Тогда уж GetModuleHandle перехватывать надо, поскольку NTDLL.DLL грузится самой первой в ВАП процесса (кстати, кем ?)
← →
Digitman (2003-09-24 15:01) [11]
> Сомневаюсь я в этом ОЧЕНЬ сильно
почему ? ведь образ ntdll со всеми таблицами "сидит" в том же ВАП, в котором осуществляем перехват !
← →
Игорь Шевченко (2003-09-24 15:25) [12]Digitman © (24.09.03 15:01)
Образ - да, сидит. А вот LoadLibrary никто не делает штатно.
И если бы Task Manager делал бы вызов NtQSi до создания окна, то этот способ для перехвата не годился бы.
← →
panov (2003-09-24 18:15) [13]Ну чего напали на человека?-)
Молодец, что добился своего решения.
← →
имя (2003-09-24 20:56) [14]Удалено модератором
← →
Marouder (2003-09-25 07:36) [15]В принципе, хуком перехватывать - способ не очень. Надо по идее еще бы NtCreateProcess попробовать перехватить.
И не LoadLibrary лучше пытаться перехватить, а LdrLoadDll из NTDLL.DLL. В общем надо пытаться, разбираться и т.п.
← →
Игорь Шевченко (2003-09-25 10:45) [16]Marouder © (25.09.03 07:36)
> В общем надо пытаться, разбираться и т.п.
А еще лучше не прятать, а решать разумные задачи существующими для этого простыми и опробованными решениями от MS. А прячься, не прячься - все равно найду :)))
← →
k-man (2003-09-25 15:16) [17]Зависть - порок..
А парень молодец!
← →
Игорь Шевченко (2003-09-25 15:56) [18]k-man © (25.09.03 15:16)
Мы про пороки и молодцов поговорим, когда на твоей машине таким образом спрятанный вирус появится :)))
← →
k-man (2003-09-25 16:14) [19]
> Мы про пороки и молодцов поговорим, когда на твоей машине
> таким образом спрятанный вирус появится :)))
Всему может быть мирное применение.
Например столкнулся с интересной задаче один знакомый спросил возможно ли написать программу которая не давала бы ребенку запускать некоторые игрушки без предварительного ввода пароля и\или с ограниченным числом раз..
Предположим висит эта прога в памяти и делает свое благое дело, а ребенок не будь дураком берет и терминэйтит ее из таскмэнеджера.. А если ее будет не видно то ребенку нечего не останется делать как идти учить уроки или ждать разрешения родителей...
Но обратная сторона медали действително будет пострашнее..
← →
Morfein (2003-09-25 17:31) [20]>> k-man
Далеко не лучшее решение в этом случае прятать процесс.. потому что завтра этот же ребёнок берёт у одноклассников таскменеджер третьих фирм, который получает список процессов не через NtQSi и вперёд.. Благо, перехватчиков на все способы под NT не напасёшься.. Лучше уж перехватывать OpenProcess() для заданного процесса.. MessageBox с надписью "Acces denied on <ProcessName>" действует убедительней..
← →
Игорь Шевченко (2003-09-25 17:35) [21]Policies - оно рулез.
#ifdef FLAME
А ребенку надо уроки учить или кошек гонять по подворотням, а не на компьютере в игрушки играться. А поскольку дети пошли развитые, то от такой защиты он найдет антизащиту и еще посмеется над ламерами, которые так защищают :)
#endif
← →
Verg (2003-09-25 17:49) [22]
> Игорь Шевченко © (25.09.03 17:35) [21]
#else
http://delphimaster.net/view/1-1064473490/
#endif
А?
← →
Marouder (2003-09-26 04:30) [23]2 Игорь Шевченко:
И как ты себе представляешь перехват NtQuerySystemInformation из ntoskrnl.exe? Ты попробуй найти какие-нибудь модули, у которых в таблице импорта эта функция!
Даже в ntdll.dll и то, нету таблицы импорта. Он вызывает функции ядра с помощью системных вызовов. Почти в любой функции ntdll.dll ты найдешь такой код:
mov edx,7FFE0300h
call edx
А по адресу 7FFE0300h находится команда sysenter (системный вызов). А в старых процессорах, типа Pentium, там, скорее всего, находится int 2Eh, т.к. там нет инструкции sysenter.
И перехват подменой кода тоже не сделать. Кто же тебе позволит писать по адресам старше 2Gb? Это в 9x можно было с помошью функции PageModifyPermissions сервиса vxdcall0 запись разрешить, а в NT - этого нет.
>"Все равно - найду".
Каким образом? Ты же не Руссинович. Ну, перехвачу я GetProcAddress, причем даже подменой кода, а не заменой IAT, и не найдешь ты процесс. :)
З.Ы. А адрес этой NtQuerySystemInformation из NTOSKRNL - тоже хрен найдешь. GetModuleHandle с ntoskrnl.exe не работает.
З.З.Ы. Ну ладно, допустим ты знал о перехватах. Почему тогда отвечал "нельзя". Я, конечно, понимаю, чтобы не расплодилось много вирусов, но это все-таки тоже не очень хороший поступок, людей обманывать.
← →
___X-Man (2003-09-26 04:42) [24]Рулеззную DLL Marouder написал. Че вы гоните.
← →
Marouder (2003-09-26 08:29) [25]2 Игорь Шевченко:
Ага, я догадался, как обнаружишь его ты. Дизассемблируешь Ntdll.dll и напишешь свою функцию с таким же кодом, как у NtQuerySystemInformation. Я прав?
← →
Digitman (2003-09-26 09:09) [26]
> Ты попробуй найти какие-нибудь модули, у которых в таблице
> импорта эта функция!
в WINNT\System32 по меньшей мере 60 PE-модулей, в IAT которых явно фигурирует импорт упомянутой ф-ции
← →
dataMaster (2003-09-26 09:21) [27]Произошла ошибка:
В базе не найдена. Скорее всего, эта компонента/программа была удалена из кладовки, как вредоносная или вирус.
:-)
← →
Игорь Шевченко (2003-09-26 10:21) [28]Marouder © (26.09.03 04:30)
> И как ты себе представляешь перехват NtQuerySystemInformation
> из ntoskrnl.exe? Ты попробуй найти какие-нибудь модули,
> у которых в таблице импорта эта функция!
Исходники FileMon почитай
> >"Все равно - найду".
> Каким образом? Ты же не Руссинович. Ну, перехвачу я GetProcAddress,
> причем даже подменой кода, а не заменой IAT, и не найдешь
> ты процесс. :)
Дружище, ты эта...книжки читай. Свена Шрайбера того же.
А что найду - не сомневайся.
← →
Smok_er (2003-09-26 10:26) [29]Не могу понять, почему удалили столь полезные исходники? Или наших мастеров жаба душит? Ведь столько лет кричали что это невозможно, смеялись над спросившими, а тут сели на мягкое место... Нехорошо, товарищи!
P.S. Я давно нашел способ перехвата вышеупомянутой функции, только сделал это на VC++. Когда я говорил, что это возможно, мне естественно никто не верил.
Уважаемый автор, не могли бы Вы выложить исходник в другом месте, хотелось бы глянуть на Ваш метод реализации.
Большое спасибо!
← →
Smok_er (2003-09-26 10:37) [30]Кстати, не зря автор нити упомянул FAQ...
Вот выдержка:
Ув. мастера, подскажите, пожалуйста, как можно сделать, чтобы приложения не было видно в диспетчере задач Windows 2000.
Игорь Шевченко ©
Никак
Уважаемый Игорь Шевченко, что вы на это скажете? Ведь вопрос не звучит "как спрятать вообще?", а "Как спрятать в диспетчере задач Win 2k"...
← →
.:eXtreme:. (2003-09-26 10:42) [31]To: Marouder, класс чувак! Вот это ты забульбенил !!! Не теряй время, чё с этими Delphi"шниками разговаривать, они ничего не понимают, хех... всё твердили нельзя, мол, сделать... мАСТЕРА :)))... давай на мазафаку, мадальф и т.д. рассылай исходники админам, а то у тебя их тут потёрли, я сам только длл"ку успел скачать :(, работает - класс!!! Первая реальная веСЧ которую вижу :)
З.Ы. Delphi - Must Die!!!
← →
BlackTiger (2003-09-26 11:25) [32]А я был такого "изобретателя" убил бы без зазрения совести.
Често. Ничего личного. Просто для общественного спокойствия. Как поубивал бы всех вирусописателей, спам-писателей, spyware-писателей и прочих околопрограммистских приблудильщиков.
← →
BlackTiger (2003-09-26 11:29) [33]Кстати, а от NTPV тоже прячет? Очень хотелось бы на доказательства посмотреть.
← →
Marouder (2003-09-26 11:58) [34]2DigitMan:
>в WINNT\System32 по меньшей мере 60 PE-модулей, в IAT которых >явно фигурирует импорт упомянутой ф-ции
Я имел в виду NtQuerySystemInformation из NTOSKRNL.EXE.
А NtQuerySystemInformation из NTDLL.DLL, да, фигурирует.
А именно из ntoskrnl.exe - назови какой-нибудь модуль.
================================================================
2BlackTiger:
>А я был такого "изобретателя" убил бы без зазрения совести.
>Често. Ничего личного. Просто для общественного спокойствия. Как >поубивал бы всех вирусописателей, спам-писателей, >spyware-писателей и прочих околопрограммистских приблудильщиков.
Насчет spyware и спама это правильно. А вот насчет вирусописателей - это ты зря. Как правило, они больше всех остальных шарят в системном программировании. Посмотри исходники CIH - их не сразу и поймешь, а только после долгих сидений над ними (честно скажу: я не разбирался).
================================================================
2 Игорь Шевченко:
Хорошо, найду - почитаю исходники и книгу. Нельзя же все за раз прочитать. Времени много надо. Это может ты - десять леть программируешь или универ с красным дипломом закончил. А я программлю - 2 года, и сейчас еще только в 10 классе средней школы учусь.
>А что найду - не сомневайся.
Посмотрим. :). Если я найду переход в Ring0, то ты по-любому не найдешь. Я уж постараюсь там помутить как следует.
================================================================
2Smok_er:
Пиши на e-mail, вышлю (marouder@list.ru).
← →
Polevi (2003-09-26 12:02) [35]детский сад начинается
← →
Smok_er (2003-09-26 12:03) [36]BlackTiger © (26.09.03 11:25) [32]
А я был такого "изобретателя" убил бы без зазрения совести.
Често. Ничего личного. Просто для общественного спокойствия. Как поубивал бы всех вирусописателей, спам-писателей, spyware-писателей и прочих околопрограммистских приблудильщиков.
А ты, дорогой, сначала бы узнал для чего это надо. Вот я принципиально нашел решение чтобы доказать себе, что это возможно.
← →
Игорь Шевченко (2003-09-26 12:13) [37]
> Посмотрим. :). Если я найду переход в Ring0, то ты по-любому
> не найдешь. Я уж постараюсь там помутить как следует.
Найду.
Не ты первый, мутилка :)
← →
Marouder (2003-09-26 12:20) [39]Я не отрицаю, что найдешь, если я тебе сообщу, как я это сделаю. :)
← →
KosilkA (2003-09-26 12:34) [40]to Marouder> решпект!!! дллка пашет , тестирую вот :)))ТаскМанагер в пролёте ! только вот
HideOnlyFromTaskManager
не скрывает от следующей процедуры , которую можно найти в каждом FAQ :
uses tlhelp32;
procedure TForm1.FormCreate(Sender: TObject);
I : Integer;
hSnapshoot : THandle;
pe32 : TProcessEntry32;
List : TStrings;
begin
listbox1.Items.Clear;
hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshoot = -1) then Exit;
pe32.dwSize := SizeOf(TProcessEntry32);
if (Process32First(hSnapshoot, pe32)) then repeat
I := listbox1.Items.Add(Format("%x, %x: %s", [pe32.th32ProcessID,pe32.th32ParentProcessID,pe32.szExeFile]));
listbox1.Items.Objects[I] := Pointer(pe32.th32ProcessID);
until not Process32Next(hSnapshoot, pe32);
CloseHandle (hSnapshoot);
end;
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.01 c