Final Document
Final Document
1. INTRODUCTION
A computer virus is a computer program that can copy itself and infect a computer
without permission or knowledge of the user. The term "virus" is also commonly used,
albeit erroneously, to refer to many different types of malware and adware programs. The
original virus may modify the copies, or the copies may modify themselves, as occurs in a
metamorphic virus. anti-virus software that can detect and eliminate known viruses after
the computer downloads or runs the executable. There are two common methods that an
anti-virus software application uses to detect viruses. The first, and by far the most
common method of virus detection is using a list of virus signature definitions. They are
heuristic analysis and signature scanning. In signature scanning only single virus can be
detected at a time where as in The second method is to use a heuristic algorithm to find
viruses based on common behaviors. This method has the ability to detect viruses that anti-
virus security firms have yet to create a signature for.
For the users of antivirus products who would like to know the simulation of an
antivirus the Virus Detection System is an application which shows the way of approaching
a generic antivirus product
1
2. REQUIREMENT ANALYSIS
RAM : 32 MB or above
HDD : 40 MB
PLATFORM : WINDOWS XP
2
2.2 SRS
2.2.1 Vision
For the users of antivirus products who would like to know the simulation of an
antivirus the Virus Detection System is an application which shows the way of
approaching a generic antivirus product.
2.2.2 Scope
2.2.2.1Overview:
User can get the file, folder or the entire system to be scanned by selecting an
option from the scanning form. As a result of this a report is generated which is provided to
the user. If there are any infected files they are listed in the report. The user will be
provided options to delete the infected files or record their locations to delete them later.
The files selected to be deleted by the user will be removed from the computer
permanently. The locations of infected files will be stored in a safe place if the user selects
the option to delete them later. The user is also provided with an option to update the virus
data base by adding a new code or deleting the existing one.
2.2.2.2 Exclusions:-
The new viruses cannot be detected which are not in the database.
2.2.2.3 Assumptions:-
3
2.2.3 System Functions
DATABASE UPDATION
1. s1.1 Adding new code to the database.
2. s1.2 Deleting the existing old code.
SCANNING FILES
3. s2.1 Scanning the selected file or folder
4. s2.3 A report is generated with status of scanned files.
5. s2.4 Provides the option to delete the files which is infected.
6. s2.5 Provides an alternate option to record the infected file location.
SCANNING REPORT
8. s3.2 Provides the options like moving to vault and delete now.
VIRUS VAULT
8. s4.1 View the affected files.
9 s4.2 Delete the selected files.
2.2.4 Glossary
Virus vault The virus affected files are stored here which can be deleted later by the user
4
2.2.5 Detailed Software Requirements
2.2.5.1.1 Actors:
Can view the virus vault at any time to delete the infected files.
Frequency of Use High
Work Environment / Location Stand alone Window.
Number of Users 1 to Many
5
2.2.5.1.2 List of Use Cases:
Scanning Files.
Updating Database.
Storing the Infected Files.
Scanning Files
Updating Database
User
Storing the
infected Files.
6
2.2.6 Detailed Use Case Descriptions:
Actor(s) User
Summary The user can scan a file, folder, And All drives in My computer and detects the infected
files, generate a scanning report to Use.
Preconditions Database must contain at least one code.
Main Flow 1. The user enters the use case. 1.1. System displays the list of Scanning
options. The following options are given to
the user.
2. User selects one of the options: S1 or S2 or 2.1. The selected option (sub flow) is
S3. For S1 and S2, User must enter/select the file executed.
name or folder name.
1. User selects S1 after selecting Scanning 1.1. User selects the file from file
Options. browser.
7
1. User selects S2 after selecting Scanning 1.1. User selects the folder from
Options. folder browser.
Alternate A1. User chooses to cancel the operation. If it is from one of the sub flows, it takes the user to
Flows the main flow. If Exit is selected from the main flow, the user is taken to the application main
screen.
Business --
Rules
Sequence
User Scanner
Diagrams
1: File / folder
2: Scanning
3: Scanning Report
8
Screen Shot
9
2.2.6.2 Updation Table
Actor(s) User
Summary User can Add a New code into database and delete the old code from database
Preconditions
Main Flow 1. The user enters the use case. 1.1. System displays the list of Database
options. The following options are given to
the user.
2. User selects one of the options: S1 or S2 or S3. 2.1 The selected option (sub flow) is
executed.
1. User selects S1 after selecting database 1.1. User enters the code name and
Options. instructions to database.
10
S2.Adding new codes from ASM file to database.
1. User selects S2 after selecting database 1.1. User enters the code name
Options. selects the ASM file from file
browser.
1. User selects S2 after selecting database 1.1. User selects available code
Options. names and instructions from
database.
Alternate A1. User chooses to cancel the operation. If it is from one of the sub flows, it takes the user to
Flows the main flow. If Exit is selected from the main flow, the user is taken to the application main
screen.
Post Virus database will be updated by adding new code or deleting the existing code.
Conditions
Cross S1.1,S1.2
Reference
Business --
Rules
11
Sequence
User Database
Diagram
1: Adding code
2: Updating
3: Status
4: Deleting Code
5: Updating
6: Status
Screenshot
12
2.2.6.3 Vault Table
Actor(s) User
Summary Virus Vault contains the list of filenames which are infected by a virus in database.
Main Flow 1. The user enters the use case. 1.1. System displays the list of infected files.
Following options is given to the user.
S1.Delete files.
2. User selects one option or closes the form. 2.1 The selected option (sub flow) is
executed.
Sub Flows S1. Delete File
1. User selects S1 after selecting Virus 1.1. System deletes the selected file
vault. from Computer.
Alternate A1. User chooses to cancel the operation. If it is from sub flow, it takes the user to the main flow.
Flows If Exit is selected from the main flow, the user is taken to the application main screen.
Cross S3.1,S3.2
Reference
13
Sequence
User Virus Vault
Diagram
Selecting Option
Delete files
Business --
Rules
Screenshot
14
2.2.7 Functional Capabilities
The affected file locations must be automatically moved to the virus vault when the user
doesn’t select any one of the options like deleting file or move to the virus vault in the
report form.
During the scanning, file should not be accessed by another process.
15
3. SYSTEM DESIGN
TABLE NO 3:3.1:
NAME: SCODE
PURPOSE:
This table is used to store the virus codes that will be used to compare with the translated
file codes.
TABLE NO 3:3.2:
NAME: REPORT
PURPOSE:
This table is used to store the file locations and their status that have been scanned temporarily to
pass them to the next module after completing all the selected files.
TABLE NO 3:3.3:
NAME: VAULT
16
PURPOSE:
This table is used to store the locations of the files that are affected and have been moved
to the vault for deleting them in the future.
Normalization
17
Column Name Data Type Size Constraints
18
3.3 UML Diagrams
Use case diagrams are created to visualize the relationships between actors and use
cases. A use case is a pattern of behavior the system exhibits. Each use case is a sequence
of related transactions performed by an actor and the system.
A flow of events documents is created for each use cases, written from an actor
point of view. Details what the system must provide to the actor when the use cases are
executed.
Typical Contents:
Actor
Actor
Use case:
19
3.3.1.2 Use case diagram for User
Scanning Files
Updating Database
Use
r
Storing the
infected Files.
20
A Class diagram gives an overview of a system by showing its classes and the
relationships among them. UML class is a rectangle divided into: class name, attributes,
and operations.
Our class diagram has three kinds of relationships.
21
3.3.2.1 Class Diagram for Virus Detection System
Data Base
virus code
add code()
delete code()
1 1
User
1..*
Scan()
Delete()
1
1..n
Files
1..n path
extension
access rights
move to vault()
22
3.3.3 Sequence Diagram
A type of interaction diagram, a sequence diagram shows the actors of the object
participating in an interaction and the events they generate arranged in a time sequence.
Often a sequence diagram shows the events that results from a particular instance of a
particular instance of a use case but a sequence diagram can also exist in a more generic
form.
The vertical dimension in a sequence diagram represents time; with time preceding
down the page the horizontal dimension represents different actors.
23
3.3.3.1 Sequence Diagram for Scanning
User Scanner
Display Options
Scanning
Generates Report
24
3.3.4 Collaboration Diagram
Collaboration diagrams are also relatively easy to draw they show the relationship
between objects and the order of messages passed between them. The objects are listed as
icons and arrows indicate the messages being passed between them .The numbers next to
the messages are called the sequence numbers. As the name suggests, they show the
sequence of the messages as they are passed between the objects. There are many
acceptable sequence numbering schemes in UML.
2: Adding
5: Deleting
1: Code Name, Instructions
4: Code name
User Data
base
3: Status
6: Status
25
4. SYSTEM IMPLEMENTATION
First clearing that Java is two things Java language and Java Platform. Similarly .Net is
two things the .Net supported languages and .Net Platform. Now come to major difference
which is root cause of differences between Java and .Net
26
The ideal of Java has always been a Single language shared by multiple Platforms.
Whereas .Net is based on Multiple languages shared by single Platform. Now come to
derived differences from this major difference.
Net has Multilanguage support. While java has based on java language only.
According to Microsoft latest news .Net support around 40 languages including
major market share COBOL Vb.net C#.net Perl and many others.
Net due to disconnected data access through ADO.Net has hi level of performance
against Java JDBC which requires multiple round trips to data base.
Java has support to open source platform while .Net has no direct support for Open
source Platforms.
4.1.2 Methodology
27
backups to numerous readers and then trying to coordinate database updates
without someone getting left out of the loop.
Data security! The web database is fully encrypted using a data encryption
password that you define. No one without that password can view your data, even if
someone hacks into your FTP site or intercepts the database upload.
Through the use of Data Access Passwords, the database administrator can control
who can update the data and which functional area(s) they're allowed to update.
You can assign the same functional area to more than one user. Of course, the
database administrator retains update authority over the entire database.
For each Data Access Password, simple checkbox options allow you to block users
with that password from even being able to see sensitive data items, such as social
security numbers and driver's licenses. There's a separate checkbox for each
sensitive data item, so you have full control.
DOTNET automatically handles the FTP site interface for you. When you log on,
DOTNET connects to your FTP site, downloads your encrypted database, and
decrypts it. Troop Master/Pack Master then decompresses the database and loads
the files into your Troop Master/Pack Master data folder. At that point, you can
even disconnect from the Internet. When you exit Troop Master/Pack Master,
DOTNET compresses and encrypts your updated database and uploads the
encrypted files back to your FTP site.
28
DOTNET guarantees the safe execution of code, including code created by
unknown or semi-trusted third parties. This is where the term managed code comes
from, because the applications have to meet security standards and are managed
just for that very purpose.
DOTNET builds all communication on industry standards to ensure that code based
on the .NET Framework can integrate with any other code. .NET uses XML
extensively, as well as other communication protocols such as SOAP (Simplified
Object Application Programming), which are both industry standards.
29
4.1.3.1 Forms:
The objects from the standard classes are called graphical user interface (GUI)
objects, and are used to handle the user interface aspect or programs. The style of
programming we use with these GUI objects is called event-driven programming. An event
occurs when the user interacts with a GUI object. For example, when we move the cursor,
click on a button, or select a menu choice, an event occurs. In event-driven programs, we
program objects to respond to these events by defining event-handling methods.
30
A form is a general-purpose window in which the user interfaces with the
application. A java GUI application program must have at least one form that serves as the
program’s main window. The visual basic supports the most rudimentary functionality to
support features found in any frame window, such as minimizing the window, moving the
window, resizing the window and so forth.
4.1.3.2 Oledb:
The OLE DB Data Provider is for use with databases that support OLE DB
interfaces. This data provider uses native OLE DB through COM interoperability to access
the database and execute commands. To use the OLEDB Data Provider we must also have
a compatible OLE DB provider. The following OLE DB providers are, at the time of
writing, compatible with ADO.NET:
Microsoft.Jet.Oledb.4.0 – OLE DB Provider for Microsoft Jet
The OLED DB Data Provider does not support OLE DB 2.5 interfaces, such as
those required for Microsoft OLE DB Provider for Exchange and Microsoft OLE DB
Provider for Internet Publishing. The OLE DB Data Provider also does not support the
MSDASQL Provider (Microsoft OLE DB Provider for ODBC). The OLEDB Data
Provider is the recommended data provider for applications that use SQL Server 6.5 or
earlier, Oracle, or Microsoft Access.
The classes for the OLE DB Data Provider are found in the System.Data.OleDb
namespace
In OLE DB Data Provider there are four key classes that are derived from the
following ADO.NET interfaces, found in the System.Data namespace:
IDbConnection – SqlConnection and OleDbConnection
IDbCommand – SqlCommand and OleDbCommand
IDataReader – SqlDataReader and OleDbDataReader
IDbDataAdapter – SqlDataAdapter and OleDbDataAdapter
31
4.1.3.3 Connection:
The connection classes inherit, as we just saw, from the IDbConnection interface.
They are manifested in each data provider as either the SqlConnection (for the SQL Server
Data Provider) or the OleDbConnection (for the OLE DB Data Provider). The connection
class is used to open a connection to the database on which commands will be executed.
4.1.3.4 Command:
The command classes inherit from the IDbCommand interface. As with the
connection class, the command classes are manifested as either the SqlCommand or the
OleDbCommand. The command class is used to execute T-SQL commands or stored
procedures against a database. Commands require an instance of a connection object in
order to connect to the database and execute a command. In turn, the command class
exposes several execute methods, depending on what expectations you have.
32
4.1.4 C:
The disassembling part of the system requires the language that can be written in
both high level and low level and the immediate option is the C language. We used C
language to create the disassembler and we have created the executable file of the
disassembly program and we used it as a disassembler tool in our project.
4.1.5 MS ACCESS:
Microsoft Access has changed the image of desktop databases from specialist
applications used by dedicated professionals to standard business productivity applications
used by a wide range of users. More and more developers are building easy-to-use business
solutions on, or have integrated them with, desktop applications on users' desktops.
At the same time, Microsoft Access has a powerful database engine and a robust
programming language, making it suitable for many types of complex database
applications.
Microsoft Access ships with the Microsoft Jet database engine. (For additional
information on the Jet database engine, please refer to Microsoft Jet Database Engine
Programmer's Guide, published by Microsoft Press). This is the same engine that ships
with Visual Basic and with Microsoft Office. Microsoft Jet is a 32-bit, multithreaded
database engine that is optimized for decision-support applications and is an excellent
workgroup engine.
33
Microsoft Jet has advanced capabilities that have typically been unavailable on
desktop databases. These include:
Microsoft Jet has built-in support for primary and foreign keys, database-specific
rules, and cascading updates and deletes. This means that a developer is freed from having
to create rules using procedural code to implement data integrity. Also, the engine itself
consistently enforces these rules, so they are available to all application programs.
Microsoft Jet stores User and Group accounts in a separate database, typically
located on the network. Object permissions for database objects (such as tables and
queries) are stored in each database. By separating account information from permission
information, Microsoft Jet makes it much easier for system administrators to manage one
set of accounts for all databases on a network.
As opposed to many database engines that return query results in temporary views
or snapshots, Microsoft Jet returns a dynaset that automatically propagates any changes
users make back to the original tables. This means that the results of a query, even those
based on multiple tables can be treated as tables themselves. Queries can even be based on
other queries.
34
Binding objects and data is easy with Microsoft Access. Complex data-
management forms can be created easily by dragging and dropping fields and controls onto
the form design surface. If a form is bound to a parent table, dragging a child table onto the
form creates a sub form, which will automatically display all child records for the parent.
Microsoft Access has a variety of wizards to ease application development for both
users and developers. These include:
The Database Wizard, which includes more than 20 customizable templates to create
full-featured applications with a few mouse clicks.
The Table Analyzer Wizard, which can decipher flat-file data intelligently from a wide
variety of data formats and create a relational database.
Several form and report wizards, which allow users great flexibility in creating the
exact view of data required, regardless of underlying tables or queries.
The Application Splitter Wizard, which separates a Microsoft Access application from
its tables and creates a shared database containing the tables for a multi-user
application.
The PivotTable® Wizard, which walks users through the creation of Microsoft Excel
PivotTables based on a Microsoft Access table or query.
In addition to the wizards just listed, Microsoft Access provides a number of ease-of-
use features in keeping with its goal of providing easy access to data for users. These
include:
Filter by Form, which allows users to type the information they seek and have
Microsoft Access build the underlying query to deliver only that data, in a form view.
35
Filter by Input, which allows users simply to right-click on any field, in any view, and
then type the criteria they are looking for into an input box on a pop-up menu. Upon
pressing ENTER, the filter is applied and the user then sees only the information they
are looking for.
36
4:2 SAMPLE CODE:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Data.OleDb;
using System.Windows.Forms;
namespace WindowsFormsApplication1
public start()
InitializeComponent();
drives = Environment.GetLogicalDrives();
37
sdrive = drives[0];
try
Directory.CreateDirectory(sdrive + "VDS");
try
try
38
{
new virusvault().Show();
new add().Show();
new addfile().Show();
new delete().Show();
Application.Exit();
39
CODE FOR ADD DATA BASE
public add()
InitializeComponent();
try
if (con.State == 0)
rdr = cmd.ExecuteReader();
if (rdr.HasRows)
rdr.Read();
if(!(rdr.IsDBNull(0)))
count = Convert.ToInt32(rdr.GetValue(0)) + 1;
rdr.Dispose();
40
}
cmd.ExecuteNonQue
MessageBox.Show("Instruction inserted
successfully","Success",MessageBoxButtons.OK,MessageBoxIcon.Informa
tion);
textBox2.Text = "";
textBox2.Focus();
textBox1.Enabled = false;
closebut.Enabled = true;
cmd.Dispose();
textBox1.Text = "";
textBox2.Text = "";
41
textBox1.Enabled = true;
closebut.Enabled = false;
textBox1.Focus();
this.Close();
42
ADD FROM FILE
try
if (con.State == 0)
con.Open();
if (Rdr.HasRows)
try
Rdr = cmd.ExecuteReader();
Rdr.Read();
sno = Convert.ToInt32(Rdr.GetInt32(0));
sno++;
43
{
insert into codes values('" + textBox1.Text + "','" + fcode + "'," + sno + ");";
x+=cmd.ExecuteNonQuery();
openFileDialog1.ShowDialog();
fp = openFileDialog1.FileName;
textBox2.Text = fp;
this.Close();
44
}
DELETE CODE
public delete()
InitializeComponent();
try
if (Con.State == 0)
Con.Open();
this.Close();
45
private void deletebut_Click(object sender, EventArgs e)
try
name = comboBox1.SelectedItem.ToString();
Rdr.Dispose();
Cmd.Dispose();
int y = Cmd.ExecuteNonQuery();
listBox1.Items.Clear();
comboBox1.Items.Clear();
fillcombobox();
if (Con.State != 0)
Con.Close();
46
}
this.Close();
try
if (Con.State == 0)
Con.Open();
Rdr.Dispose();
Cmd.Dispose();
if (Con.State != 0)
Con.Close();
47
5. TEST CASES
Testing is the process of detecting errors. Testing performs a very critical role for
quality assurance and for ensuring the reliability of software. The results of testing are used
later on during maintenance also
The aim of testing is often to demonstrate that a program works by showing that it
has no errors. The basic purpose of testing phase is to detect the errors that may be present
in the program. Hence one should not start testing with the intent of showing that a
program works, but the intent should be to show that a program doesn’t work.
Testing is the process of executing a program with the intent of finding errors.
The main objective of testing is to uncover a host of errors, systematically and with
minimum effort and time. Stating formally, we can say,
A good test case is one that has a high probability of finding error, if it exists.
The software more or less confirms to the quality and reliable standards.
48
5.3 Levels Of Testing
In order to uncover the errors present in different phases we have the concept of
levels of testing.The basic levels of testing are
Unit testing focuses verification effort on the smallest unit of software i.e. the
module. Using the detailed design and the process specifications testing is done to uncover
errors within the boundary of the module. All modules must be successful in the unit test
before the start of the integration testing begins.
49
5.3.2 Integration Testing:
After the unit testing we have to perform integration testing. The goal here is to see
if modules can be integrated properly, the emphasis being on testing interfaces between
modules. This testing activity can be considered as testing the design and hence the
emphasis on testing module interactions.
Here the entire software system is tested. The reference document for this process
is the requirements document, and the goals to see if software meets its requirements.
Acceptance Test is performed with realistic data of the client to demonstrate that
the software is working satisfactorily. Testing here is focused on external behavior of the
system; the internal logic of program is not emphasized.
50
5.3.5 White Box Testing
This is a unit testing method where a unit will be taken at a time and tested
thoroughly at a statement level to find the maximum possible errors.
I tested step wise every piece of code, taking care that every statement in the code
is executed at least once. The white box testing is also called Glass Box Testing.
I have generated a list of test cases, sample data. Which is used to check all
possible combinations of execution paths through the code at every module level?
This testing method considers a module as a single unit and checks the unit at
interface and communication with other modules rather getting into details at statement
level. Here the module will be treated as a block box that will take some input and generate
output. Output for a given set of input combinations are forwarded to other modules.
Testing commence with a test plan and terminates with acceptance testing. A test
plan is a general document for the entire project that defines the scope, approach to be
taken and the schedule of testing as well as identifies the test item for the entire testing
process and the personal responsible for the different activities of testing. The test
planning can be done well before the actual testing commences and can be done in parallel
with the coding and design phases. The inputs forming the test plan are
Project plan
Requirements document
51
This project plan is needed to make sure that the test plan is consistent with the
over all plan for the project and the testing schedule matches that of the project plan. The
requirement document and the design document are the basic documents used for selecting
the test units and deciding the approaches to be used during testing. A test plan should
contain the following
Features to be tested
Test deliverables
Schedule
One of the most important activities of the test plan is to identify the test units. The
test unit is a set of one or more modules, together with associated date that are from a
single computer program and that are objects of testing.
A test unit can occur at any level and can contain from a single module to the entire
system thus a test unit may be a module, a few modules or a complete system.
A Test Plan is a general document for the entire project, which defines the scope,
approach to be taken and the schedule of testing, as well as identifying the test items for
entire testing process and the personnel responsible for the different activities of testing.
A test unit is a set of one or more modules together with associated date which are
from a single program and which are the object of testing. Test unit may be a module, a
few modules or a complete program,. Different units are usually specified for unit,
integration and system testing.
52
The basic units to be tested are
All these modules are integrated and the final system is also tested against various
possible test cases.
Features to be tested include all software features and combinations of features that
should be tested .A software feature is a software characteristics specified or simplified by
the requirements of design documents. These may include functionality, performance,
design constraints and attributes.
All the functional features specified in the requirement document will be tested. No
testing will be done for the performance. Since we doesn’t consider the response time,
throughout time and memory requirements.
The approach for testing specifies the over all approach to be followed in the
current project this is some times called testing criteria.
Testing deliverables should be specified in the test plan, before the actual testing
begins. Deliverables could be a list of test cases that were used, detailed results of testing.
Test summary report, test log and data about the code coverage.
53
5.4.1.4 Schedule
The test log provides a chronological record of relevant details about the execution
of the test cases. Different activities of testing and testing of different units that have
identified.
Personnel allocation identifies the persons responsible for performing the different
activities.
Here we specify all the test cases that are used for system testing. The different
conditions that need to be tested along with the test cases used for testing those conditions
and the expected outputs are given .The goal is to test the different functional
requirements, as specified in the requirements document. Test cases have been selected for
both valid and invalid inputs.
54
5.5 Test Cases
55
5.5.2 Add Code From File
VDS_TC02 Code name Giving File name Please enter the code name
without
File name
codename.
56
5.5.3 Delete Code
5.5.5 Report
VDS_TC01 Move to vault Selected file will Delete function will not
be moved to work
virus vault.
57
6.1 Output Screens:
58
6.1.1.2 Scanning Module
59
6.1.1.3 For Scanning Single File
60
6.1.1.4 Browse For Scanning Single File
61
6.1.1.5 For Scanning Single Folder
62
6.1.1.6 Browse For Scanning Single Folder
63
6.1.1.7 For Scanning My Computer
64
6.1.2 Database Updation Module
65
6.1.2.1 For Adding A New Code To Database
66
6.1.2.2 Form To Add The New Code
67
6.1.2.3 For Adding A New File To Database
68
CForm To Add The New Code From File
69
6.1.2.5 For Deleting A New Code From Database
70
6.1.2.6 Form To Delete The Code From Database
71
6.1.3 Help
72
6.2 Reports
6.2.1.1 Scanning Single File
73
6.2.1.2 Scanning Report Single File
74
6.2.1.3 Scanning Process For Single Folder
75
6.2.1.4 Scanning Report Single Folder
76
6.2.1.5 Scanning Process For My Computer
77
6.2.1.6 Scanning Report For My Computer
78
6.2.3 Virus Vault
79
7. CONCLUSION & FUTURE SCOPE
7.1 Conclusion
This project has dropped a small stone in water, by designing an application that
provides a generic antivirus approach that is used to scan the files efficiently. “Virus
Detection System” being developed by restricting to the present technology available in
our college meets the desired needs of the requirements completely.
Our system can be extended further to an extent at which it can provide more
facilities and flexibility than it provides at present. At present the disassembling of the file
to be scanned is limited to the exe files that were written in C and C++ only. The
disassembler provided in this system may not work properly when we are going to scan the
files that are written in other high level languages. So more the decompiling tools we can
add we can scan a wide range of variety of files.
At present in our system only the files that were scanned and reported as affected
can be deleted or can be moved to vault to delete in future. So the only option provided for
the user is to delete the affected file. More over the affected file can be repaired by deleting
the virus code that was matched from the disassembled code and restoring the new file
from the repaired code
80
8. BIBLIOGRAPHY
2. “C#: YOUR VISUAL BLUE PRINT FOR ERIC BUTOW & TOMY
[1].http://www.this.net/~frank/pstill.html
[2] http://www.google.com/antiviruscodes.html
[3]. http://en.wikipedia.org/wiki/Disassembler
[4]. http://en.wikipedia.org/wiki/Antivirus
[5]. http://en.wikipedia.org/wiki/virus
[6]. http://www.eset.com
81