Западло размером в 8 кб - Приколы - Delphi - Каталог статей - Вирусология, взгляд из Delphi
Суббота, 10.12.2016, 21:25 Приветствую вас Гость | Группа "Гости" 


Меню сайта

Категории раздела
Вирусология [39]
Статьи о вирусах
Системные [0]
Работа с системой
Примеры [44]
Приёмы, функции, процедуры
Ceти [1]
Работа с интернет
Приколы [5]
Пишем шуточные програмки
Остальное [5]
Всё что не вошло

Помощь проекту

R106276538945
Z160640024212

Яндекс деньги
410011190732605

Недавние темы

Опрос
У вас есть деушка (парень)?
Всего ответов: 391

Главная » Статьи » Delphi » Приколы

Западло размером в 8 кб
Лови мышь!
Мой любимый способ сделать кому нибудь zло - убить мышь. Но по своей природе я гуманный человек и мне не хочется убивать зверей. Что можно ещё сделать с этим несчастным существом? Правильно. Заставить её побегать. Создавай пустой текстовый файл и набивай следующее:

CODE
program MadMouse;

uses
Windows;

var
tmp: boolean=true;
begin
randomize;
repeat
SetCursorPos(random(1024), random(768));
sleep (500);
until tmp;
end.


Сохраняй все это добро сохраняй и присвайвай файлу расширение dpr. Запускай дельфи, открывай этот файл, компилируй и неси к другу . Обьясняю со слова begin. Randomize инициализирует генератор псевдослучайных чисел. Процедура SetCursorPos(random(1024), random(768)) перемещает курсор в случайные координаты экрана (random(x) random(y)). Sleep - ждать 500мс (полсекунды). Ожидание можно сделать и подольше, что бы жертва ничего не заподозрила. Ну и все это повторяется пока tmp=true. А tmp=true навечно . Значит все это будет выполняться пока процесс не снимут или не перезагрузят компьютер. Можно из программы сделать монстра - заставив прятаться от Alt-Ctrl-Del и прописываться в автозагрузку. Как это реализовать я надеюсь ты поймешь. Итого рзамер екзешника - 8Kb. Неплохо, правда?

Лопнувшие глаза
Поиздевавшись над мышой давай поиздеваемся над экраном. Создавай, сохраняй, компилируй так, как это было описано выше:

CODE
program BlackDeep;

uses
Windows,
Graphics;

var
dt : TCanvas;
begin
Randomize;
dt := TCanvas.Create;
dt.handle:= GetDC(0);
while true do
begin
Yield;
dt.Pixels[Random(1024), Random(768)]:=0;
end;
end.


Здесь экзешник получится помощнее - 120Kb. Все это из-за модуля Graphics, без которого никакой заподлянки не будет. Наша программа делает следуеще. Инициализируется генератор случайных чисел (Randomize). Затем создается обьект dt типа TCanvas (dt := TCanvas.Create). Берем описание устройства "Экран" и присваиваем его описанию dt (dt.Handle := GetDC(0)). Потом запускаем цикл (while true do), даем выполниться ожидающей задаче (Yield) и заполняем случайный пиксел экрана черным цветом (dt.Pixels[Random(1024), Random(768)]:=0;). На первый взгляд кажется сложно, но на самом деле все просто. Мне, кстати, очень нравится, что делает программа (только не надо называть меня извращенцем)... Так что я иногда запускаю её, что бы полюбоваться этим зрелищем. Но не советую увлекаться этим на Win9x/ME, а то придется перезагружаться.

Сумасшедшая винда
Все знают, что винда глючная. Щас мы сделаем её еще глючнее... Создавай текстовый файл и пиши:

CODE
program MadWinda;

uses
Windows;

var
CurrWnd:HWND;
begin
while true do
begin
CurrWnd:=GetForegroundWindow;
SetWindowText(CurrWnd, From Windows with Love);
Sleep(5000);
end;
end.


Компилируй это, а я расскажу что делает программа. Запускается бесконечный цикл, в котором мы считываем описание активного окна в переменную CurrWnd (CurrWnd:=GetForegroundWindow). Затем этому окну через описание (CurrWnd) меняем заголовок (SetWindowText(CurrWnd, From Windows with Love)). Потом ждем 5 сек и начинаем все сначала. Вот такая простенькая и оргиниальная заподлянка размером в 8Kb.

