Wenn der Windows Defender mein selbst geschriebenes Delphi-Programm für einen Trojaner hält

Von der Eigenentwicklung zur "Schadsoftware" – und wie man das Problem wieder los wird

Ich hatte mir vor Kurzem ein kleines Programm in Delphi geschrieben – nichts Komplexes, aber hilfreich: eine lokale Besuchererfassung, komplett ohne Internetzugriff, ganz auf die Nutzung am lokalen PC ausgelegt.
Doch nach dem Kompilieren kam die Überraschung:
Windows Defender hat mein eigenes Programm als "Trojan:Win32/Wacatac.C!ml" eingestuft.
 

 

Was mein Programm eigentlich macht

  • Erstellt ein paar lokale Ordner
  • Extrahiert ein paar DLLs, PDFs und HTML-Hilfedateien
  • Legt eine SQLite-Datenbank an
  • Spielt ein paar WAV-Dateien ab
Keine Netzwerkverbindung. Kein Registry-Zugriff. Keine verdächtigen Funktionen.
 

 

Warum wird es trotzdem als Virus erkannt?

Microsofts Defender arbeitet (wie viele moderne Antivirenlösungen) mit Heuristiken:
  • Unbekanntes Programm + Dateioperationen + keine Signatur → potenziell verdächtig
  • Delphi-Programme stehen unter besonderer Beobachtung, da manche Schadsoftware früher damit geschrieben wurde
  • Mein Programm wurde direkt im „Downloads“-Ordner ausgeführt – auch das ist ein Trigger
Kurz gesagt: Verhaltenstechnisch ähnelt mein Programm gewissen Mustern, die Malware aufweist – auch wenn es harmlos ist.
 

 

Der erste Schritt: VirusTotal

Ich habe die EXE auf www.virustotal.com hochgeladen. Ergebnis:
 
0 / 71 Engines erkannt – also völlig sauber.
Nur Microsoft Defender hatte etwas dagegen.


 

Microsoft kontaktieren: Der Weg zur Freigabe

Microsoft bietet eine offizielle Möglichkeit, eine False-Positive-Meldung einzureichen:
Ich habe Folgendes beschrieben:
  • Delphi-Anwendung, lokal laufend
  • keine gefährlichen Funktionen
  • digital signiert
  • VirusTotal-Nachweis

Und siehe da – noch am selben Tag kam die Rückmeldung:
 
"The detection has been removed."
Ich bekam sogar eine Anleitung, wie ich meinen Defender-Cache leeren und aktualisieren kann.


 

Optional: Defender-Cache manuell leeren

cd "C:\Program Files\Windows Defender"
MpCmdRun.exe -removedefinitions -dynamicsignatures
MpCmdRun.exe -SignatureUpdate
 
Danach erkennt Defender mein Programm nicht mehr als Bedrohung – auch nicht bei neuen Builds.
 

 

Was ich gelernt habe

  • Auch harmlose Programme können „auffällig“ wirken, wenn sie unbekannt sind
  • Eine digitale Signatur hilft – aber ist kein Garant
  • VirusTotal ist dein Freund – schnell, zuverlässig, und hilfreich für AV-Hersteller
  • Microsoft reagiert tatsächlich sehr zügig, wenn man sauber argumentiert
 

 

Mein Tipp für andere Entwickler

Wenn dein selbstgeschriebenes Programm fälschlich als Bedrohung erkannt wird:
 
  1. VirusTotal prüfen (https://www.virustotal.com)
  2. Wenn nur Defender anschlägt → Microsoft Defender Submission einreichen
  3. Kurz & sachlich erklären, was das Programm macht
  4. Nach der Freigabe: Defender-Cache leeren und definieren lassen
  5. Optional: User auf der Website mit einem kleinen Sicherheitshinweis aufklären
 

 
Wenn du willst, stelle ich dir gern auch das Beispielmaterial (HTML, README, Sicherheits-Hinweis etc.) zur Verfügung, das ich selbst verwende.
Bleib sauber – aber lass dich nicht verunsichern, wenn dein sauberer Code als Bedrohung gesehen wird.