![]() |
Anwendung als Malware erkannt
Warum wird meine Anwendung GDIPClock als Malware erkannt?
Wenn ich mit Malwarebytes mein System Scanne warum wird meine Anwendung als Malware identifiziert. Diese geht nicht ins Internet verwendet keinerlei Ports oder dergleichen Trotzdem Malware? :stupid: Nach welchen Kriterien wird sonst noch gesucht? Oder liegt es schlicht an Delphi? |
AW: Anwendung als Malware erkannt
Da hat die Heuristik wohl irgendetwas als "böse" erkannt. Du kannst Dein Programm aber normalerweise irgendwo beim AV-Hersteller zur Prüfung hochladen und zu dessen Whitelist hinzufügen lassen.
|
AW: Anwendung als Malware erkannt
Zitat:
Zitat:
Außer das ich es beim Windowsstart Automatisch starten lasse. Na ja hat mich mal interessiert. Zitat:
|
AW: Anwendung als Malware erkannt
Zitat:
|
AW: Anwendung als Malware erkannt
Zitat:
Danke. |
AW: Anwendung als Malware erkannt
Leider wurden zubiele "böse" Progrämmchen mit Delphi geschrieben
und die Muster zur Erkennung sind oftmals leider auch sehr ungünstig, so dass sie schnell auch andere Delphiprogramme erwischen. Du kannst deine EXE auf ![]() (natürlich könnte es auch sein, dass dein Rechner befallen ist und die EXE wirklich richtig erkannt wurde) Ansonsten kannst du deine EXE auch irgendwo auf der Webseite deines Virenscanner-Herstellers melden (geht bei den Meisten) und ihn bitten das zu Prüfen. Wenn negativ, wird/sollte er seine Signaturen anpassen, damit deine EXE nicht mehr erkannt wird. Manchmal kann man es auch im Virenscanner direkt zur Prüfung vorlegen. |
AW: Anwendung als Malware erkannt
Zitat:
|
AW: Anwendung als Malware erkannt
Ja, bei sich kann man solche Fehler leicht ignorieren (eine Ausnahme hinzufügen),
aber bei anderen Benutzern ist es bissl blöd. Entweder er vertraut dir vollkommen, wenn du es ihm erklärst und z.B. den Report von VirusTotal zeigst, und er richtet bei sich eine Ausnahme ein, oder du hast Pech und mußt entweder eine Kleinigkeit an deiner EXE ändern (und hoffen es wird dann nicht mehr erkannt) oder eben das bei dem entsprechendem Hersteller als False-Positive melden. (geht leider nicht immer) Nur kurz gesucht und ich fand bei Malwarebytes kein solches Formular. (übersehn oder es gibt Keines) ![]() Ach ja, wenn nur einer/wenige/kein Virenscanner da etwas erkennt (VirusTotal), dann ist die Chance groß, dass da nichts ist, aber es kann auch sein, das ist neu und die Anderen waren noch nicht schnell genug und haben es noch nicht in ihren Definitionen. :angle2: Wenn die EXE absolut nicht an Fremde raus darf (NDA oder sowas), dann bleibt dir nur die Wahl deinen Scanner zu tauschen, oder eine VM mit diesem Scanner aufzusetzen, und selbst zu prüfen. Manche Virenscanner haben auch eine OnlineAPI, wo man es direkt beim Hersteller prüfen kann, ohne es installiert zu haben. |
AW: Anwendung als Malware erkannt
Virenscanner sind in der Regel nur
![]() Wenn du drei Bytes (ja, ist ne Hausnummer) an deinen Programm änderst, schon wird es nicht mehr als False Positive detektiert. Zum nachlesen (english): ![]() Alle anderen mit deinen Problem: ![]() |
AW: Anwendung als Malware erkannt
Danke für die Infos.
|
AW: Anwendung als Malware erkannt
Es gibt auch AntiVieren-Programme, die müssen nicht installiert werden.
ClamWin, McAfee Labs Stinger, ... Das hilft aber nur bei sich selbst, z.B. wenn man keinen Virenscanner hat, oder seinem Scanner mal nicht trauen sollte. (einen False-Positive mit was Anderem prüfen oder Denkt der Rechner hat bestimmt was, aber der eigene Scanner sagt nö) Und nein, auch wenn er manchmal falsch liegt, dann kann man entweder den Fehler melden und zur Verbesserung beitragen oder man welchselt den Scanner Aber "sinnlos" ist er meistens nicht. (ja, es gibt Ausnahmen, wenn man selber sehr aufpasst und das System durch Berechtigungen und Co. extrem sperrt/absichert). Ich kann aktuell vermutlich kein Corona bekommen und kann höchstwahrscheinscheinlich niemanden anstecken (bin immun, da ich es grade erst hatte), aber dennoch trage ich Maske und halte Abstand. |
AW: Anwendung als Malware erkannt
Ok denke habe das Problem der Scanner kommt mit UPX nicht klar. :stupid:
Problem erledigt. Danke für eure Beiträge. |
AW: Anwendung als Malware erkannt
Das Problem ist aber wirklich nicht neu. Früher haben Malware-Autoren ihre Programme gern mit UPX verkleinert, deshalb wird das heute noch als potenziell gefährlich erkannt.
|
AW: Anwendung als Malware erkannt
Hmm...
Zitat:
Unbekannte Software, welche sich selber in den 'RUN' Einträgen der Registry einträgt, ist für alle Scanner suspekt! ;) Da der String mit 'SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN' in deiner Exe wohl als Konstantenstring hinterlegt und somit von einem Scanner lesbar ist (Schau Dir die EXE mal mit nem HEX-Viewer an) wird dass wohl der Grund für die Maleware einstufung sein!. |
AW: Anwendung als Malware erkannt
Zitat:
Ohne UPX meldet Malwarebytes keine Probleme. Ein Malware Scanner sollte eigentlich in der Lage sein eine Datei mit UPX zu entpacken und nicht global alle Anwendungen damit verteufeln. Deshalb ist die Heuristik dieses Scanner eigentlich untauglich. Es ist auch kein Konstantenstring.
Delphi-Quellcode:
procedure AutoReg(Set1: Boolean);
var Reg: TRegistry; Pfad: string; begin try Pfad := '"' + ParamStr(0) + '"'; Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', false); if Set1 then begin Reg.Writestring(Name4Registry, Pfad); MessageDlg('Autostart set (for current user)', mtInformation, [mbOK], 0); end else begin Reg.DeleteValue(Name4Registry); MessageDlg('Autostart disabled', mtInformation, [mbOK], 0); end; Reg.Closekey; Reg.Free; except MessageDlg('Could not access Autostart key', mtError, [mbOK], 0); end end; |
AW: Anwendung als Malware erkannt
UPX wird eigentlich bei allen aktuelleren Scannern supported. Ist deine Version vom scanner vielleicht stark veraltet?
Wenn du es unbedingt exe-komprimiert haben möchtest, mit ![]() (ich nutze kaspersky aufm pc und totalvirus.com) |
AW: Anwendung als Malware erkannt
Zitat:
Ich denke mal das MalwareBytes auf seiner Webseite keine alten Versionen zum Download bereit stellt oder? |
AW: Anwendung als Malware erkannt
UPX und viele andere EXE-Packer werden aber auch von den meisten Virenscannern erkannt, entpackt und dann der Inhalt nochmal gescannt.
Aber kann sein, dass hinter UPX/usw. die Erkennung stenger arbeitet, da das UPX eventuell Indiz für was Gefährliches eingestuft wird. Und veränderte UPX oder eine "ungünstige" Konfiguration können dafür sorgen, dass nicht entpackt werden kann, und dann wird natürlich gedacht, dass jemand was verstecken will und das ist natülich sofort ganz böse. Egal ob Viren oder Malware ... das System der Erkennung ist fast überall gleich/ähnlich. PS: VirenScanner suchen auch nach Maleware. Und bloß weil Malwarebytes das Malware im Namen hat, so suchen dessen Programme auch nach Viren. :angle2: |
AW: Anwendung als Malware erkannt
Zitat:
|
AW: Anwendung als Malware erkannt
ahhhh, klang so, als wenn das schon im normalen Preis mit drin ist
böse werbung |
AW: Anwendung als Malware erkannt
Hmm..
Zitat:
Es muss nicht 'const' davor stehen.... |
AW: Anwendung als Malware erkannt
Eine Konstante ist bei mir ein vorgefertigter string. ;) in diesen Fall
Delphi-Quellcode:
Das andere nur ein String gültig für die eine Anweisung, Funktion.
const
x = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'; Reg.OpenKey(x, false); Wenn jedoch bei dir ein string ohne const eine Konstante ist dann ist es so. Ich habe da eine andere Auffassung. |
AW: Anwendung als Malware erkannt
Es macht keinen Unterschied.
Eine "richtige" Konstante wird, ähnlich einem Makro, an jeder Stelle ersetzt. (Strings sind Zeiger, also steht "überall" der Zeiger zum String) Es ist das selbe Ergebnis, also wenn man den die String-Konstante den String direkt einsetzt. Noch besser, denn wenn der gleiche String an mehreren Stellen vorkommt, dann führt die Codeoptimierung das zusammen und auch da ist dann überall der gleiche Zeiger zur selben String-Konstante. Bei einer typisierten Konstante ist es ein Unterschied, denn typlisierte Konstanten sind in Wirklichkeit schreibgeschützte Variablen. Also hier ist dann überall der Zeiger auf die "Variable" eingebaut. Bei Strings kommt das Verhalten des Compilers nicht gut rüber. Mit Integern fällt es besser auf. Egal ob untypisierte Konstante oder die Zahl direkt im Code, am Ende ist die Zahl direkt im Compilat. Bei einer Variable oder typisierten Konstante wird an allen Stellen eine Referenz zur globalen Varialble/Konstante im Compilat zu finden sein. |
AW: Anwendung als Malware erkannt
Hmm...
Zitat:
Wenn Du einen String so übergibst
Delphi-Quellcode:
Dann ist dieser 'Text' auch eine Konstante!
Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', false);
Versuche diesen mal an eine Funktion so zu übergeben, wenn dort vor der Parameterdefinition ein 'var' steht... Ich erhalte die Fehlermeldung '[Fehler] Unit1.pas(33): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden'
Delphi-Quellcode:
Bei beiden Stellen ist der Text '\SOFTW...' eine Konstante!
const
x = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'; Reg.OpenKey(x, false); Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', false); |
AW: Anwendung als Malware erkannt
Zitat:
Danke für eure Infos! Ihr habt dann recht. Dachte bisher das es nur dann eine Konstante ist wenn explicit so in einer Funktion übergeben. function(const x: string) Wuste nicht das es grundsätzlich so ist. Dann kann man sich das const für Strings ja sparen! Aber gut Thema ist ja erledigt. |
AW: Anwendung als Malware erkannt
Was bei diesem Const (als Parameter) rein geht, ist unbestimmt.
Dieses "const" bedeutet nur, dass innerhalb der Funktion das Übergebene nicht geändert werden kann, also dieser Parameter ist "schreibgeschützt". Ob dort eine Konstante oder Variable rein ging, ist egal ... dieses Const bezieht sich ausschließlich auf den Parameter, nicht auf das was rein ging. PS: Bei einem String kannst mit ![]() Also eine Variable, typisierte Konstante, Funktions-Paramter oder Dergleichen an diese Funktion übergeben und 0 = nichts drin, aka Leerstring '' -1 = Konstante >0 = Variable falls StringRefCount noch nicht existiert, dann
Delphi-Quellcode:
if S <> '' then
RefCount := PInteger(NativeInt(S) - 2 * SizeOf(Integer))^ else RefCount := 0; |
AW: Anwendung als Malware erkannt
ich will dich nicht nerven weil du ja das thema beendet hast...
ich weiß echt nicht wie die heuristik da funktioniert bei deinem nicht-scanner scanner, aber vielleicht ginge das hier: deinen string bevor du kompilierst per aes und base64 verfremden und zu laufzeit den string dort decodiert übergeben falls du verstehst was ich meine. so wäre die nicht-konstante konstante erstmal vergangenheit. vielleicht meckert der aber generell wenn du in registry was schreibst, egal wo, könnte man ja mal testen. |
AW: Anwendung als Malware erkannt
Zitat:
Lese bitte ![]() Das Problem ist UPX nicht irgendein String als Konstante, nicht Konstante, egal wohin geschrieben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz