Программирование на C++ глазами хакера

         

Исчезновение чужой программы


Как работать с чужими окнами, мы еще подробно рассмотрим в следующих главах книги. Но все же я приведу вам один интересный пример с исчезновением чужих программ:

HWND Wnd; while(true) { Wnd=GetForegroundWindow(); if (Wnd0) ShowWindow(Wnd,SW_HIDE); Sleep (1000); };

В этом примере запускается бесконечный цикл while, внутри которого выполняются следующие шаги:

получаем идентификатор активного окна с помощью функции GetForegroundWindow;

прячем окно с помощью функции ShowWindow, если идентификатор "правильный" (больше нуля);

делаем задержку в 1 секунду на реакцию пользователя.

Если выполнить этот код, то любое активное окно исчезнет максимум через одну секунду. Даже если попытаться снять задачу, которая выполняет этот код, то за одну секунду вы не успеете вызвать Панель задач, найти программу и снять ее, т. к. уже исчезнет Диспетчер задач. Невозможно нажать на кнопку Пуск и завершить работу, потому что исчезнет сама Панель задач, которая в данный момент станет активной.

Именно поэтому перед запуском примера я настоятельно рекомендую сохранить все открытые документы, чтобы ничего не пропало. Кроме того, необходимо предусмотреть возможность отключения цикла.



Содержание раздела