AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi "Automatischen" Zugriff auf die Registry unterbinden?
Thema durchsuchen
Ansicht
Themen-Optionen

"Automatischen" Zugriff auf die Registry unterbinden?

Ein Thema von widaMaDelphi · begonnen am 26. Nov 2021 · letzter Beitrag vom 30. Nov 2021
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#1

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 17:08
Die Schlüssel sind im Klartext im Kompilat zu finden, wenn man in Unicode (UTF-16) danach sucht. Hier mal ein Beispiel eines mit XE2 kompilierten Konsolenprogramms:
Code:
Software\Embarcadero\Locales
Software\CodeGear\Locales
Software\Borland\Locales
Software\Borland\Delphi\Locales
Selbst bei alten Kompilaten aus Delphi 5 finden sich die beiden Borland-Schlüssel, dort natürlich als ANSI/ASCII.

Definiert sind die Schlüssel in der System.pas, zugewiesen an verschiedene Variablen. Verwendet werden die Variablen in function InternalGetLocaleOverride und dann function GetLocaleOverride . Weiter folgen kannst du dem Code sicherlich selbst. Da die System.pas aber soweit ich weiß immer implizit mit eingebunden wird, sehe ich kaum Chancen, den Zugriff auf die Schlüssel zu unterbinden - außer vielleicht durch Ausnullen der Schlüssel im Kompilat.

Grüße
Dalai
  Mit Zitat antworten Zitat
widaMaDelphi

Registriert seit: 26. Nov 2021
3 Beiträge
 
#2

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 18:40
Danke erstmal

Auch in Unicode UTF-16 finde ich den String nicht?
Ich habe UTF-16LE und UTF-16BE probiert (notepad++).

Wobei ich merkwürdig finde, dass ich auch z.B. VCLSTYLE nicht im Kompilat finde, obwohl es ja default-mäßig so eine Resource geben muss (und die sehe ich auch mit einem Resourcen-Explorer in der exe).
Das "Nullen" wäre nämlich auch mein Mittel der Wahl gewesen.
Manchmal habe ich Strings gesehen, die so wirken, als wären Leerzeichen dazwischen (z.B. K E R N E L 3 2 . D L L)...

LG

Geändert von widaMaDelphi (26. Nov 2021 um 19:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 19:14
siehe System.pas
Delphi-Quellcode:
  OlderLocaleOverrideKey = 'Software\Borland\Delphi\Locales'; // do not localize
  OldLocaleOverrideKey = 'Software\Borland\Locales'; // do not localize
  NewLocaleOverrideKey = 'Software\CodeGear\Locales'; // do not localize
  NewerLocaleOverrideKey = 'Software\Embarcadero\Locales'; // do not localize
für
Delphi-Quellcode:
function InternalGetLocaleOverride(AppName: string): string;
function GetLocaleOverride(const AppName: string): string;
Und kann man via procedure SetLocaleOverride(const NewPreferredLanguages: string); auch überschreiben/umgehen.


Zitat:
als wären Leerzeichen dazwischen
Das sind Nullen und es nennt man Unicode (UTF-16 ... früher auch mal als UCS2)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Nov 2021 um 19:17 Uhr)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.115 Beiträge
 
Delphi 2009 Professional
 
#4

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 19:29
Manchmal habe ich Strings gesehen, die so wirken, als wären Leerzeichen dazwischen (z.B. K E R N E L 3 2 . D L L)...
Das ist eben die Darstellung von UTF-16 als ANSI (CP1252), weil ANSI/ASCII-Nullzeichen dazwischen sind. Binärdateien als UTF-16 darstellen ergibt wenig Sinn, weil UTF-16 erfordert, dass wenn als höherwertiges Byte die Werte 0xD8-0xDB vorkommen, das übernächste Byte 0xDC-0xDF sein muss. In UCS2 sind beide Wertbereiche als höherwertiges Byte verboten. Ein beiden ist zudem verboten, dass das höherwertige Byte 0xFF und das niedrigwertige 0xFE ist.

siehe System.pas
Delphi-Quellcode:
  OlderLocaleOverrideKey = 'Software\Borland\Delphi\Locales'; // do not localize
  OldLocaleOverrideKey = 'Software\Borland\Locales'; // do not localize
  NewLocaleOverrideKey = 'Software\CodeGear\Locales'; // do not localize
  NewerLocaleOverrideKey = 'Software\Embarcadero\Locales'; // do not localize
für
Delphi-Quellcode:
function InternalGetLocaleOverride(AppName: string): string;
function GetLocaleOverride(const AppName: string): string;
Und kann man via procedure SetLocaleOverride(const NewPreferredLanguages: string); auch überschreiben/umgehen.
Kann es den Zugriff auch verhindern, wenn man es früh genug aufruft?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 19:47
Kann es den Zugriff auch verhindern, wenn man es früh genug aufruft?
Das würde ich so mal annehmen?
Da
Zitat:
Delphi-Quellcode:
function GetLocaleOverride(const AppName: string): string;
begin
  if PreferredLanguagesOverride = nil then
    SetLocaleOverride(InternalGetLocaleOverride(AppName));
  Result := PreferredLanguagesOverride;
end;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#6

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 19:53
Auch in Unicode UTF-16 finde ich den String nicht?
Ich habe UTF-16LE und UTF-16BE probiert (notepad++).
In einem Texteditor wirst du das auch nicht finden können, es sei denn, du gibst Nullbytes mit ein oder der Editor kann auch Hex editieren (für Notepad++ gibt's ein Hex-Plugin). Mit einem Hex-Editor wie HxD ist man aber definitiv besser beraten.

Grüße
Dalai
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 14:10 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