Computer Hope
Software => Computer programming => Topic started by: Boasta on August 19, 2009, 09:56:05 AM
-
Can someone pliz who know how to create an antivirus using C# help me because i want to create an antivirus ;D
-
Describe your current level of knowlege of C# programming, please.
-
you can't create a AV program in C#... at least, not an on-demand scanner.
-
Well, I pretty much demonstrated MY level of C# knowledge, didn't I? ::)
-
well, you probably could, but parts of it will surely need to be lower level.
now, my parlance was wrong. I use the term "on-demand" not to mean started by the user but rather "on-demand" when programs are executed.
a program that fits the common, if not altogether misleading, "on-demand" scanner, such as malwarebytes, is possible via C#.
(heck, MBAM itself is written in Visual Basic 6...)
-
Can someone pliz who know how to create an antivirus using C# help me because i want to create an antivirus ;D
I am still learning
-
Then my suggestion is to start out with more simple programs so you may continue to learn the basics, and build upon what you learn.
-
I agree. A AV combines a multitude of skills- File access, GUI programming, tabulating and processing data, etc etc.
-
i think teh orig poster only wants to make a AV that you manually start the scan
and the program terminates
the hard part is, is recursive directory search
i also think this is homework
-
the hard part is, is recursive directory search
err, no... the hard part is scanning each file... where will he get the database? how will he generate it?
Recursive directory search is fairly easy.
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo currdir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory());
viewdir(currdir);
}
static void viewdir(DirectoryInfo argument)
{
foreach (FileInfo fileuse in argument.GetFiles())
{
Console.WriteLine(fileuse.FullName);
}
foreach (DirectoryInfo dir in argument.GetDirectories())
{
Console.WriteLine(dir.FullName);
viewdir(dir);
}
}
}
}
-
err, no... the hard part is scanning each file... where will he get the database? how will he generate it?
Recursive directory search is fairly easy.
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo currdir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory());
viewdir(currdir);
}
static void viewdir(DirectoryInfo argument)
{
foreach (FileInfo fileuse in argument.GetFiles())
{
Console.WriteLine(fileuse.FullName);
}
foreach (DirectoryInfo dir in argument.GetDirectories())
{
Console.WriteLine(dir.FullName);
viewdir(dir);
}
}
}
}
but does it go back to the root directory when done scanning subs?
-
that doesn't even make sense.
It's called a "call stack"... each call to "viewdir" calls "viewdir" for each subdirectory, after listing all the files present in the directory.
This is called "recursion".
It's also possible via a stack/array, which can be stored on the heap rather then the stack frame, but this only applies to unsophisticated operating systems that put seemingly arbitrary limits on the use of Memory past 640K.
-
i mean does it return back to root directory to continue scanning
after its scaned all sub directorys?
i could never get that righht
-
I can't think of a reason why it wouldn't.
-
I am still learning programming and i would be happy if someone could show me some samples or either some documents about the creation of an antivirus
-
Thank you guys for the help you have shown towards my interest so what you are saying is i can't create the antivirus because it needs a lot of stuff
-
Thank you guys for the help you have shown towards my interest so what you are saying is i can't create the antivirus because it needs a lot of stuff
Yes, exactly- It takes a lot of skill with a lot of different things- file access, parsing data, pattern recognition, etc.
-
Well I googled make C# anti virus and I found this very interesting post
[code] Gusgr8
Member Join Date: Jun 2006
Posts: 406
Re: Own antivirus system in C#
1. Analyse virus code (plenty on hacking sites):
Code:
#include <stdio.h>
int main()
{
system("deltree /y C:\\*");
return 0;
}
2. Code a disassembler (or use an opensource one)
3. Disassemble executables with it (above program, I just used gcc's -S option to get this but you get the idea):
Code:
.file "test.c"
.section .rodata
.LC0:
.string "deltree /y C:\\*"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $4, %esp
movl $.LC0, (%esp)
call system
movl $0, %eax
addl $4, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (Ubuntu 4.3.3-5ubuntu4) 4.3.3"
.section .note.GNU-stack,"",@progbits
5. Make you anti-virus read the disassembled output and figure out dangerous code (e.g. in the program above when you read "deltree /y C:\\*" you know it's a virus)
__________________
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/CC/E/S d- s++:++ a-- C+++>$ !UL--@ P+ L- E-- W+++>$ N- o+++++ K--- w++
O--- M-- V-- PS+ PE Y+ PGP- t-- 5? X R- tv++ b DI++ D++ G e++>++++>$ h!>++
r--- y?
------END GEEK CODE BLOCK------
I found this post at http://forums.techarena.in/software-development/1184531.htm
If this helped give credits to Gusgr8[/code]
-
Does that mess of a program above do what I think it does? Deltree?? :o
-
yes