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 1 von 3  1 23      
widaMaDelphi

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

"Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 16:18
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
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 16:54
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).
Dein Programm greift auf Registry-Einträge von BorCoDero zu? Da ist was faul. Diese Einträge gibt es doch nur auf Entwickler-Rechnern.

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.
Thomas Mueller
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 16:54
Hallo,
tja, das kannst du wohl nicht verhindern

https://www.delphipraxis.net/1236697-post6.html
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#4

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
 
#5

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
43.152 Beiträge
 
Delphi 12 Athens
 
#6

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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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.017 Beiträge
 
Delphi 2009 Professional
 
#7

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
43.152 Beiträge
 
Delphi 12 Athens
 
#8

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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

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

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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#10

AW: "Automatischen" Zugriff auf die Registry unterbinden?

  Alt 26. Nov 2021, 21:54
Dein Programm greift auf Registry-Einträge von BorCoDero zu? Da ist was faul. Diese Einträge gibt es doch nur auf Entwickler-Rechnern.
Das stimmt so nicht. Diese Einträge verwendet (nahezu) jede VCL-Applikation um eine mögliche Vorgabe für die Sprache der Ressource-DLLs zu ermitteln. Wenn die Regkeys nicht existieren, findet die App eben dort auch keine Werte. Das hat nichts mit einem Entwickler-System zu tun.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 06:16 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