Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS (https://www.delphipraxis.net/106067-createprocesswithlogonw-verbindung-mit-debug_process.html)

Neotracer64 4. Jan 2008 18:13


CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
Hallo,

Kann es sein, dass ich CreateProcessWithLogonW nicht in Verbindung mit dem CreationFlag DEBUG_PROCESS aufrufen kann? Ich kriege dann immer ERROR_INVALID_PARAMETER. Ohne gehts.
Das enttäuscht mich jetzt etwas.

Gibt es dafür einen Workaround? Wie kann ich den gleichen Effekt erzielen (Prozess unter anderer UserCredentials zu starten) mit dem DEBUG_PROCESS Flag?

Bin offen für Ideen. :)

Grüße,

Neotracer64

Dezipaitor 4. Jan 2008 18:44

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
Nur mal so ins Blaue geschossen. Vielleicht braucht der aufrufende Prozess, also deiner, das DEBUG Privileg aktiviert?
Andere Prozesse des eigenen Logins kann man auch ohne DEBUG-Privileg debuggen. Bei Prozessen anderer Benutzer (und da fallen auch die Dienste drunter) sieht das dann schon anders aus.

Neotracer64 4. Jan 2008 18:49

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
Ja, ich hab das SeDebugPrivilege. Aber ich vermute der DEBUG_PROCESS Flag ist einfach nicht kompatibel mit CreateProcessWithLogonW.
Sonst wäre er wahrscheinlich auch auf der MSDN Seite für diese Funktion aufgelistet. :/

http://msdn2.microsoft.com/en-us/library/ms682431(VS.85).aspx

Dezipaitor 4. Jan 2008 19:03

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
hast du das Privileg auch aktiviert?

Neotracer64 4. Jan 2008 19:06

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
Ja ganz sicher.
Der call schlägt ja auch mit dem Error ERROR_INVALID_PARAMETER fehl. :/

Dezipaitor 4. Jan 2008 19:09

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
Der Fehler ERROR_INVALID_PARAMETER ist mir bei vielen Gelegenheiten entegegen gekommen. Es könnte auch sein, dass Windows gerade abstürzt und daher diesen Fehlercode zurückgibt. :wink:

Jetzt wirds wohl Zeit, dass du relevanten Quelltext hier postest... :?:

Neotracer64 4. Jan 2008 19:14

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
Der einzige Grund, der mich davon abhielt den Quelltext zu posten war, dass ich es in FASM geschrieben habe.

Delphi-Quellcode:
;--------------------------------------------------------------
; CreateProcessA Callback
; -------------------------------------------------------------
proc myCreateProcessA stdcall, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles,\
                               dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation
     CMP Byte [User], NULL
     JE .proceed
     invoke MultiByteToWideChar, CP_ACP, 0, User, -1, UserW, 64
     invoke MultiByteToWideChar, CP_ACP, 0, Pass, -1, PassW, 64
     invoke MultiByteToWideChar, CP_ACP, 0, [lpCommandLine], -1, lpCommandLineW , (2*MAX_PATH)+2
     ;invoke MultiByteToWideChar, CP_ACP, 0, [lpCurrentDirectory], -1, lpCurrentDirectoryW , (2*MAX_PATH)+2

     TEST EAX, EAX
     JZ .failure
     invoke CreateProcessWithLogonW, UserW, NULL, PassW, 1, NULL, lpCommandLineW ,DEBUG_ONLY_THIS_PROCESS, [lpEnvironment],\
                                          NULL, [lpStartupInfo], [lpProcessInformation]
     ret
.proceed:
    invoke CreateProcessA, [lpApplicationName], [lpCommandLine], [lpProcessAttributes], [lpThreadAttributes],\
                           [bInheritHandles], [dwCreationFlags], [lpEnvironment], [lpCurrentDirectory], [lpStartupInfo],\
                           [lpProcessInformation]
    ret
.failure:
    invoke MessageBoxA, [MainwHandle], lpTextErrorLogon, lpTitleError, MB_ICONERROR
    XOR EAX, EAX
    ret
endp
Ich hooke die Funktion CreateProcessA und möchte nun den Prozess mit User Credentials starten.
Wenn ich statt DEBUG_ONLY_THIS_PROCESS eine 0 angebe, startet der Prozess.

Also ich bin mir angesichts dieser Tatsache sehr sicher, dass DEBUG_ONLY_THIS_PROCESS / DEBUG_PROCESS nicht mit CreateProcessWithLogonW kompatibel ist.

Dezipaitor 4. Jan 2008 19:21

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
wo wird das Privileg eingeschaltet?

Neotracer64 4. Jan 2008 19:47

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
Ich bin ein Plugin in OllyDbg. ;)
Und OllyDbg hat dieses Privileg, da bin ich mir seeehhhrr sicher. ;)

Dezipaitor 4. Jan 2008 19:53

Re: CreateProcessWithLogonW in Verbindung mit DEBUG_PROCESS
 
Ich war mir eigentlich auch immer sicher, dass Dönerbuden immer gutes Fleisch benutzen. Aber dann kam alles doch ganz anders.... :pale:

Wenn du Dinge außer Acht lässt, dann könnte dir etwas Wichtiges entgehen.

Außerdem, ein inaktives Privileg zu haben ist genauso, als hätte man es nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 Uhr.
Seite 1 von 2  1 2      

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