Windows Defender+ Browser erkennen .exe als gefährlich



  • Was ist denn dein Ziel? Hast du ein fertiges Programm und möchtest es über einen FileHoster für andere zur Verfügung stellen?
    Wenn es nur ein privates Projekt für deine Freunde ist, dann müssen die eben (einmalig) die Warnung akzeptieren und dann den Dialog bestätigen ("Programm ausführen").



  • Mich würde eher mal der Code interessieren.



  • @Swordfish Es ist egal mit welchen Code (steht oben)



  • @Th69 Nur für mich und Freunde, denen schreckt das aber ein bisschen ab



  • Dann sag ihnen, daß so nun mal das sichere Internet funktioniert.

    Aber hier noch ein Link: Code Signing - Eine Anleitung (die eigentliche Signierung ist aber nicht kostenlos und evtl. zeitlich begrenzt).

    Aber selbst mit digitaler Signatur kann trotzdem diese Warnmeldung kommen, nur daß dann eben anstatt "Unbekannt" dann dein Name (mit dem du dich hast registrieren lassen) dort steht (aber ob das deine Freunde dann überzeugt?).



  • naja, danke



  • Wenn ich also ein HelloWorld mit VisualStudio erstelle, dieses irgendwo hochlade und ich das wieder runter lade kommt jedes Mal so eine SmartScreen Meldung, weil mein Programm nicht digital signiert ist? Ich kann also nicht mal ein cout << "hello world\n"; depolyen ohne dass ich mich um Digital Zertifikate kümmern muss?

    Dann müsste ja mein Programm auf dem Server verändert worden sein, denn wenn ich es lokal ausführe wird nicht über die fehlende Signatur gemeckert, aber wenn ich es von irgendwo runter lade wird sich über die fehlende Signatur beschwert? Woher soll denn Windows wissen ob ich das Programm runtergeladen oder von einem USB-Stick kopiert habe?

    Und bei einem HelloWorld was ich aus Visual Studio Code starte wird sich auch über das fehlende Digital Zertifikat beschwert?



  • Also ich habe eben mal Visual Studio Code installiert und folgendes Program kompiliert und aus Visual Studio Code gestartet und da kam keinerlei Meldung. Ich nutze Windows10 Pro mit Standardeinstellungen.

    #include <iostream>
    
    int main()
    {
        std::cout << "Hello" << std::endl;
        int i;
        std::cin >> i;
        return 0;
    }
    

    Vielleicht habe ich dich auch falsch verstanden. Muss ich die Exe erst auf einem Filehoster hochladen(welcher Filehoster, nur Discord?), dann runterladen(mit welchem Browser?) und nach dem Ausführen kommt die Meldung? Oder kam die Meldung tatsächlich schon lokal, während du die Exe aus Visual Studio Code oder nur rein aus Visual Studio 2019 startest?



  • @chris4cpp
    Nach meinem Wissen fügt Windows jeder heruntergeladenen Datei eine paar versteckte Bytes am Ende der Datei hinzu.

    Genauer gesagt speichert sich Windows den Ursprungsort (Zone Identifier) im Alternate Data Stream, welche am Ende der Datei gespeichert wird.

    https://hshrzd.wordpress.com/2016/03/19/introduction-to-ads-alternate-data-streams/



  • Interessant, geht dann aber nur wenn man den Microsoft Browser benutzt, oder?



  • @chris4cpp
    Ich glaube dass das alle Programme betrifft welche Dateien aus dem Internet laden wollen und hierfür Windows Funktionen nutzen.

    Ich hätte da die Urlmon.dll, URLDownloadToFile() in Verdacht.

    https://msdn.microsoft.com/en-us/ie/ms775123(v=vs.94)

    Nutzt ein Programm diese Funktion(en) nicht und implementiert diese selbst, so wird vermutlich auch kein Zone Identifier gesetzt.

    Man kann das speichern der Zone Identifier auch ausschalten.

    https://devblogs.microsoft.com/oldnewthing/20140311-00/?p=1543

    Der Link führt dich zum The Old New Thing Blog, einem sehr interresanten und empfehlenswerten Blog. Wenn du die Links darauf folgst, findest du die Einstellungsmöglichkeiten.



  • @Quiche-Lorraine sagte in Windows Defender+ Browser erkennen .exe als gefährlich:

    The Old New Thing Blog, einem sehr interresanten und empfehlenswerten Blog.

    +1


Log in to reply