it-swarm.com.de

Meine Programme werden von avast antivirus blockiert

Ich bin ein Amateurprogrammierer und werde wegen eines großen Problems verzweifelt und verrückt: Die meisten meiner Programme werden von avast Anti-Virus blockiert, andere dagegen nicht, und ich verstehe nicht, warum. Je mehr ich zu untersuchen versuche, desto weniger verstehe ich, was das Problem sein könnte. 

Ich bitte Sie um Hilfe, um eine Lösung zu finden, durch die meine Programme nicht mehr blockiert werden, oder standardmäßig mindestens einige Hinweise, die erklären könnten, warum dies der Fall sein könnte. Es gibt bereits viele Themen im Internet. Die meisten von ihnen geben jedoch nur oberflächliche Antworten: Sie erklären lediglich, wie Antivirus mit Signaturen und Erkennungsheuristiken funktioniert, oder geben an, dass Sie die betreffende Anwendung nur in die weiße Liste aufnehmen müssen, ohne eine andere Frage zu stellen. Obwohl es sicherlich richtig ist, sind es keine akzeptablen Antworten in meinem Sinne, denn ich habe immer noch meine eigenen Programme, die sich weigern zu arbeiten, ohne eine konkrete Idee zu haben, um mit der Untersuchung zu beginnen.

Avast 7.x ist der einzige Virenschutz, der meine Programme blockiert. Kein anderer Antiviren-Server sieht für die Ausführung meiner Software Probleme. Zweitens habe ich mich selbst nicht durchgeknallt. es ist auf dem Rechner eines Freundes installiert ... Ich habe Windows 7, er hat Windows XP. Ich bin absolut sicher, dass das Problem nur für avast gilt: Wenn es vorübergehend deaktiviert wird oder wenn das Programm zu seiner Positivliste hinzugefügt wird, funktioniert alles wie erwartet.

Drei verschiedene Programme sind in Schwierigkeiten:

  • Ein Texteditor mit dem Ziel, den Windows-Notizblock zu ersetzen und dabei einfach, effizient und anpassbar zu bleiben
  • Ein kleiner Amateur-Audio-Player, sehr einfach zu bedienen
  • Das Client-Programm einer Online-Spieleplattform mit derzeit mehr als 1000 Benutzern

Die erste ist Open Source, ich kann bei Bedarf einen Link zur ausführbaren Datei und zum Quellcode geben. Die beiden anderen sind Closed Source, aber frei verwendbar. Ich kann nur einen Link zur ausführbaren Datei der aktuellen Version angeben. Die einzigen offensichtlichen Gemeinsamkeiten zwischen diesen drei Programmen sind ich als Entwickler, mein Windows 7-Computer, der sie kompiliert hat , die Compilerfamilie, die MinGW/GCC ist, und sie sind alle win32-GUI-Anwendungen ohne Framework (kein MFC, kein WPF, kein QT, WXWidgets oder was auch immer; nur reine win32/C-GUI-Anwendungen)

Hier sind meine Beobachtungen und zwar soweit:

  • Die Versionen 1.1, 1.2.1 und 1.3 meines Texteditors sind gesperrt. Sie sind in C und nicht in C++, wurden mit GCC 3.4.5 im Unicode-Modus kompiliert und in portablen Zip-Dateien verteilt (per Portable meine ich einfach keinen Installer und keine Installation).
  • Version 1.4.1 desselben Texteditors wird nicht blockiert. Es wurde mit GCC 4.7.2 kompiliert, noch in C und nicht in C++, noch im Unicode-Modus und als tragbare Zip-Datei
  • Alle Versionen meines Audioplayers sind gesperrt. Sie sind in C++ mit aktivierten 0x-Funktionen, wurden von GCC 4.7.2 im ANSI-Modus kompiliert und in einer portablen Zip-Datei verteilt
  • Die aktuelle Version 1.7.2 meines Spiels wird nicht blockiert. Es befindet sich in C, wurde mit GCC 3.4.5 im ANSI-Modus kompiliert und wird als Installationsprogramm von Inno-Setup 5 vertrieben.
  • Die neue Version meines Spiels, 2.0.0, die derzeit eine private Beta ist, ist gesperrt. Es ist in C++ mit aktivierten 0x-Funktionen aktiviert und wurde mit GCC 4.7.2 im Unicode-Modus kompiliert. Ich teile es mit meinem privaten Betatest-Team als Zip-Dateien in einem privaten Dropbox-Ordner

Das Problem wird durch die automatische Sandbox von avast 7.x verursacht. Folgendes geschieht, wenn versucht wird, ein Programm zu starten, das avast nicht gefällt:

  1. Der Benutzer doppelklicken oder die Eingabetaste der ausführbaren Datei drücken
  2. Das Programm startet, wird aber von avast fast sofort und zwangsweise abgestürzt
  3. Ein Popup erscheint und sagt so etwas wie: avast hat dieses Programm in seine Sandbox gelegt, weil sein Ruf gering ist
  4. Wenn Sie auf die Schaltfläche "Weiter" des Popup-Fensters klicken, wird die Ausführung des Programms erneut gestartet und funktioniert normal
  5. Wenn Sie nicht auf die Schaltfläche "Weiter" klicken, bleibt der Windows Explorer stehen, die ausführbare Datei verbleibt im Task-Manager und verwendet immer 76 KB RAM, während es nicht möglich ist, sie zu beenden. Nach etwa 5 Minuten wird der Windows Explorer nicht mehr gefroren, das Programm wird neu gestartet und funktioniert normal

Das ist inakzeptabel. Neulinge meines Programms, insbesondere das Spiel, wissen nicht, wie Antiviren funktionieren. Ich weiß nicht, wie man es auf die weiße Liste setzt und warum es die Blockierung aufheben wird. Ich weiß nicht, wie sie die Einstellungen ihres Antivirus ändern soll. Wenn sie das Pop-Up sehen, werden sie es nicht verstehen und werden ängstlich oder enttäuscht sein, weil sie nicht spielen können, ohne zu wissen warum. Und wenn sie das Popup nicht sehen, kann ich nicht erwarten, dass sie mit einem halbgefrierenden Computer 5 Minuten warten. jedes Mal wollen sie spielen.

Von dort habe ich folgende Abzüge gemacht:

  • Mein Computer ist nicht selbst infiziert und in die ausführbaren Dateien, die ich vertreibe, wird kein Virus injiziert. Andernfalls würden alle aktuellen Programme gesperrt. Ich habe zwei, die sind (mein Spieler und die neue Version meines Spiels), während eine (die neueste Version meines Texteditors) nicht ist. Das 1.7.2 des Spiels wurde im März 2012 erstellt, während das 1.4.1 des Texteditors aus Oktober 2012 stammt.Die neueste Version von GCC 4.7.2 ist aus den gleichen Gründen nicht die Ursache; Gleiches für ANSI vs. Unicode-Kompilierung.
  • Die minGW-C++ - Laufzeitumgebung, die als automatisch verknüpfte DLL bereitgestellt wird und in allen mit GCC 4.7.2 kompilierten C++ - Anwendungen obligatorisch ist, ist wahrscheinlich nicht die Ursache, da viele bekannte Programme dies verwenden. und mein Texteditor ist gesperrt und befindet sich in C und verwendet ihn daher nicht.
  • Mein Audioplayer und mein Spiel haben die Audiobibliothek gemeinsam. dies ist später nicht die Ursache, weil die Version 1.7.2 meines Spiels funktioniert und die neueste private Beta nicht. Natürlich wird diese Audiobibliothek auch in vielen anderen bekannten oder weniger bekannten Anwendungen verwendet, die nicht blockiert sind.
  • Sowohl der Spieler als auch das Spiel greifen mit Winsock auf das Netzwerk zu. Aus denselben Gründen ist es auch nicht die Ursache.
  • WENN es wirklich der Ruf von avast war, warum wurde die Version 1.4.1 meines nicht gesperrten Texteditors nur etwa 70 Mal heruntergeladen, während die gesperrte Version 1.3 mehr als 300 Mal heruntergeladen wurde? IT sieht völlig unlogisch aus. Reichen 70 Benutzer aus, um etwas über die Reputation zu behaupten? Ist es mehr mit 300 Benutzern? Ich glaube wirklich nicht ... wahrscheinlich ist eine kritische Masse von Dutzenden von Benutzern notwendig.
  • Darüber hinaus denke ich auch, dass die Tatsache, dass ich meine Programme als portable Zip-Dateien verteile, ein Grund für das Blockieren von avast sein kann, und umgekehrt kann die Tatsache, dass ein Programm gut in Programmdateien installiert ist, ein Grund sein, ihm zu vertrauen Mehr. Ich machte also eine einfache Erfahrung: Ich habe ein neues Installationsprogramm von inno-setup 5 für die Beta 2.0.0 meines Spiels sowie eines für die Version 1.3 meines Texteditors zusammengestellt und festgestellt, dass die Installationsprogramme selbst blockiert waren !.

Ich habe ein anderes Erlebnis mit meinem Freund gemacht, wo ich versucht habe, genau den Ort zu finden, an dem die Programme abstürzen, basierend auf MessageBeep (MessageBox ist ebenfalls gesperrt!). Mir ist nichts problematisch aufgefallen. Das Spiel wird blockiert, wenn SetDlgItemText zum ersten Mal im Anmeldedialogfeld aufgerufen wird. Wenn ich jedoch alle SetDlgItemText-Elemente entferne, wird dies weiter unten blockiert. Im Texteditor wird es blockiert, während die Menüleiste ausgefüllt wird ...

Mein Fazit ist, dass es etwas gibt, das avast nicht in der neuen Version meines Spiels, in den alten Versionen meines Texteditors und in meinem Audio-Player mag. Etwas, das in der neuesten Version meines Texteditors fehlt. Was könnte es sein ? Hast du eine Ahnung? Haben Sie nur eine Idee, wie ich fortfahren könnte, um herauszufinden, was es ist, damit ich hoffen kann, das Problem zu beheben? Gibt es nur eine Möglichkeit, ein solches Problem zu analysieren, oder wird die Lochwelt von avast verschraubt?.

Beachten Sie, dass ich eine Einzelperson bin und keine Firma. Alle diese Programme können kostenlos verwendet werden. Ich habe keine IDE für deren Entwicklung bezahlt, und ich werde von den Benutzern nicht bezahlt, wenn sie sie verwenden Ich gehe davon aus, dass ein Zertifikat wahrscheinlich überhaupt nicht erschwinglich ist. Darüber hinaus weiß ich nicht, ob es eine echte Lösung ist, wie eine mit GCC kompilierte Anwendung signiert wird, und ich möchte wirklich nicht zu einer "usine à gaz" wie MSVC wechseln. Ich würde diese Option lieber vergessen, wenn es eine andere Lösung gibt, sogar eine sehr schmutzige.

Danke fürs Lesen.

Thank you for reading.

40
QuentinC

Eine gute Möglichkeit, das Vertrauen aller AV-Software zu erhöhen, ist die digitale Signatur Ihres Codes. Thawte hat die billigsten anerkannten Zertifikate ab 100 €/Jahr.

- Update nach dem Kommentar von @ Herr_Doktor fast zwei Jahre später -

Ich bin vor kurzem in eine neue Situation geraten, als Code Signing keine Option war - ich schreibe Open Source für Joomla in PHP. Nachdem ich die ersten Hinweise erhalten hatte, dass Avast meine Datei als (falsch) positiv markiert hatte, nahm ich Kontakt mit ihnen auf, und die Datei wurde innerhalb weniger Stunden auf die Positivliste gesetzt. 

Um mein Leben zu vereinfachen, erstelle ich eine separate Datei mit der angeblich "gefährlichen" Funktion, damit zukünftige Änderungen am Programm nicht erneut für das Whitelisting eingereicht werden müssen.

Möglicherweise wurde die Geschwindigkeit in ihrer Antwort durch die Tatsache unterstützt, dass das Lesen einer kurzen PHP-Datei schneller ist als der von Reverse Engineering kompilierte Code. Trotzdem waren sie freundlich, schnell und effektiv.

13
Riccardo Zorn

Bei AV-Programmen werden Dateien nach Mustern mit bekanntem "schlechtem Verhalten" analysiert.

Wenn Ihr Programm Dereferenzierungen von Zeigern durchführt, die 200 Byte in einen 100-Byte-Puffer oder ähnliches schreiben, besteht die Möglichkeit, dass Sie Code erzeugen, der einer Signatur eines bekannten Angriffs ähnelt. (da die meisten Angriffe diese Art von Programmierfehlern ausnutzen)

