AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CreateFile unter Win8

Ein Thema von Mattze · begonnen am 22. Jun 2013 · letzter Beitrag vom 22. Jun 2013
Antwort Antwort
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

CreateFile unter Win8

  Alt 22. Jun 2013, 14:59
Komisch,

jetzt weiß ich nicht, was da falsch und habe nicht mal eine Idee, wo ich suchen könnte.

Was ist falsch an
hDevice:=CreateFile(PChar('\\.\PHYSICALDRIVE'+intt ostr(i)),GENERIC_READ,
FILE_SHARE_READ or FILE_SHARE_WRITE,
nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
- äh - oder richtig. (hDevice - Cardinal, i - Integer)

Starte ich es normal, kann er das nicht. (Invalid_Handle_Value)
Starte ich es mit Administratorrechten, geht es.
(Ich bin übrigens Administrator. Trotzdem will er die Rechte noch explzit.)
Starte ich es normal in der Delphi-IDE, geht es auch.

Ich kann mir da nix mehr vorstellen.

(Getestet unter Win7 und Win8, 64, pro mit D7 pro)

Was stimmt denn da nicht?

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: CreateFile unter Win8

  Alt 22. Jun 2013, 15:19
Zugriff auf physikalische oder logische Datenträger gibts nunmal nur mit Adminrechten Ab Win Vista musst du dank der UAC deinen Prozess explizit als Administrator starten, sonst wird er nur mit eingeschränkten Rechten ausgeführt.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#3

AW: CreateFile unter Win8

  Alt 22. Jun 2013, 16:58
Hallo,

den Hinweis hatte ich mal wieder vergessen:
UAC ausgeschaltet.
Und nun?
Warum kann es die Delphi-IDE? Die wird als Administrator gestartet. Wird das vererbt?
Kann man das per Code setzen (wenn man sowieso Admin ist)?

Und warum muss ich explizit als Adminstrator starten, obwohl ich Administrator bin?

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: CreateFile unter Win8

  Alt 22. Jun 2013, 17:15
Ohne UAC ist das Verhalten natürlich komisch. Generell werden die Security Tokens vererbt. Also wenn du aus einem Administratorprozess heraus einen weiteren Prozess startest, erbt Dieser dann auch die Administratorrechte. Könnte also schon daran liegen. Vielleicht lässt sich die UAC unter Windows 8 nicht mehr in dem Umfang abschalten, wie man es von Win7 her gewöhnt ist.

Was sagt denn GetLastError()?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#5

AW: CreateFile unter Win8

  Alt 22. Jun 2013, 17:26
Hallo,

ich habe gerade noch mal geguckt. Also, unter Win7 64 pro (ohne UAC) geht es ohne explizit als "Adminstrator ausführen".
Createfile ist doch eigentlich eine Grundfunktion, die ohne Probleme funktionieren müsste.
Das wird doch immer und von allen Programmiersprachen genutzt, um nur Dateien zu bearbeten!

GetLastError gucke ich noch...

Gruß
Matze
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#6

AW: CreateFile unter Win8

  Alt 22. Jun 2013, 17:43
Hallo,

also GetLastError sagt: "Zugriff verweigert" (5).
Mit Adminrechten (als Administrator starten) ist alles OK. (GetLastError=0)
Wieso, wenn ich sowieso Admin bin?

Unter Winj7 iost aber alles auch ohne explizitem Admin OK.
(Alles bei ausgeschaltener UAC.)

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: CreateFile unter Win8

  Alt 22. Jun 2013, 17:52
Aber ich habe es ein wenig getestet, bei Windows 8 kann man die Sicherheit an der Stelle nicht ganz so aus dem System werfen wie bei Windows 7, da wird wohl wie bei Windows Vista ein wenig Druck aufgebaut um die Unvorsichtigen zwangsweise vor Viren zu schützen. Sprich ein paar Funktionen benötigen nun Adminrechte, die vorher keine brauchten.

Wobei ich für meine privaten Tools schlicht keinen Support leiste, wenn jemand die UAC deaktiviert hat. Es steht ja auch aus gutem Grund "nicht empfohlen" dabei.

Wieso, wenn ich sowieso Admin bin?
Bist du ja nicht, es gibt nun einmal zwei Token und du hast nur das eingeschränkte, wenn du das mit vollen Rechten nicht anforderst. Da bis XP leider viel zu viele als Admin gearbeitet hatten, blieb Microsoft ja nur dies zwangsweise zu ändern. Es gibt halt zu viele, die das schlicht nicht besser wissen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

AW: CreateFile unter Win8

  Alt 22. Jun 2013, 18:22
Deine Anwendung sollte so designed sein, dass sie notfalls auch komplett unter eingeschränkten Rechten arbeiten kann. Dann hast du auch gleich keine Probleme mehr mit mit Drag & Drop Interaktion (dein anderer Thread). Für die Funktionen, die wirklich Adminrechte benötigen, gibt es die Möglichkeit entweder einen Kindprozess mit elevated Rechten zu spawnen oder aber die kritischen Funktionen über einen COM Server ablaufen zu lassen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  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 10:14 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