AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Registry lässt sich nicht lesen (rdUnknown) -> Typ ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Registry lässt sich nicht lesen (rdUnknown) -> Typ ermitteln

Ein Thema von Harry M. · begonnen am 14. Jan 2008 · letzter Beitrag vom 15. Jan 2008
Antwort Antwort
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#1

Registry lässt sich nicht lesen (rdUnknown) -> Typ ermitt

  Alt 14. Jan 2008, 17:10
Hallo

ich versuche unter Xp Pro Sp2 einen RegKey auszulesen dessen Type unbekannt ist (rdUnknown). Nur geht - bzw ließt es irgendwie nicht - sonst würde ich ja nicht Posten

Soweit so gut... versuche habe ich es mit GetDataSize & ReadBinaryData. Auch wenn es nicht zur Exception kommt bleibt der Buffer leer da GetDataSize -1 zurückgibt so das die Schleife eh nie durchlaufen würde. Auch wenn ich diesen Wert mit 255 initalisiere kommen am Ende nur Nullen raus (ohne Einsen dazwischen).

Wiseo ? Fehlende Priviliegen etc. können es ja nicht sein, da das das Programm eh nur mit Systemrechten läuft (bzw Zugriff auf dem Key bekommt).

Delphi-Quellcode:
program RegTest;

{$APPTYPE CONSOLE}

uses
  SysUtils, Registry, WIndows, Classes;

const
  Key = '\SAM\SAM\Domains\Account\Users\Names\';
  Value = '@'; // for empty / default value

var
  Reg: TRegistry;
  slKeys, slValues: TStringList;
  I, X, J, k, iSize: Integer;
  P: PChar;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := WIndows.HKEY_LOCAL_MACHINE;
  if Reg.OpenKeyReadOnly(Key) then begin
    writeln('successfull opening');
    slKeys := TStringList.Create;
    Reg.GetKeyNames(slKeys);
    for I := 0 to slKeys.Count-1 do begin
      slValues := TstringList.Create;
      if Reg.OpenKeyReadOnly(Key + slKeys.Strings[I]) then begin
        Reg.GetValueNames(slValues);
        for X := 0 to slValues.Count-1 do begin
          writeln('lese value in ' + slKeys.Strings[I]);
          J := Reg.GetDataSize(Value);
          GetMem(p, j);
          Reg.ReadBinaryData(Value, p^, J);

          for k := 0 to j - 1 do
            writeln(IntToHex(Byte(p[k]), 2));

          FreeMem(p, j);
          end;

        slValues.Free;
        end;
        end;


    slKeys.Free;
    end else
    writeln('error');

  Reg.Free;
  readln;
end.
Im Detail geht es mir eigendlich um den Typen da dieser Wert Name eines Übergeodnen Keys ist.
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: RegValue lässt sich nicht lesen (rdUnknown)

  Alt 14. Jan 2008, 17:19
wenn du wirklich den obengeschrieben schlüssel lesen oder schreiben willst (egal was) wirst du immer ne fehlermeldung in windows bekommen, da dieser schlüssel durch windows geschützt ist...
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#3

Re: RegValue lässt sich nicht lesen (rdUnknown)

  Alt 14. Jan 2008, 17:21
Wie bereits geschrieben: Fehlende Priviliegen etc. können es ja nicht sein, da das das Programm eh nur mit Systemrechten läuft (bzw Zugriff auf dem Key bekommt).

AT %time /interactive delphi32.exe
AT %time /interactive regedit.exe

hilft ganz gut
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Registry lässt sich nicht lesen (rdUnknown) -> Typ er

  Alt 14. Jan 2008, 17:49
das ist alles irgendwas für die windows passwörter, diese werden in einer sam datei angelegt (natürlich verschlüsselt) und windows schützt diese dateien, indem jegliche zugriffsrechte auf sie gesperrt werden!! nur windows selber kann die dateine lesen oder in sie schreiben!!

ich denke mal das dieser ordner (zumindest sieht es ganz danach aus, denn ich habe bei vista auch keinerlei zugriffsrechte mit nem admin account auf den ordner) auch von windows geschützt wird, und die zusammenhänge durch den gleichen namen naheliegend sind, nur leider kann ich dir nicht genau sagen was es mit dem registry ordner wirklich auf sich hat!!

aber was willst du denn in dem ordner überhaupt???
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#5

Re: Registry lässt sich nicht lesen (rdUnknown) -> Typ er

  Alt 14. Jan 2008, 19:27
WinDOS speichert die Kennwörter in Dateien Windows hingegen kennst die Registry. Und dann werden keine Kennwörter gespeichert sodneren deren Hashes (LM/NTLM/NTLM2). Mit der SAM dem Security Account Manger wird dies lediglich verwaltet.

Ich versuche die Hashes aus der Registry zu holen. (Ich brauch das für mein Admin -> Programm) Liegen im bennaten Key. Das Problem, ich muss erst die Kontentyp aus der Reg holen ist als RegistryType (zb 0x1AF) gespeichert. Mit dem ausgelesenen kann ich eine ebene Höher im Key in den Order wescheln und dort den Hash lesen.

Übrigens: Unter Vista hat man die Sicherheitslücke via AT sich Systemrechte zuzulegen abgeschafft
Dumm nur das man jetzt (was unter XP meines Wissens nicht ging, ein belibiges Programm zB cmd.exe als service eintagen und dies auch noch Interactiv starten - Aber das ist ein anderes Thema.)
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Registry lässt sich nicht lesen (rdUnknown) -> Typ er

  Alt 14. Jan 2008, 22:08
Moin Harry,

dann wirst Du, wohl oder übel, einen Dienst schreiben müssen, der den Zugriff erledigt, und über Dein Hauptprogramm gesteuert wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#7

Re: Registry lässt sich nicht lesen (rdUnknown) -> Typ er

  Alt 15. Jan 2008, 00:09
Hallo Christian Seehase,
bleibt aber immer noch die Frage wie ich den Type des Values als String bekomme.
Miniaturansicht angehängter Grafiken
screnn_827.jpg  
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Registry lässt sich nicht lesen (rdUnknown) -> Typ er

  Alt 15. Jan 2008, 00:21
Moin Harry,

wie's aussieht korrespondiert diese Angabe ja immer mit einem Key, wobei man damit dann den Key zu einem Userkonto ermitteln kann.
Wenn Du den partout als String haben willst, musst Du wohl IntToHex nehmen.

[EDIT]
Wenn Du mit Bereichen arbeiten willst, mit denen man, als Anwender, eigentlich gar nicht direkt in Berührung kommen soll, solltest Du mal in Erwägung ziehen, auf TRegistry zu verzichten, und direkt mit den API-Funktionen zu arbeiten.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:07 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