Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Kernel32.dll в Win2k. Скрытие приложения при нажатии Ctrl+Alt+Del   Найти похожие ветки 

 
zolotov   (2003-04-05 19:56) [0]

Ув. Мастера, подскажите пожалуйста такую вещь. Я хочу, чтобы приложения не было видно в диспетчере задач по нажатию Ctrl+Alt+Del. Пишу следующий код:

function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall;
external "KERNEL32.DLL";

procedure TForm1.Button1Click(Sender: TObject);
begin
//Hide
if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//Show
if not (csDesigning in ComponentState) then
RegisterServiceProcess(GetCurrentProcessID, 0);
end;

При запуске приложения выдается сообщение об ошибке:
Точка входа в процедуру RegisterServiceProcess не найдена в библиоткеке DLL KERNEL32.DLL

В чем здесь дело?
Причем, такое сообщение выскакивает и при запуске некоторых других программ. Например, я писал прогу на Delphi5, ОС Windows ME(98), чтобы форма была круглой, теперь установил Win2K и вот появился такой глюк.
Как это можно исправить?
Заранее благодарен.


 
DrPass ©   (2003-04-05 20:14) [1]

Очень просто: функции RegisterServiceProcess действительно нет в Win2k, и чтобы прога там могла работать, ее нужно подгружать динамически через LoadLibrary/GetProcAddress. Естественно, о невидимости в этом случае речь не идет.
Невидимой прогу в Win2k сделать без громоздких хакерских методов невозможно.


 
zolotov   (2003-04-05 20:27) [2]

Спасибо, а как подгружать через LoadLibrary/GetProcAddress? Желательно бы пример.
Спасибо.


 
DrPass ©   (2003-04-05 20:53) [3]

В принципе, kernel32.dll даже не потребуется загружать, поэтому можно просто запросить ее дескриптор:
var
RSP = function (H: THandle; K: dword): dword; stdcall;

@RSP := GetProcAddress(GetModuleHandle(pchar("kernel32.dll")), pchar("RegisterServiceProcess"));
if assigned(@RSP) then RSP(0, 1);
для скрытия программы и
if assigned(@RSP) then RSP(0, 0);
для раскрытия


 
zolotov   (2003-04-05 22:02) [4]

Спасибо


 
Юрий Зотов ©   (2003-04-06 11:22) [5]

То есть, "функции RegisterServiceProcess действительно нет в Win2k", но если подгружать ее динамически, то можно подгрузить то, чего нет.

Тогда уж лучше сразу подгружать функцию HideMySuperPuperTrojan. Ее тоже нет, но если в одном случае динамическая загрузка помогает, то должна помочь и в другом.


 
Polevi ©   (2003-04-06 19:10) [6]

какие открываются возможности !!!



Страницы: 1 вся ветка

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
14-26727
Nox
2003-05-20 23:48
2003.06.09
Подкиньте идейку что ли......


1-26535
Marina_S
2003-05-27 19:40
2003.06.09
Оси координат в компоненте TChart


4-26847
Severen
2003-04-07 16:21
2003.06.09
Как убрать программу из ctrl+alt+del в WinXP?


1-26559
kull
2003-05-28 12:20
2003.06.09
Функция сравнения файлов...


14-26730
Vlad Oshin
2003-05-22 14:45
2003.06.09
Приезжали к нам вчера Чичерина с МумийТроллем - сложилось