![]() |
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 17:20 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