Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Echtzeitvirenscanner erkennen möglich? (https://www.delphipraxis.net/205047-echtzeitvirenscanner-erkennen-moeglich.html)

sh17 27. Jul 2020 13:50

Echtzeitvirenscanner erkennen möglich?
 
Bei Android Studio hab ich festgestellt, dass dieses einen informiert, wenn der Quellcode vom Echtzeitvirenscanner überwacht wird. Man solle doch das Verzeichnis als Ausnahme hinzufügen, um die Performance zu verbessern. Wie machen die das? Gibts da ein Ereignis, was man überwachen könnte oder ist das einfach nur geraten, weil es ungewöhnlich lange dauert?

KodeZwerg 27. Jul 2020 14:02

AW: Echtzeitvirenscanner erkennen möglich?
 
Unabhängig von Android Studio wollte das auch mal wissen, also "hat das System einen VirenScanner verbaut" und fand diesen in C geschriebenen WMI/WinApi Code:
Code:
#include <windows.h>
#include <wbemidl.h>
#include <iostream>
#include <conio.h>
#include <atlbase.h>
 
using namespace std;
#pragma comment(lib,"wbemuuid")
 
void main() {
    CoInitializeEx(0, 0);
    CoInitializeSecurity(0, -1, 0, 0, 0, 3, 0, 0, 0);
    IWbemLocator *locator = 0;
    CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (void **)&locator);
    IWbemServices * services = 0;
    wchar_t *name = L"root\\SecurityCenter2";
    if (SUCCEEDED(locator->ConnectServer(name, 0, 0, 0, 0, 0, 0, &services))) {
        printf("Connected!\n");
        //Lets get system information
        CoSetProxyBlanket(services, 10, 0, 0, 3, 3, 0, 0);
        wchar_t *query = L"Select * From AntiVirusProduct";
        IEnumWbemClassObject *e = 0;
        if (SUCCEEDED(services->ExecQuery(L"WQL", query, WBEM_FLAG_FORWARD_ONLY, 0, &e))) {
            printf("Query executed successfuly!\n");
            IWbemClassObject *object = 0;
            ULONG u = 0;
            //lets enumerate all data from this table
 
            std::string antiVirus;
 
            while (e) {
                e->Next(WBEM_INFINITE, 1, &object, &u);
                if (!u) break;//no more data,end enumeration
                CComVariant cvtVersion;
                object->Get(L"displayName", 0, &cvtVersion, 0, 0);
                wcout << cvtVersion.bstrVal << endl;
            }
        }
        else
            printf("Error executing query!\n");
    }
    else
        printf("Connection error!\n");
    //Close all used data
    services->Release();
    locator->Release();
    CoUninitialize();
    _getch();
}
Nie nach Delphi portiert bzw ausprobiert. Vielleicht ist es ja "die" Lösung vielleicht auch nicht...

Steku 27. Jul 2020 14:17

AW: Echtzeitvirenscanner erkennen möglich?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1470472)
Unabhängig von Android Studio wollte das auch mal wissen, also "hat das System einen VirenScanner verbaut"

Auch für Windows, und schon ein paar Tage alt, aber vielleicht funktionierts ja noch,
oder als Anregung...
https://theroadtodelphi.com/2011/02/...i-and-the-wmi/

Grüße
Steku

himitsu 27. Jul 2020 14:19

AW: Echtzeitvirenscanner erkennen möglich?
 
Ordentliche Virenscanner registrieren sich ja bei Windows
und da ginbt es inzwischen von Microsoft eine zentrale einheitliche API, wo man mit "irgendeinem" Virenscanner reden kann.
Dateien prüfen, oder sogar direkt einen Stream/Speicherbereich prüfen lassen und ich glaub da gab es auch Schnittstellen Hintergrundprüfung zu steuern (z.B. abfragen was geprüft wird).

https://docs.microsoft.com/de-de/win...terface-portal
https://www.heise.de/security/meldun...g-2690817.html

bzw. speziell für den Defender
https://docs.microsoft.com/de-de/win...tp/run-av-scan

KodeZwerg 27. Jul 2020 14:32

AW: Echtzeitvirenscanner erkennen möglich?
 
Zitat:

Zitat von Steku (Beitrag 1470475)
Auch für Windows, und schon ein paar Tage alt, aber vielleicht funktionierts ja noch

Danke für diese flotte Antwort/Anregung, das nehme ich heut Abend gerne mal unter die Lupe.

masc-online 27. Jul 2020 14:57

AW: Echtzeitvirenscanner erkennen möglich?
 
Ich hatte vor geraumer Zeit (Windows XP-Zeiten) nach dem Erscheinen der Virenscanner-Schnittstelle diese auch mal anprogrammiert, um den Status Virenscanner aktiv & aktuell anzuzeigen, weil sichergestellt werden sollte, dass das Programm seine eigentliche Funktionen nur mit aktivem Virenscanner ausübt. Danach durfte ich dann gefühlt jede Version des Programms einmal bei den üblichen AV-Herstellern "freischalten" lassen...

Inzwischen hat sich das Problem von selbst aus der Welt geschafft, weil das Programm anderweitig abgeschafft wurde. Aber die massiven Fehlalarme der Virenscanner hatte ich nur mit diesem einen Programm - so gut wie nie mit anderen. Ich weiß nicht, ob das reine Abfragen und anzeigen inzwischen als entspannter angesehen wird. Aber da Microsoft selbst ebenfalls einen Virenscanner mit ausliefert, kann man meiner Meinung nach nun eigentlich immer von "ja - es gibt einen Virenscanner" ausgehen und eventuellen Trubel deswegen aus dem Weg gehen. :-)

sh17 27. Jul 2020 15:01

AW: Echtzeitvirenscanner erkennen möglich?
 
oh gleich so viele Antworten, danke, ich grabe mich mal durch :)

sh17 11. Aug 2020 08:42

AW: Echtzeitvirenscanner erkennen möglich?
 
Zitat:

Zitat von Steku (Beitrag 1470475)
Zitat:

Zitat von KodeZwerg (Beitrag 1470472)
Unabhängig von Android Studio wollte das auch mal wissen, also "hat das System einen VirenScanner verbaut"

Auch für Windows, und schon ein paar Tage alt, aber vielleicht funktionierts ja noch,
oder als Anregung...
https://theroadtodelphi.com/2011/02/...i-and-the-wmi/

Also der Code aus dem Link funktioniert noch, mit dem kann man erkennen, was installiert ist. Alternativ auch per Kommandozeile

https://stackoverflow.com/questions/...irus-installed


Im Falle von Windows Defender findet man unter

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Win dows Defender\Exclusions

alle eingetragenen Ausnahmen.

Neue Ausnahmen bekommt man per Powershell-Script installiert. Das ist zum Beispiel hier beschrieben

https://stackoverflow.com/questions/...ogrammatically

himitsu 11. Aug 2020 12:12

AW: Echtzeitvirenscanner erkennen möglich?
 
Zum Testen kann man auch gern einen TestVirus ins AMSI reingeben und schauen ob er erkannt wird.
Wenn ja, dann ist wirklich ein VirenScanner bei Windows registriert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz