Virenschutz programmieren
-
Hallo,
ich stelle mir gerade die Frage, wie man einen Virenschutz programmieren kann.
Das Grundkonzept über Hashvergleiche, etc. ist mir natürlich klar, mir geht es eher darum, wie man erfährt, wenn eine Datei geöffnet wird, usw.Gibt es da API-Funktionen, die mich darüber informieren, so dass ich sozusagen folgendes machen kann (Pseudo-Code):
bool onOpenRequest(const char *filename) { myScanner.scan(filename); // Datei überprüfen if (myScanner.isBad()) // Datei ist gefährlich { if (myScanner.askUser() == DIALOG_OPEN_FILE_ANYWAY) // Den Benutzer fragen { return true; // Datei trotzdem öffnen } return false; // Datei nicht öffnen } return true; // Datei enthält nichts gefährliches, öffnen ohne Rückfragen }
-
Geh noch ne Ebene tiefer. Im User Mode kannst eh nix gutes machen
-
soweit ich weiss geht das über dienste
-
Einfach die entsprechenden KernelAPI-Funktionen hooken.
ZwCreateFile sollte interessant sein.
-
File System Filter Driver Tutorial: http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c16543/
Such drivers are used by anti-viruses, security, backup and snapshot software.
-
ReadDirectoryChangesW()
bevor das sich meldet könnte es aber schon zu spät sein.