AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung als Malware erkannt

Ein Thema von venice2 · begonnen am 7. Mai 2021 · letzter Beitrag vom 9. Mai 2021
Antwort Antwort
Seite 3 von 3     123   
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#21

AW: Anwendung als Malware erkannt

  Alt 8. Mai 2021, 21:59
Hmm..

Es ist auch kein Konstantenstring.

Delphi-Quellcode:
...
    Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', false);
..
Wenn Du meinst, dass dies kein Konstantenstring in deiner EXE ist?
Es muss nicht 'const' davor stehen....
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#22

AW: Anwendung als Malware erkannt

  Alt 8. Mai 2021, 22:05
Eine Konstante ist bei mir ein vorgefertigter string. in diesen Fall

Delphi-Quellcode:
const
  x = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run';

Reg.OpenKey(x, false);
Das andere nur ein String gültig für die eine Anweisung, Funktion.

Wenn jedoch bei dir ein string ohne const eine Konstante ist dann ist es so.
Ich habe da eine andere Auffassung.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#23

AW: Anwendung als Malware erkannt

  Alt 8. Mai 2021, 22:14
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#24

AW: Anwendung als Malware erkannt

  Alt 8. Mai 2021, 22:14
Hmm...

Eine Konstante ist bei mir ein vorgefertigter string. in diesen Fall

Delphi-Quellcode:
const
  x = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run';

Reg.OpenKey(x, false);
Das andere nur ein String gültig für die eine Anweisung, Funktion.

Wenn jedoch bei dir ein string ohne const eine Konstante ist dann ist es so.
Ich habe da eine andere Auffassung.

Wenn Du einen String so übergibst

    Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', false); Dann ist dieser 'Text' auch eine Konstante!
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:
const
  x = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run';
Reg.OpenKey(x, false);

Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', false);
Bei beiden Stellen ist der Text '\SOFTW...' eine Konstante!
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#25

AW: Anwendung als Malware erkannt

  Alt 8. Mai 2021, 22:16
Zitat:
Es macht keinen Unterschied.
OkiDoki

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.

Geändert von venice2 ( 8. Mai 2021 um 22:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#26

AW: Anwendung als Malware erkannt

  Alt 8. Mai 2021, 22:33
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 Delphi-Referenz durchsuchenStringRefCount rausbekommen, ob es eine Konstante ist.
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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Mai 2021 um 22:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Anwendung als Malware erkannt

  Alt 8. Mai 2021, 22:39
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#28

AW: Anwendung als Malware erkannt

  Alt 9. Mai 2021, 10:42
ich will dich nicht nerven weil du ja das thema beendet hast...
Warum sollte ich da was ändern unabhängig von dem String Gedöns?

Lese bitte die ersten beiden Zeilen nach der Quote.
Das Problem ist UPX nicht irgendein String als Konstante, nicht Konstante, egal wohin geschrieben.

Geändert von venice2 ( 9. Mai 2021 um 10:46 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz