VirusError

#Einleitung

Es sieht immer schlecht aus, wenn ein Virenscanner was in der eigenen Software findet.
Daher hab ich mich ausgiebiger mit den letzten Virusfunden beschäftigt.

Ein Virus ist letztendlich ja nichts weiter als ein Programm. Um Viren, Trojaner und Würmer zu finden, werden unter anderem Bytesequenzen nach bestimmten Mustern durchsucht.
Das kann einerseits bedeuten, das Dinge gefunden werden, die nicht da sind (wie bei mir), oder Dinge nicht gefunden werden, obwohl sie da sind.
Darum muss ein Virenscanner auch immer möglichst aktuell gehalten werden.

Beispielsweise gibt es Programme wie Teamviewer oder VNC, die zur Fernsteuerung von Computern sehr nützlich sind.
Aber es gibt eben auch Trojaner, die die gleiche Funktionalität haben, sie aber ohne Wissen des PC-Nutzers anderen, unbekannten zur Verfügung stellen.
Ein Virenscanner kann eine gewisse Funktionalität erkennen, aber nicht (oder nur teilweise), was dahinter steckt.

#Analyse

  • Es ist bei einigen meiner letzten Softwareversionen vorgekommen, das die hochgeladenen Datein gelöscht oder geblockt wurden.
  • Bei Google drive geblockt und bei meiner Webseite vom Anbieter gelöscht

keiner von beiden hielt es für nötig, mich zu Informieren

Zum einen wirft es natürlich ein schlechtes Licht auf mich, als würde ich Schadsoftware verbreiten wollen.
Zum anderen ist es schlecht, wenn sich mal jemand selbst vom Gegenteil überzeugen will, es aber nicht kann, weil er an angebotene Datein nicht ran kommt.
Darum habe ich mich dazu entschlossen so lange Funktionen von meinem Programm zu entfernen, bis ich weiß, welche Funktionen zu Virenfunden führen.

Hier ist ein OnlineScanner mit scheinbar sehr ausgeprägter Erkennung: https://www.virustotal.com/de/ Da kann man hochladen was man möchte und scannen lassen.
Ab sofort werden neue Versionen vor der Veröffentlichung geprüft. Leider ist damit nicht sicher, das mit einem der nächsten Virenscan updates nicht doch irgendwelche "false positives" erzeugt werden.

#Reduziertes Programm

Bei einer Kopie der letzten Version (1.4.4.2) hab ich begonnen. Ich habe also immer weiter Inhalte entfernt, aber die Virenmeldungen blieben, bis letztendlich nichts mehr zu entferen war. Das letzte Programm machte nur noch ein Fenster auf... das wars.

Eigentlich hoffte ich eine Funktion zu entdecken, die Probleme macht. Einerseits könnte ich versuchen es so abzuändern, dass es nicht mehr als Virus/Trojaner oder sonst was erkannt wird.

Alternativ kann ich eine Version ohne die Funktion anbieten... eine "Clean" Version mit weniger Funktionalität und eine normale, wo aber der eine oder andere Scanner Falschfunde meldet.

#Icon als Virus

Nachdem das Programm schon bis auf das Skelett runter war, hab ich mir die verbliebenden Datein angesehen.
In der Resourcedatei hab ich letztendlich erkannt, das das geladene Icon dort als Bytesequenz hinterlegt ist. Diese führte zu folgenden Funden:

  • HEUR:Trojan.Win32.Generic
  • Gen:Variant.Strictor.131700
  • malicious (moderate confidence)
  • Trojan.Strictor.D20274
  • Troj.W32.Generic!c

Ich vermute, das mein Icon zufälligerweise eine Bytesequenz hervorrief, die mit denen von gewissen Trojanern übereinstimmte.

Letztendlich ist es nur ein Bild... eine Sammlung an Bytes die in eine Farbinformation umgerechnet werden, welche dann auf dem Bildschirm wieder zum Bild werden. Aber man kann eben auch Code als Bild darstellen und von da ausführen.
Am ende entscheidet immer die Verwendung von Daten über ihren Effekt.

