+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 92.51 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

DELPHI и ХАКЕР. Как отомстить "врагу" средствами Windows.pas

05.10.2012 15:01
Трофим Роцкий

Делу, как известно, время, но и потехе опять же час :). При чем тут модуль Windows? А кому захочется тащить на "вражеский" компьютер софтину в 400 КБ, которая только и может, что спрятать панель задач и иконки? Правильно, тому, кто не знает свойств консольного приложения. Но мы-то с вами тянемся к знаниям ;), так что сейчас создадим полноценную программу, чьи настройки можно будет редактировать, и она будет весить ровно в 40 раз меньше, чем описанная выше.

Итак, создам консольную программу [File>New>Other>Console Application]. Только чур! - шутка будет безболезненной, а то можно и в нос схлопотать.
Итак, наш исполняемый файл можно будет настраивать. Логичнее всего это сделать извне, т.е. из файла с конфигом, чтобы не светиться во "вражеской" системе MS-DOS'овским окошком консоли. Поэтому удалите строку "{$Apptype Console}" и в разделе Uses оставьте только модуль Windows. Теперь ненадолго сверните Delphi и с помощью Блокнота создайте в той же директории, что и наше приложение, текстовый файл следующего содержания:

0{скрыть Crl+Alt+Del}
1{менять системные цвета}
0{менять местами кнопки мыши}
1{показывать сообщение: "Windows must die!"}
1{выключиться после одного сеанса}

Назовите его, скажем, "Config.txt". Он состоит из пяти строк; каждая строка отвечает за "свою" функцию. 0 - не задействовать данную "опцию" во время работы программы, 1 - задействовать (false и true). Справа БЕЗ ПРОБЕЛА помещаются комментарии, чтобы мы не позабыли, какая строка за что отвечает. (Здесь показан пример настроек, где отключение Ctr+Alt+Del и смена кнопок мыши неактивны, а остальное работает.)
Таким образом, нужно только связаться с данным файлом, перебрать каждую строку - с помощью цикла for…to, как вы уже догадались. Когда вся информация будет принята приложением, ее придется постоянно держать в памяти с помощью динамического массива.
Я думаю, вам не нужно объяснять, что есть динамический массив, но, чтобы освежить свою и вашу память, напомню. Продекларируйте:

JokeType: Array[1..10] of Boolean;

Здесь содержится 10 значений, 10 различных переменных типа boolean, способных - вам известно - принимать только значения false или true. И данный-то массив помнит это значение персонально для каждого из своих десяти членов. (Я намеренно сделал их так много, чтобы побудить вас добавить в программу новые функции). Указав в квадратных скобках номер интересующей нас переменной, мы получаем для нее возвращаемое значение true/false, соответствующее ей. Прочее, думаю, понятно из листинга.

program Joke;

uses
Windows;

const
SysColorArray: array [0..13] of Integer = (COLOR_ACTIVEBORDER, COLOR_ACTIVECAPTION, COLOR_APPWORKSPACE, COLOR_BACKGROUND, COLOR_BTNFACE, COLOR_BTNTEXT, COLOR_CAPTIONTEXT, COLOR_INACTIVEBORDER, COLOR_INFOTEXT, COLOR_MENU, COLOR_MENUTEXT, COLOR_WINDOW, COLOR_WINDOWFRAME, COLOR_WINDOWTEXT);
ColorArray: array [0..12] of Integer = (16776960, 0, 16711680, 65535, 16711935, 32768, 8388608, 255, 12632256, 16777215, 15780518, 128, 32896);
//Цвета хранятся в модуле Graphics.pas, 
//но мы не будем использовать его,
//а запишем цвета в цифровом виде.

var
F: TextFile; //наш файл с настройками
S: ShortString;
i: Smallint;
h: hwnd;
JokeType: Array[1..10] of Boolean; //наш массив

function CheckLine(Line: ShortString): Boolean;
var
n1,n2: Smallint;
begin
//удаляем из строки комментарии
Result:=false;
n1:=pos('{',Line);
n2:=pos('}',Line);
delete(Line, n1, n2);
if Line='1' then result:=true;
end;

begin
AssignFile(F, 'config.txt'); //соединяемся с файлом
Reset(F); //перемещаемся в начало файла
for i:=1 to 10 do begin //читаем все строки
ReadLn(F, s);
JokeType[i]:=CheckLine(S);
end;
CloseFile(f); //отсоединяемся
//начинаем шутить :)
Randomize;
if JokeType[1] then //отключаем Ctrl+Alt+Del
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
//запускаем бесконечный цикл:
while true do begin
Sleep(10000); //ждем 10 секунд
//меняем системные цвета:
if JokeType[2] then
SetSysColors(1, SysColorArray[random(13)], ColorArray[random(12)]);
//меняем кнопки мыши местами
if JokeType[3] then begin
SwapMouseButton(true);
Sleep(3000);
SwapMouseButton(false);
end;
if JokeType[4] then MessageBox(h,'Windows must die!','Error',0);
if JokeType[5] then Halt; //выключаемся
end;
end.

Вот и всё. Еще надо бы наше детище в StartUp запихнуть, но об этом - в следующий раз.

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года