Fertige exe - SmartScreen Unbekannter Hersteller

  • Allgemein

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    Fertige exe - SmartScreen Unbekannter Hersteller

    Hey,
    bei einer Software an der ich gerade mit ein paar anderen arbeite, kommt es beim installationsversuch der fertigen exe zur Anzeige der Windowswarnung:

    Der Computer wurde durch Windows geschützt.
    Von Windows Defender SmartScreen wurde der Start einer unbekannten App verhindert. Die Ausführung dieser App stellt u.U. ein Risiko für den PC dar.

    Natürlich kann man das Programm trotzdem ausführen lassen oder solche Meldungen für sich selbst gar nicht erst anzeigen lassen.
    Bei der Nutzung von Kunden allerdings ist das etwas unvorteilfhaft.

    Gibt es die Möglichkeit Programme so zu kompilieren bzw. irgendwo bei Microsoft zu registrieren, dass diese nicht geblockt werden?

    Vielen Dank euch im Voraus

    Aus Tipps und Tricks verschoben ~ EaranMaleasi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    Am "einfachsten" geht es wohl mit einem CodeSigning Zertifikat, mit dem man die fertige .exe Datei signiert. Dann meckern weder UAC (Blauer Dialog), noch SmartScreen. Leider kostet das nicht gerade wenig.
    Hier ein Beispiel:
    digicert.com/code-signing/#What_is_Code_Signing

    Der kompliziertere Weg wäre sich an Microsoft zu wenden, und jedes mal, wenn ihr eine neue Version erstellt, diese von Microsoft prüfen und auf ne Whitelist für SmartScreen setzen zu lassen. Das behebt jedoch nicht, dass ihr den gelben UAC Dialog bekommt, falls ihr erweiterte Rechte benötigt.
    Vielen Dank für deine Antwort.

    Je nachdem wie hochpreisig die Software ist lohnt es sich vielleicht schon.
    ~ 480 € / Jahr sind je nach Firma denke ich verkraftbar, für den Beginn eines kleinen Startups jedoch eher nicht.

    Mit der UAC Meldung kann man denke ich leben. Selbst Adobe Programme zB oder andere großer Hersteller lösten bei mir früher schon UAC-Dialoge aus, mittlerweile habe ich das abgeschaltet, aber viele Kunden sicher nicht.
    Doch das ist man mittlerweile ja bereits gewohnt bei Neuinstallationen wenn man UAC eingestellt hat.
    Eine große blaue Nachricht jedoch, welche die Software als bedenklich deklariert und man nur über einen kleinen Link und Klickerei doch zulassen muss ist da etwas anderes.

    Die Frage ist, sich selbst an Microsoft wenden, hatte in der Vergangenheit immer das Gefühl da erreicht man eher jemanden von Google und das ist schon eine Herausforderung.
    Und ob die die Software kostenfrei durchwinken glaube ich auch nicht recht ...
    Hallo Firehold,

    ich habe gerade das Selbe Thema auf dem Schirm, weswegen ich das Thema nochmal aus der Schublade hole.

    Ich musste feststellen, dass mein Programm eingangs keine solche Warnung ausgelöst hat. Mit weiteren fortschreiten des Programms ist dann plötzlich diese Meldung aufgetaucht. Ich vermute daher, dass diese Meldung durch bestimmte Module getriggert wird.
    Bei mir wurde das erst ein Thema nachdem ich angefangen habe Code zu implizieren, der auf die HDD schreibt bzw. externe Programme aufruft. Da dies nach einem größeren Update geschehen ist, konnte ich leider nicht mehr den entsprechenden Code isolieren.
    Bist du mit dem Thema weitergekommen?

    Ich schreibe in VB.net und nutze folgende Inserts. Vermutlich löst eine dieser die Meldung aus.:
    Imports System.Runtime.InteropServices
    Imports System.Text
    Imports System.IO
    Imports System.Text
    Imports System.Net
    Imports System.Data.OleDb

    Leider ist es für mich aktuell sehr zeitintensiv das mal eben auszuprobieren. Und die einzeln zu deaktivieren, da dann auch immer der entsprechende Code als Kommentar gesetzt werden muss, damit die Datei überhaupt komplimiert wird.

    Grüße,
    Wer nichts weiß ist nicht Dumm sondern unwissend!
    VB.NET Neueinsteuger... aber natürlich immer in "Option Explicit" - sonst lernt man nit!
    @Darkscale Ich tippe schwer darauf, das es nicht an einem einzelnen Import liegt. Es wird eine Kombination von mehreren Faktoren sein.
    Du sagst auf platte schreiben, wie auch externe Programme aufrufen, dann sehe ich Imports System.Net, wenn du was runterlädst und auf Platte schreibst, kann an es dieser Kombination liegen. Wenn du nun Anwendungen runterlädst, auffe Platte schreibst und dann startest, wird es das sein.

    Bei Bösartigen-Programmen wird auch oft im nachhinein runtergeladen, das Schadhafte ist nicht immer im eigendlichen Programm, daher sind solche Verhaltenweisen von Programmen eben verdächtig. Besser einen false positive, als ups.
    Wo soll denn das Programm installiert werden? Wenn der Speicherort von Windows kontrolliert wird (Z.B. C:\Programme), kann es Probleme geben.

    Wenn Du dein Programm unter Projekt- Projekteigenschaften - Signierung mit einem Testzertifikat versiehst, sollte es eigentlich gehen. Ok - es gibt keine blauen nur einen gelben UAC-Bildschirm, aber mit dem kann man leben.
    Wenn man sich das Zertifikat selber baut (OpenSLL, XCA), muss man darauf achten, dass die Codesigning-Flags gesetzt werden.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Ich habe in meinem Programm keine Installationsroutine. Das Programm kann abgelegt werden wo der User das möchte.
    Die Warnung wird nur beim ersten Programstart angezeigt, sofern man dieses mit "Trotzdem Ausführen" startet. Alle weiteren Startvorgänge erfolgen dann ohne Warnung. Damit wir alle von der gleichen Meldung sprechen. Es geht um Diese hier:

    Wer nichts weiß ist nicht Dumm sondern unwissend!
    VB.NET Neueinsteuger... aber natürlich immer in "Option Explicit" - sonst lernt man nit!
    Hast Du schon deine Applikation schon mit einem Zertifikat signiert?

    Wie sieht das Zertifikat aus? Hat es ein CodeSigning Flag?

    Wenn das Zertifikat nicht von einer CA (Certificate Authority= Die Stelle die die Zertifikate ausstellt) kommt, die schon im WindowsTruststore vorhanden ist, muss die Zertifikatskette noch in die entsprechenden Truststores von Windows eingefügt werden.

    PS
    Ich bin in einem Project aktiv, das langfristig versucht, kostenfreie Zertifikate (auch mit CodeSigning) für Privatanwender zur Verfügung zu stellen. Da werden noch Entwickler für Java und Administratoren mit Puppet-Kenntnissen gesucht. (Bei Interesse bitte PN an mich)
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).