Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Registry Schutz mit #0 im Keynamen (https://www.delphipraxis.net/39844-registry-schutz-mit-0-im-keynamen.html)

generic 8. Feb 2005 11:32


Registry Schutz mit #0 im Keynamen
 
Moinsen,

in einen buch hatte ich mal gelesen, das man regkey's mit einen chr(0) am ende davor schützen kann z.b. von regedit geöffnet zu werden.
das funktioniert auch weil #0 ist bei einem nullterminiertenstring "ende".
d.h. alle api-funktionen welche den keynamen bekommen fallen auf die nase.

leider hab ich nun in meiner registry einen solchen schluessel gefunden und kann mich beim besten willen nicht mehr an das buch bzw. an die lösung erinnern.

hier also meine frage:
wie kann ich auf einen registrykey zugreifen welcher im keynamen ein chr(0) hat.

gruss

Assarbad 10. Feb 2005 10:45

Re: Registry Schutz mit #0 im Keynamen
 
Dazu gibt es die Native API. Dort werden UNICODE_STRINGs, also gezählte Strings, verwendet, womit auch eine oder mehrere #0 am Ende kein Problem sind.

Ich werde u.U demnächst im Delphi Magazine zusammen mit einem anderen Delphianer einen Artikel zum thema veröffentlichen (wenn die ihn wollen). Du kannst ansonsten auch gern weiter zum Thema Native API fragen.

PS: Dieser Schutz ist fragwürdig!

generic 10. Feb 2005 14:06

Re: Registry Schutz mit #0 im Keynamen
 
ich will/werde den auch nicht nutzten, nur eine andere firma nutzt das.
da ich die software nicht mehr habe, würde ich gerne deren knoten löschen.

btw. RegOpenKeyExW hat auch nicht funktioniert. ggf. hab ich was falsch gemacht.

mirage228 10. Feb 2005 14:08

Re: Registry Schutz mit #0 im Keynamen
 
Hi,

guckst Du hier: http://www.delphipraxis.net/internal...ect.php?t=3014

mfG
mirage228

generic 10. Feb 2005 15:00

Re: Registry Schutz mit #0 im Keynamen
 
jo im buch war das ein 3 zeiler...

danke

Assarbad 10. Feb 2005 18:23

Re: Registry Schutz mit #0 im Keynamen
 
Zitat:

Zitat von mirage228

Das Beispiel ist ... hrm ... inkonsistent - Beispiel:
Code:
type
  USHORT = WORD;
  NTSTATUS = ULONG;
  PVOID = Pointer;
Plötzlich wird ein Status als Integer behandelt (was übrigens korrekt ist, als ULONG oben hingegen nicht) ...
Code:
function NT_SUCCESS(Status: Integer): WordBool;
begin
  Result := Status >= 0;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 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