Sie sollten Ihren Code debuggen (wenn Sie unter Linux versuchen, valgrind oder efence auszuführen) und sicherstellen, dass der Arbeitsspeicher korrekt verarbeitet wird.

6
Gung Foo

Sie können an diesem Artikel interessiert sein:

http://www.codeproject.com/Articles/71128/The-Case-of-Evil-WinMain

Es zeigt, wie Antivirenprogramme mit kleinen Programmen, die eine einfache C-Laufzeitbibliothek verknüpfen, buchstäblich verrückt werden können.

Das einzige, was Sie tun können, ist, den Virenschutz-Herstellern das Problem mitzuteilen und auf ein faires Verhalten von ihnen zu hoffen.

3

Alles klar, gehen Sie zu den avast-Einstellungen. Dort gibt es einen Bereich, in dem Sie Ausnahmeneinstellungen> Antivirus hinzufügen können. Dann scrollen Sie durch das Menü und es gibt einen Bereich mit der Bezeichnung EXCLUSIONS, in dem Sie zu Ihrem visuellen Studiopfad navigieren können. c:> john> documents> visualStudio2010> projects ::: Wählen Sie Ihren Projektpfad aus. Der Pfad wird zu einer Liste von Scanausnahmen hinzugefügt, und Sie sollten in der Lage sein, Ihre Dateien zu testen. Das hat für mich gut funktioniert. Ich habe den Tiefen-Scan in demselben Menü aufgrund eines Vorschlags eines anderen Mitglieds deaktiviert

1
John Snow

gehen Sie zu avast 'File System Sheild' und klicken Sie auf die Schaltfläche 'Expert Settings'. Suchen Sie dann im Menü auf der linken Seite die Option "Ausschlüsse" und klicken Sie darauf. Fügen Sie Ihr Projektverzeichnis in die Ausschlussliste ein. Dies ist nur dann sicher, wenn gefährliche Viren ohne Ihr Wissen in Ihren Projektordner kriechen: P

0
prasad

Sie müssen zu Ihrem Antiviren-Konto-> Einstellungen-> Ausschlüsse oder etwas Ähnlichem gehen und den von anderen erwähnten Dateipfad eingeben. Ich habe es mit avast gemacht. Das erste Mal hat es nicht funktioniert, also habe ich deinstalliert und installiert und bin dann zu Ausschlüssen gegangen und es funktioniert jetzt.

0
Pablo

Avast verfügt über eine Funktion namens Cybercapture/Deep Scan.

Das ist, was Ihre Probleme verursacht.

Es stört nicht einmal die Heuristiken. 

Wenn keine Authenticode-Signatur vorhanden ist, wird es für verdächtig gehalten und an avast gesendet, damit sie gescannt werden können. Wenn sie nicht als "OK" bezeichnet werden, können Sie sie nicht ausführen. Sobald sie es für ok erklärt haben, können alle anderen mit avast es sicher ausführen, wenn es mit ihrer Version übereinstimmt.

0
Chuck Cochems

Ich habe kürzlich ein Problem festgestellt, bei dem einige meiner Anwendungen nicht ausgeführt wurden. Sie werden als Prozesse (unter Windows) angezeigt, jedoch niemals unter der Registerkarte "Anwendung" im Task-Manager. Die Prozesse hatten typischerweise eine Speichergröße von etwa 120 KB, und manchmal gab es mehrere Prozesse.

Der Schuldige ist Avast DeepScreen. Von Avast: "Die DeepScreen-Technologie ermöglicht es Avast, in Echtzeit Entscheidungen zu treffen, wenn eine unbekannte Datei ausgeführt wird".

In meinem Fall wurde Matlab wie auch andere Anwendungen blockiert.

Es gab keinen Hinweis von Avast, dass eine Anwendung blockiert wurde, wodurch "Avast entfernen!" Kommentar oben durchaus angebracht.

0
vsstage

Ein Kommentar oben bezieht sich auf "wenn Sie Zeiger abmelden". Wenn Sie C oder C++ verwenden, wird dies Ihr Programm tun - so funktionieren sie.

Und da Carpetsmoker sagt, dass es keinen Zweck hat, Ihre eigenen Avast-Einstellungen zu ändern, sind es alle Leute, die Ihre Software herunterladen möchten, aber von Avast erschreckt werden. 

0
Nick Greenwood