Forum: Win32/Win64 API (native code)
Delphi
by Apollonius,
13. Apr 2008
Wichtig ist, welche Rechte das Programm hat, was CreateFileMapping aufruft. Wenn es ein ganz normaler Benutzer ist, wird auch dessen Standard-Security-Descriptor verwendet, welcher nicht so restriktiv ist wie der von System.
Forum: Win32/Win64 API (native code)
Delphi
by Apollonius,
13. Apr 2008
Bei CreateProcess werden die Rechte übernommen, bei CreateProcessAsUser kannst du das Token angeben. Das Problem ist, dass du in CreateFileMapping nil für den Parameter SecurityAttributes einsetzt. Das bedeutet, dass der Standard-Security-Descriptor verwendet wird. Der Standard-Descriptor von System gibt aber allen anderen SIDs kaum Rechte, sodass du mit Prozessen, die nicht als System gestartet...
Forum: Win32/Win64 API (native code)
Delphi
by Apollonius,
13. Apr 2008
Verwende niemals in einem Service Shellexecute (oder wisse, was du tust)! Das Programm wird dann nämlich mit den Rechten des Services gestartet, also beispielsweise als System. Das ist ein Sicherheitsrisiko. Daraus ergibt sich auch dein Problem, denn CreateFileMapping verwendet den Standard-Security-Descriptor, der anderen Nutzern nicht genug Rechte gibt.
Also verwendest du entweder...