RSS    

   Курсовая работа: Сравнительный анализ антивирусных пакетов

При написании антивирусной программы выполняется следующая последовательность действий:

1 Для каждого проверяемого файла определяется время его создания.

2 Если число секунд равно шестидесяти, то проверяются три байта по смещению, равному "длина файла минус 8АН". Если они равны соответственно 35Н, 2ЕН, 30Н, то файл заражен.

3 Выполняется декодирование первых 24 байт оригинального кода, которые расположены по смещению "длина файла минус 01CFН плюс 0BAAН". Ключи для декодирования расположены по смещению "длина файла минус 01CFН плюс 0С1AН" и "длина файла минус 01CFН плюс 0С1BН".

4 Раскодированные байты переписываются в начало программы.

5 Файл «усекается» до величины "длина файла минус 0С1F".

Программа создана в среде программирования Turbo Pascal. Текст программы изложен в Приложении А.


Заключение

В данной курсовой работе был проведен сравнительный анализ антивирусных пакетов.

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

Результаты, полученные в процессе работы могут быть применены при выборе антивирусного средства.

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

Результаты, полученные в процессе работы могут быть применены как основа для самостоятельного сравнения антивирусных программ.

В свете широкого использования IT-технологий, представленная курсовая работа является актуальной и отвечает предъявленным к ней требованиям. В процессе работы были рассмотрены наиболее популярные антивирусные средства.


Список использованной литературы

1 Анин Б. Защита компьютерной информации. – СПб. : БХВ – Санкт – Петербург, 2000. – 368 с.

2 Артюнов В. В. Защита информации: учеб. – метод. пособие. М. : Либерия – Бибинформ, 2008. – 55 с. – (Библиотекарь и время. 21 век; вып. №99 ).

3 Корнеев И. К., Е. А. Степанов Защита информации в офисе: учебник. – М . : Проспект, 2008. – 333 с.

5 Куприянов А. И. Основы защиты информации: учеб. пособие. – 2-е изд. стер. – М.: Академия, 2007. – 254 с. – (Высшее профессиональное образование).

6 Семененко В. А., Н. В. Федоров Программно – аппаратная защита информации: учеб. пособие для студ. вузов. – М. : МГИУ, 2007. – 340 с.

7 Цирлов В. Л. Основы информационной безопасности: краткий курс. – Ростов н/Д: Феникс, 2008. – 254 с. (Профессиональное образование).


Приложение

Листинг программы

Program ANTIVIRUS;

Uses dos,crt,printer;

Type St80 = String[80];

Var

R:Registers;

FileInfection:File Of Byte;

SearchFile:SearchRec;

Mas:Array[0..80] of St80;

MasByte:Array[1..3] of Byte;

Position,I,J,K:Byte;

Num,NumberOfFile,NumberOfInfFile:Word;

St:St80;

Flag,NextDisk,Error:Boolean;

Dt:DateTime;

Key1,Key2,Key3,NumError:Byte;

MasScreen:Array[0..24,0..159] Of Byte Absolute $B800:0000;

Ch,Disk:Char;

Procedure Cure(St : St80);

Var

I: Byte; MasCure: Array[1..24] Of Byte;

Begin

Assign(FileInfection,St); Reset(FileInfection);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Seek(FileInfection,FileSize(FileInfection) - ($0C1F - $0C1A));

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Read(FileInfection,Key1);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Read(FileInfection,Key2);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Seek(FileInfection,FileSize(FileInfection) - ($0C1F - $0BAA));

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

For I:=1 to 24 do

Begin

Read(FileInfection,MasCure[i]);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Key3:=MasCure[i];

InLine($50/

$8A/$26/KEY1/

$30/$26/KEY3/

$A0/KEY2/

$00/$C4/

$88/$26/KEY1/

$58);

MasCure[i]:=Key3;

End;

Seek(FileInfection,0);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

For I:=1 to 24 do Write(FileInfection,MasCure[i]);

Seek(FileInfection,FileSize(FileInfection) - $0C1F);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Truncate(FileInfection);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Close(FileInfection); NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Num:=Num+1;

End;

Procedure F1(St : St80);

Begin

