Viren Scanner
-
Hallo ich würde mal gerne einen kleinen Viren Scanner Programmieren welches z.b. einfach nur 1 Hello World Programm als Virus anzeigt.
Nur leider hab ich auf dem Gebiet Viren Scanner programmierung 0 ahnung.
Kennt wer ein Tutorial oder so wo man sich da einlesen kann ?
-
scannerrr schrieb:
Hallo ich würde mal gerne einen kleinen Viren Scanner Programmieren welches z.b. einfach nur 1 Hello World Programm als Virus anzeigt.
Wie meinst du das? Jedes Programm, dass irgendwo "Hello World" ausgibt, wird direkt als Virus erkannt? Super-Scanner! Schick mir den, wenn du fertig bist.
-
Normalerweise wird ein Virus nicht daran erkannt, was er (auf der Konsole) ausgibt
Ein Virus kann sich außerdem hinter vielen Dateiformaten verstecken, das muss nicht zwangsläufig ein Executable sein. Da tun es manipulierte Bilder, PowerPoint, Musik, ... Da werden dann Lücken in der Dateiverarbeitung der einzelnen Programme ausgenutzt.Aber vllt. meintest du ja "Wie kann ich Viren ausführen, ohne dass sie meinem System Schaden zufügen?".
Dafür könntest du den Virus in einer Sandbox ausführen, also einer Umgebung, die Bibliotheken, Programme etc. aus deinem System (bzw. auch eigene) zur Verfügung stellt, aber keine sonstigen Zugriff auf die Festplatte. So dass sich z.B. ein "format C:\" oder "rm -rf /*" nicht destruktiv auf deinen Rechner auswirkt. Du kannst dadurch das Verhalten gut beobachten.
-
[quote="franz"]Normalerweise wird ein Virus nicht daran erkannt, was er (auf der Konsole) ausgibt
Ein Virus kann sich außerdem hinter vielen Dateiformaten verstecken, das muss nicht zwangsläufig ein Executable sein. Da run es manipulierte Bilder, PowerPoint, Musik, ... Da werden dann Lücken in der Dateiverarbeitung der einzelnen Programme ausgenutzt./quote]Das sind alles keine Viren. Das was du da aufgelistet hast wird generell eher als Malware eingestuft. Viren sind nur ein kleiner Teil der Malware und heute so gut wie nicht mehr aktuell. Heute findet man eher andere Arten von Schädlingen wobei hier die Grenzen auch nicht ganz eindeutig gezogen werden können und man deswegen einfach von Malware spricht.
Nur so als kleine Anmerkung.
Mal davon abgesehen ist dieser Thread überhaupt nicht C++ spezifisch und ich werde ihn deswegen in das richtige Forum verschieben.
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ja ich weiss das Viren nicht nur in Exe Datein sind^^
Aber ich dachte das wäre erstmal so am einfachste und die Sache mit dem Hello World sollte halt nur so ein beispiel sein ^^
Als Sandbox hab ich immer sandboxie ( www.sandboxie.com )
Aber die Sache ist halt wie sag ich dem Programm das es z.b. mein Hello World Programm als Virus erkennen soll.
Irgendwie muss ja denk ich mal der Source Code oder so überprüft werden ...
-
So und nun zur eigentlich Frage:
scannerrr schrieb:
Hallo ich würde mal gerne einen kleinen Viren Scanner Programmieren welches z.b. einfach nur 1 Hello World Programm als Virus anzeigt.
Nur leider hab ich auf dem Gebiet Viren Scanner programmierung 0 ahnung.
Kennt wer ein Tutorial oder so wo man sich da einlesen kann ?
Also mit 0 Ahnung so etwas zu programmieren ist jetzt nicht grade, errm, sinnvoll.
Du solltest schon definitiv Erfahrung mit Schädlingen haben, wissen was sie tun, wie man diese Analysiert und wie man sie auch identifizieren kann.Natürlich kannst du ganz einfach einen scanner schreiben der nach einer bestimmten byte folge in einer datei sucht z.B. den String "Hello World!". Du wirst damit aber auch schnell auf Grenzen stoßen. Heutige Anti Malware Software verwendet sehr viele techniken, unter anderem besitzen diese die Fähigkeit Dateiformate zu erkennen und bringen für diese spezielle Scantechniken mit, sie analysieren Software nach bestimmten mustern die typisch für Schädlinge sind und können sogar programme emulieren um ihr verhalten zu analysieren oder die verschlüsselung bzw komprimierung zu umgehen.
Viele gehen noch sehr viel weiter, darauf kann ich jetzt aber nicht wirklich eingehen.
Ich möchte nur klarstellen das ein anständiger Scanner eine Menge Arbeit und Know How abverlangt.
Wenn du aber wirklich interesse daran hast an so einem Projekt zu arbeiten kannst du dich auch einfach mit ClamAV beschäftigen und vielleicht dazu beitragen dieses Projekt zu verbessern.
BR
Vinzenz
-
Ja sowas z.b. mit einer Byte folge das würde mir ja schon reichen, ich will mir das halt mal ansschauen.
Aber wie kann ich überprüfen welche Byte folge in der Datei ist ?
Mit einem Hex editor könnte ich mir zwar suchen wie z.b. das Word Hello World in Hex aussieht, aber wie mache ich das mit meinem Programm ?
-
Du öffnest dir Datei und durchsuchst sie. Wie "das Wort in Hex aussieht", ist völlig egal...
-
Geht das z.b. mit ifstream also einfach anstatt eine Textdatei öffnen einfach eine Exe ? o_O
-
ifstream ist es völlig gleich, was die Datei genau enthält.
Du solltest nur aufpassen, dass du dann mit ifstream::binary öffnest...