{ **** UBPFD *********** by delphibase.endimus.com ****
>> СКРЫТИЕ или отображение процесса из списка ctrl+alt+del
СКРЫТИЕ или отображение процесса в списке ctrl+alt+del
ПРАВИЛА ИСПОЛЬЗОВАНИЯ:
ДЛЯ скрытия собственного приложения из списка процессов, отображаемых
при нажатии CTRL+ALT+DEL, вызывайте функцию ShowHideInCad со следующими
параметрами:
ShowHideInCad (TakeMyApplicationProcessID, False) - и название Вашего
приложения будет скрыто из списка CTRL+ALT+DEL
ДЛЯ скрытия процесса чужого приложения, вызывайте функцию с такими
параметрами:
Зависимости: windows
Автор: VID, [email protected], ICQ:132234868, Махачкала
Copyright: VID
Дата: 23 мая 2002 г.
***************************************************** }
unit cad;
interface
uses windows;
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer;
stdcall; external 'KERNEL32.DLL';
function ShowHideInCad(ProcessID: Integer; Show: Boolean): boolean;
function TakeProcessID(WindowTitle: string): Integer;
function TakeMyApplicationProcessID: Integer;
implementation
//Получение дескриптора процесса любого окна, по заголовку этого окна
function TakeProcessID(WindowTitle: string): Integer;
var
WH: THandle;
begin
result := 0;
WH := FindWindow(nil, pchar(WindowTitle));
if WH <> 0 then
GetWindowThreadProcessID(WH, @Result);
end;
//Получение дескриптора процесса собственного приложения
function TakeMyApplicationProcessID: Integer;
begin
Result := GetCurrentProcessID;
end;
//Отображение/Скрытие процесса в CTRL+ALT+DEL
function ShowHideInCAD(ProcessID: Integer; Show: Boolean): Boolean;
begin
result := true;
try
//если show = true , то отображаем процесс в CAD, иначе - прячем
if Show = True then
RegisterServiceProcess(ProcessID, 0)
else
RegisterServiceProcess(ProcessID, 1);
except result := false;
end;
end;
Забыл добавить. Эта библиотека скрывает лишь процесс с именем "svhost.exe".
Для изменения этого придется править в любом HEX редакторе. Pascal, C\C++, Assembler, Python
function DriveExists(Drive: Byte): Boolean;
begin
Result := Boolean (GetLogicalDrives and (1 shl Drive));
end;
procedure TForm1.WMDEVICECHANGE(var Msg: TMessage);
var Drive : byte;
begin
ListBox1.Items.Add('WParam='+IntToStr(Msg.WParam)+' LParam='+IntToStr(Msg.LParam));
for Drive := 0 to 100 do
If DriveExists (Drive) then
begin
ListBox1.Items.Add (Chr(Drive));
end;
end;
Подскажите ещё, не находит флешки, только хард(C,D,...), походу функция не для этого применения?)
Сообщение отредактировал dolphin - Воскресенье, 01.01.2012, 13:41
Не ребят почитал я тут ваши посты,поглядел...,вобщем первый самый метод это действительно только под win9...
на win xp работать не будет, почему спросите вы,да потому что кернел 32.dll разные в этих версиях винды...
соглашусь с Волком на счет hide.dll метод хороший,но если мне не изменяет память процесс скрывается только от Ctrl+Alt+Del или Ctrl+Shift+Esc любые мало-мальски нормальные программки с легкостью перехватывают хуки и вылавливают скрытый процесс...
на мой взгляд одним из более менее перспективных вариантов можно было бы рассматривать инжект в сторонний процесс,тогда процесс эксплоуером просто так не выловишь,но как многие знают все инжекты палятся в первую очередь антивирусами..,вобщем пробуем,тестируем,отписываемся,у меня самого пока что кода нет как будет отпишусь и выложу обязательно...
процесс скрывается только от Ctrl+Alt+Del или Ctrl+Shift+Esc
Да. Скрывает лишь от диспа.
И сейчас скрытие в диспе уже не актуально так, как и перехват апи функций.
Мне, например, более интересна схема без процессовой работы. Т.е прога создаёт удалённый поток в целевом процессе (например, эксплорер.exe) и завершается. Оставляя работу созданному потоку. Метод палевный, и тоже не сильно актуальный на сей день, но у него есть свои плюсы такие, как не будет необходимости носить с собой какие-нибудь библиотеки, т.е + меньший вес. Не нужны будут перехваты функций. Не будет виден диспетчере, если уж на то оно пошло... Есть и минусы: Любой глюк, задержка в цикле или еще что-то подобное - намертво убьет процесс. Pascal, C\C++, Assembler, Python
Сообщение отредактировал Волк-1024 - Суббота, 04.02.2012, 21:53