Ich hatte wohl einfach nur Pech. Die nächste Version wird ein neues Icon bekommen, ich hoffe dann bin ich die Probleme los.


#Umstrukturierung von Version 1.13.0.0

Rescan 1.13.0.0

War immer noch kein Virus eingebaut, aber viele Scanner sind angeschlagen und ich musste mich daher nochmal tiefer damit beschäftigen und nach Lösungen suchen.
Der erste Gedanke war natürlich das Icon, kannte ich ja vom letzten mal...
Nach vielen Versuchen ist dann die Entscheidung gefallen, die Software neu zu strukturieren.

#Umgesetzte Ideen

  • NET framework auf 4.8
    Die Version 1.13.0.0 wurde bewusste auf 4.5 gehalten, weil das die letzte Version war die Windows XP noch unterstützt hat.
  • nicht mehr auf feste x86 kompiliert
    Inzwischen benutzt ja fast jeder einen x64 PC, es lohnt sich nicht mehr an alter Kompatibilität fest zu halten. Die Software läuft zwar nicht mehr auf x86 (32bit) aber dafür deutlich schneller auf x64 (64bit).
  • dockpanel 3.1.1
    Früher wurde "WeifenLuo.WinFormsUI.Docking 2.1.0" benutz und ich war zufrieden damit, aber wenn ich schon alles aktualisiere, dann gleich ein aktuelles Dockpanel.
  • aforge durch accord.net ersetzt
    das war noch eine der kleineren Änderungen, weil accord die Weiterführung von aforge ist und daher fast alle Methoden gleich aufgerufen wurden.
  • Extra UserControlLibrary
    Bis auf die Mainform und wenige ausnahmen, sind möglichst viele Usercontrols und Fenster in eine eigene Library mit eigenen resourcen gewandert. Das hat sehr viel code aus der eigentlichen Anwendung entfernt:
    ThermoVision_JoeC.exe 1.13.0.0 1692 KB
    ThermoVision_JoeC.exe 2.0.0.0 < 300 KB
    das hatte auch einen relativ großen Einfluss.
  • Direktes starten von externen Anwendungen
    Sowas mögen Virenscanner gar nicht. Ordner werden jetzt extra über eine Explorer-Funktion aufgerufen und externe Programmaufrufe wurden fast komplett entfernt.
    Der Temperaturschalter konnte früher eine vom User frei auswählbare Anwendung starten, ich fand es praktisch, die Virenscanner fanden es "suspicious".
  • Netzwerkanalyse tools etwas reduziert
    Sie wurden eingebaut um FLIR Kameras besser im Netzwerk zu finden, teilweise mit PortScan und anderen Features, aber auch sowas mögen Virenscanner nicht.

#Verworfene Ideen

  • Github Build
    Hierbei muss man aber von .NET Framework auf .NET umstellen und das ist nicht so einfach. Ich hab nach 3 Anläufen mit 2 verschiedenen KIs es dann gelassen. Vielleicht irgendwann später, weil es auch schön wäre, wenn die Software auf Linux und Mac laufen kann, aber ich hab da gerade keinen nerv für.
    Natürlich würde einem offiziellen Build deutlich mehr vertraut werden, als etwas, das ich auf meinem PC erstelle.
  • Code signierung
    Kostet Geld (jährlich, sonst laufen die Zertifikate ab), erfordert eine Registrierung und das ich mit irgendwelchen Schlüsseldatein rum hantiere. Außerdem erfordert es, dass ich eine Adresse als Privatperson oder Firma hinterlege beim Registrieren der Zertifikate... das ist mir den Aufwand nicht wert... es ist nur ein Kostenlose OpenSource Software.

#Nächste Version

Aufgrund der tiefen Änderungen wird die nächste Version 2.0.0.0 sein.

© by joe-c, 2023 - 2026. All Rights Reserved. Built with Typemill.