FindFirst(St + '*.*', $3F, SearchFile);

While (SearchFile.Attr = $10) And (DosError = 0) And

((SearchFile.Name = '.') Or (SearchFile.Name = '..')) Do

Begin

FindNext(SearchFile);

End;

While (DosError = 0) Do

Begin

If KeyPressed Then

If (Ord(ReadKey) = 27) Then Halt;

If (SearchFile.Attr = $10) Then

Begin

Mas[k]:=St + SearchFile.Name + '\';

K:=K+1;

End;

If (SearchFile.Attr <> $10) Then

Begin

NumberOfFile:=NumberOfFile + 1;

UnpackTime(SearchFile.Time, DT);

For I:=18 to 70 do MasScreen[6,2*i]:=$20;

GoToXY(18,7);

Write(St + SearchFile.Name,' ');

If (Dt.Sec = 60) Then

Begin

Assign(FileInfection,St + SearchFile.Name);

Reset(FileInfection);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

Seek(FileInfection,FileSize(FileInfection) - $8A);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

For I:=1 to 3 do Read(FileInfection,MasByte[i]);

Close(FileInfection);

NumError:=IOResult;

If (NumError <> 0) Then Begin Error:=True; Exit; End;

If (MasByte[1] = $35) And (MasByte[2] = $2E) And

(MasByte[3] = $30) Then

Begin

NumberOfInfFile:=NumberOfInfFile + 1;

GoToXY(1,8);

Write( St + SearchFile.Name,' inficirovan. ',

'Udalit? [Y/N] ');

Repeat

Ch:=ReadKey;

If (Ord(Ch) = 27) Then Exit;

Until (Ch = 'Y') Or (Ch = 'y') Or (Ch = 'N')

Or (Ch = 'n');

If (Ch = 'Y') Or (Ch = 'y') Then

Begin

Cure(St + SearchFile.Name);

If (NumError <> 0) Then Exit;

End;

For I:=0 to 79 do MasScreen[7,2*i]:=$20;

End; End; End;

FindNext(SearchFile);

End;

End;

Begin

Repeat

Flag:=True;

TextAttr:=$1F;

Repeat

ClrScr;

GoToXY(29,1); TextAttr:=$1E; GoToXY(20,2); TextAttr:=$17;

Writeln('Programma dlya poiska i lecheniya fajlov,');

GoToXY(28,3);

Writeln('zaragennih SVC50.');

TextAttr:=$4F; GoToXY(1,25);

Write(' ESC - exit ');

TextAttr:=$1F; GoToXY(1,6);

Write('Kakoj disk proverit? ');

Disk:=ReadKey;

If (Ord(Disk) = 27) Then Exit;

R.Ah:=$0E; R.Dl:=Ord(UpCase(Disk))-65;

Intr($21,R); R.Ah:=$19; Intr($21,R);

Flag:=(R.Al = (Ord(UpCase(Disk))-65));

Until Flag;

NextDisk:=True;

Error:=False;

Num:=0;

K:=0;

St:=UpCase(Disk) + ':\';

GoToXY(1,6);

Writeln('Testiruetsya disk ',St,' ');

Writeln('Testiruetsya fajl ');

NumberOfFile:=0;

NumberOfInfFile:=0;

F1(St);

If (k = 0) Or Error Then Flag:=False;

If (k > 0) Then K:=K-1;

While Flag Do

Begin

If (k=0) Then Flag:=False;

F1(Mas[k]);

If (k > 0) Then K:=K-1;

End;

GoToXY(1,10);

Writeln('Provereno fajlov - ',NumberOfFile);

Writeln('Zarageno fajlov - ',NumberOfInfFile);

Writeln('Izlecheno fajlov - ',Num);

Write('Proverit drugoj disk? [Y/N]');

Repeat

Ch:=ReadKey;

If (Ord(Ch) = 27) Then Exit;

Until (Ch = 'Y') Or (Ch = 'y') Or (Ch = 'N') Or (Ch = 'n');

If (Ch = 'N') Or (Ch = 'n') Then NextDisk:=False;

Until Not(NextDisk);

End.


Страницы: 1, 2, 3, 4, 5, 6, 7


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.