![]() |
"Automatischen" Zugriff auf die Registry unterbinden?
Hallo,
ich habe eine Anwendung in einem sicheren Umfeld, in dem jeder Zugriff aufs System gerechtfertigt sein muss. Nun greift mein Delphi-Programm ohne mein Zutun auf die folgenden Registry-Keys zu: HKCU\Software\CodeGear\Locales HKCU\Software\Borland\Locales HKCU\Software\Embarcadero\Locales HKCU\Software\Borland\Delphi\Locales Der Grund ist mir schon klar. Ich suche nach einem Weg, dies zu unterbinden (Multi-Lang-Unterstützung ist nicht nötig). In den Projektoptionen habe ich dazu nichts gefunden, Google schweigt, und selbst wenn ich meine Executable im Hex-Editor ansehe sind diese Schlüssel zumindest nicht im Klartext eingebunden. Habt ihr eine Idee? LG |
AW: "Automatischen" Zugriff auf die Registry unterbinden?
Zitat:
Wenn Du sie unterbinden willst, kannst Du die entsprechenden WinAPI-Funktionen hooken. Aber ich würde dort erstmal einen Breakpoint setzen und schauen, woher die Aufrufe überhaupt kommen. |
AW: "Automatischen" Zugriff auf die Registry unterbinden?
|
AW: "Automatischen" Zugriff auf die Registry unterbinden?
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:
Selbst bei alten Kompilaten aus Delphi 5 finden sich die beiden Borland-Schlüssel, dort natürlich als ANSI/ASCII.
Software\Embarcadero\Locales
Software\CodeGear\Locales Software\Borland\Locales Software\Borland\Delphi\Locales Definiert sind die Schlüssel in der System.pas, zugewiesen an verschiedene Variablen. Verwendet werden die Variablen in
Delphi-Quellcode:
und dann
function InternalGetLocaleOverride
Delphi-Quellcode:
. 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.
function GetLocaleOverride
Grüße Dalai |
AW: "Automatischen" Zugriff auf die Registry unterbinden?
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 |
AW: "Automatischen" Zugriff auf die Registry unterbinden?
siehe System.pas
Delphi-Quellcode:
für
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
Delphi-Quellcode:
Und kann man via
function InternalGetLocaleOverride(AppName: string): string;
function GetLocaleOverride(const AppName: string): string;
Delphi-Quellcode:
auch überschreiben/umgehen.
procedure SetLocaleOverride(const NewPreferredLanguages: string);
Zitat:
|
AW: "Automatischen" Zugriff auf die Registry unterbinden?
Zitat:
Zitat:
|
AW: "Automatischen" Zugriff auf die Registry unterbinden?
Zitat:
Da Zitat:
|
AW: "Automatischen" Zugriff auf die Registry unterbinden?
Zitat:
Grüße Dalai |
AW: "Automatischen" Zugriff auf die Registry unterbinden?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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