Прячем панель задач
Ну как же обойтись без классики zаподлостроительства? Создай пустой текстовый файл с расширением dpr и впиши это:

CODE
program HideTaskbar;

uses
Windows;

begin
ShowWindow(FindWindow(Shell_TrayWnd, nil), SW_HIDE);
end.


Вот и все! Такая вот заподлянка размером всего в одну процедурку! Тут и обьяснять то нечего. Программа ищет окно Shell_TrayWnd и прячет его. Что бы показать панель задач, вместо SW_HIDE напиши SW_SHOW.

Танцуют все!
Ну все, винду помучили. Экран и мышь тоже. Что ещё осталось? Ах да, старая добрая тетя клава. Щас мы заставить её перемигиваться лампочками. Создавай проект и пиши:

CODE
Program TancuytVse;

uses
Windows;

var
KS:TKeyboardState;
i:integer;

begin
while true do
begin
randomize
Yield;
Sleep(10000);
GetKeyboardState(ks);
i:=Random(2);
case i of
0:KS[020]:= KS[020] XOR 1;
1:KS[144]:= KS[144] XOR 1;
2:KS[145]:= KS[145] XOR 1;
end;
SetKeyboardState(ks);
end;
end.


Здесь запускается бесконечный цикл, в котором сначала инициализируем генератор псевдослучайных чисел (randomize), потом даем выполнится ожидающей задаче (Yield), делаем паузу в 10 сек. (Sleep(10000), запрашиваем состояние клавиатуры (GetKeyboardState(ks)), генерируем случайное число и на его основе виртуально нажимаем на клавишу NumLock, CapsLock или ScrollLock. Предупреждаю, что этот трюк не пройдет в NT-подобных системах (WinNT, 2000 и XP).

Обкурившийся CD-RoM
Ну и напоследок опишу ещё одну классическую заподлянку. Создавай и пиши:

CODE
program CrazyCD;

uses
windows, MMSystem;

var
OpenParm: TMCI_Open_Parms;
GeneralParm: TMCI_Generic_Parms;
SetParm: TMCI_Set_Parms;
Crd : Cardinal;
begin
while true do
begin
OpenParm.lpstrDeviceType := CDAudio;
mciSendCommand(0, mci_Open, mci_Open_Type, Longint(@OpenParm));
Crd := OpenParm.wDeviceID;
mciSendCommand(Crd, mci_Set, mci_Set_Door_Open, Longint(@SetParm));
mciSendCommand(Crd, mci_Set, mci_Set_Door_Closed, Longint(@SetParm));
mciSendCommand(Crd, mci_Close, mci_Notify, Longint(@GeneralParm));
sleep(10000);
end;
end.



Эта программа несмотря на подключенный модуль MMSystem занимает всего 8 килобайт. Здесь, как и во всех наших заподлянках, запускается бесконечный цикл, во время которого происходит следуещее. Заполним поле lpstrDeviceType параметром CDAudio, указывающее на сидюк. Потом пошлем mci команду mciSendCommand(0, mci_Open, mci_Open_Type, Longint(@OpenParm))) Переменной типа Cardinal присвоим ID девайса (Crd := OpenParm.wDeviceID). Затем последовательно посылаем команды mci_Set и mci_Close. Ждем 10 секунд и повторяем. Заморочено, но работает .
Категория: Приколы | Добавил: dolphin (09.04.2011)
Просмотров: 2955 | Рейтинг: 3.2/5

Всего комментариев: 0
avatar
Профиль


Логин:
Пароль:

Поиск

Наша кнопка

Вирусология, взгляд из Delphi



Статистика
HSDN :: Рейтинг сайтов WOlist.ru - каталог качественных сайтов Рунета Яндекс.Метрика Счетчик тИЦ и PR
Статистика материалов
Файлов: 364
Форум: 1128/7979
Коментариев: 760
Новостей: 27

Статистика пользователей
Всего: 385
За неделю: 2
Вчера: 0
Сегодня: 0
Всего онлайн: 2
Гостей: 2
Пользователей: 0

delfcode.ru © 2008 - 2016 Хостинг от uCoz