(Anti)Virus Selber machen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

also, man muss jeden virus den es gibt (stimmt nciht, kann es mir einfach nicht vorstellen) sind ja über XXXXX aufsammeln, und seine daten specihern?
das ist ja unmöglich.
man kann dooch sicher irgendwelche datein auch für anderre viren verwenden oder?
-.-"
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

(stimmt nciht, kann es mir einfach nicht vorstellen)
Wie stellst du dir das sonst vor ?
Eine Art Vireninstinkt ?
Vieleicht aber auch schwarze Magie?

Die Viren wurde ja nicht von Heut auf Morgen alle inspiziert.
Dieser Prozess läuft schon seit es Viren gibt.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Hroudtwolf hat geschrieben:
(stimmt nciht, kann es mir einfach nicht vorstellen)
Wie stellst du dir das sonst vor ?
Eine Art Vireninstinkt ?
Vieleicht aber auch schwarze Magie?

Die Viren wurde ja nicht von Heut auf Morgen alle inspiziert.
Dieser Prozess läuft schon seit es Viren gibt.
Also wenn man nen Intelligenten Antivirus proggen will würde ich Neuronale Netzwerke empfehlen. Als standardeigenschaft sollte ein Virus immer nach Dateien suchen, die erstmal verdächtig wirken(wenn troja oder vir oder worm oder sowas in der datei steht). Falls dies bei den Dateien nicht zutrifft: einfach mal durchstöbern, was es alles ausführt. Dann such nach irgendwelchen anhaltspunkten auf gefahr(beispiel: format C: oder sowas). Und dann gib ne meldung auf dem bildschirm aus und stoppe den prozess kurzfristig, damit der user zeit hat sich zu entscheiden.

Es gibt aber auch die Datenbank-methode(würde ich keinesfalls empfehlen, außer du lebst nur für deinen antivirus, denn du musst die datenbank täglich updaten).
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

aber wie meinst du das mit dem durchstöbern?
wenn man eine exe öffnet, wird sie ausgeführt, dann kann es ja schon zu spät sein.
oder meinst du sie öffnen, zb im editor?
-.-"
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Green Snake hat geschrieben:aber wie meinst du das mit dem durchstöbern?
wenn man eine exe öffnet, wird sie ausgeführt, dann kann es ja schon zu spät sein.
oder meinst du sie öffnen, zb im editor?
ReadFile hilft :lol: Ich meine nicht Ausführen sondern Öffnen wie mit Notepad, nur ohne Text sondern mit nem Buffer.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
mipooh
Beiträge: 226
Registriert: 12.12.2004 04:49
Kontaktdaten:

Beitrag von mipooh »

Es gibt doch auch für Linux Antivirenprogramme. Weiss zwar nicht in welcher Sprache sie programmiert sind, aber die Sourcen sind ja erhältlich. Da kannst Du Dich ja mal einlesen.
Gruss
Mipooh
Benutzeravatar
Ideenlos
Beiträge: 12
Registriert: 02.06.2005 16:27
Kontaktdaten:

Beitrag von Ideenlos »

Lukas-P hat geschrieben:Programmier lieber ne Firewall ;-)
Kannste mir das mal in ner pn en bissel genauer erklärn? Geht das etwa LEICHTER? :o
[Ich hatte keine Idee...]
Benutzeravatar
AndyMars
Beiträge: 141
Registriert: 08.09.2004 11:59
Computerausstattung: Win11 Prof 64bit, i5-13500 @ 4.8 GHz, 32GB RAM, Nvidia RTX 4070 TI
Wohnort: Zürich, Schweiz
Kontaktdaten:

Beitrag von AndyMars »

@Green Snake: Auch zu Deiner letzten Frage...

Ich weiss das nicht absolut genau, aber generell funktionieren die meisten Virenscanner so:

- Sie hängen sich in das Dateisystem von Windows ein (k.A. wie das geht - führt aber auch immer zu einer Verlangsamung des Systems...). Das heisst, jedes Mal, wenn irgendein Programm auf eine Datei zugreifen möchte, tut dies erst der Virenscanner. Wenn er meint, das die Datei potentiell einen Virus enthält, verhindert er den Zugriff des Programmes.
- Weiter führen Virenscanner auch komplette Scanns von Laufwerken durch. Das kann zu regelmässigen oder bestimmten Zeitpunkten stattfinden (z.B. nach Updates).

- Die Virenscanner erkennen die Viren tatsächlich anhand sogenannter Signaturen. Auf diese Weise erkennt er natürlich nur "alte" Viren. Deshalb ist es auch so wichtig, einen Virenscanner immer wieder zu aktualisieren, am Besten täglich. Es gibt aber sogar Hersteller, welche kürzere Update-Intervalle zulassen (wenige Stunden). In so einer Signaturdatenbank sind ohne weiteres mehrere 10000 Einträge... Die Signatur besteht aus einem eindeutigen Teil des Virencodes (vielleicht auch aus einer Checksumme - das weiss ich nicht so genau).
- Zusätzlich kennen viele Virenscanner auch die sogenannte Heuristik: Dies ist ein Verfahren zum Erkennen von unbekannten Viren (welche nicht in der Signaturdatenbank vorhanden sind). Die Heuristik bremst das System aber zusätzlich und ist nicht immer unbedingt zuverlässig: Das Erkennen von unbekannten Viren ist sehr schwer... manchmal werden auch unschädliche Programme als Viren eingestuft.

Einen professionellen Scanner zu programmieren erachte ich als sehr schwer - jeder der oben genannten Punkte (und noch mehr) erfordert ausgesprochene Spezialisierung in der Programmierung. Man könnte natürlich just for fun einen Virenscanner coden - verlassen würde ich mich auf den dann aber nicht :) ...
Grüsse von AndyMars
Benutzeravatar
Ideenlos
Beiträge: 12
Registriert: 02.06.2005 16:27
Kontaktdaten:

Beitrag von Ideenlos »

AndyMars hat geschrieben:Man könnte natürlich just for fun einen Virenscanner coden - verlassen würde ich mich auf den dann aber nicht :) ...
ich hab auch einen "just-for-fun" gecodet... denkste, auf den verlass ich mich :lol: ? bei einer erkennungsrate von ganzen 40 viren... =)
[Ich hatte keine Idee...]
Benutzeravatar
Ideenlos
Beiträge: 12
Registriert: 02.06.2005 16:27
Kontaktdaten:

Beitrag von Ideenlos »

nochmal ne andere frage: wie schafft es das anivirus-programm den ganzen computer zu durchsuchen? ich habs mit nextdirectoryentry() und so probiert, aber der schafft nie... Also hier ein
Beispiel:

Code: Alles auswählen

Ich will das Laufwerk C durchsuchen. Also durchsucht der das. Wenn er bei Dokumente und Einstellungen angelangt ist, soll er dort rein gehen und das durchsuchen. klappt aber nicht. der durchsucht keine einzige datei. wenn er aber dann wieder bei c angelangt ist, fängt er wieder neu an, obwohl ich die position - dort wo er aufgehört hatte zu suchen und in ein anderes verzeichnis gegangen ist - eingespeichert hatte.
Wie schaff ichs nun, das ich den ganzen Computer durchsuchen kann :?:
[Ich hatte keine Idee...]
Antworten