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 NtCreateProcess / ZwCreateProcess (https://www.delphipraxis.net/98249-ntcreateprocess-zwcreateprocess.html)

Zacherl 23. Aug 2007 22:25


NtCreateProcess / ZwCreateProcess
 
Hey, ich habe mal eine theoretische Frage an euch:

Wie kann ich mit NtCreateProcess einen Prozess erstellen? Ich vermute mal ich muss das EXE Image selbstständig in den Speicher laden ..

Gruß Zacherl

Dezipaitor 23. Aug 2007 22:33

Re: NtCreateProcess / ZwCreateProcess
 
Darf man fragen, was du damit machen willst?

Zacherl 23. Aug 2007 22:34

Re: NtCreateProcess / ZwCreateProcess
 
Natürlich .. das selbe wie ich es im Usermode mit normalen CreateProcess mache .. einen Prozess starten.

Luckie 23. Aug 2007 22:41

Re: NtCreateProcess / ZwCreateProcess
 
Und warum nimmst da dazu nicht CraeteProcess?

Dezipaitor 23. Aug 2007 22:56

Re: NtCreateProcess / ZwCreateProcess
 
braucht man für die Funktion nicht System-Rechte ?

Zacherl 23. Aug 2007 22:59

Re: NtCreateProcess / ZwCreateProcess
 
Ja .. ich will ein wenig in die Treiberprogrammierung unter C einsteigen, da ich C aber nicht (gut) kann, will ich mir den Aufruf erst in Delphi klarmachen.

Luckie 23. Aug 2007 23:05

Re: NtCreateProcess / ZwCreateProcess
 
Ähm, Treiberprogarmmirung und Delphi sind zwei verschiedene Welten, die so gut wie nichtvereinbar sind. Entweder betreibst du Treiberprogrammierung, dan aber auch richtig mit der entsprechenden Entwicklungsumgebung oder du schreibst Benutzeranwendungen mit Delphi. Und nur ein bischen Treiberprogrammierung het nicht.

Dezipaitor 23. Aug 2007 23:20

Re: NtCreateProcess / ZwCreateProcess
 
Was hast denn die Funktion mit Treiberprogrammierung zu tun? Kann man die in einem Treiber überhaupt aufrufen? Ich würde behaupten, man müsste einen Systemdienst installieren, der das macht. Der Treiber muss das an den Dienst kommunizieren. Müsste mal Olli dazu was sagen.

Irre ich mich, oder gab es nichtmal ein Versuch ein DDK für Delphi zu erstellen?
IMHO wären Treiber eh stabiler, wenn man jede andere Sprache außer C und kleiner verwenden würde *g*
Aber MS schafft es ja nichtmal den Vista Logon Bildschirm (User defines credential provider) .NET tauglich zu machen. Wir werden schon auf das Nächste Vista warten müssen, bis man .NET Treiber schreiben darf. Da brauchen wir dann auch keine Zwangssignierung mehr :D

Olli 23. Aug 2007 23:22

Re: NtCreateProcess / ZwCreateProcess
 
Zitat:

Zitat von Zacherl
Natürlich .. das selbe wie ich es im Usermode mit normalen CreateProcess mache .. einen Prozess starten.

Gut, weil im Kernelmode kannste damit keinen starten.

Zitat:

Zitat von Dezipaitor
braucht man für die Funktion nicht System-Rechte ?

Nein, aber um in den Kernelmode zu gelangen braucht's das TCB-Recht.

Zitat:

Zitat von Zacherl
Ja .. ich will ein wenig in die Treiberprogrammierung unter C einsteigen, da ich C aber nicht (gut) kann, will ich mir den Aufruf erst in Delphi klarmachen.

Ich würde dir dann dringend empfehlen erstmal C/C++ zu lernen und dann eventuell bei Treibern einzusteigen. Dennoch ist Treiberentwicklung komplett anderes als Anwendungsentwicklung für Win32. ISt also fast wie der Umstieg auf ein anderes Betriebssystem, wenn man C oder Pascal zur GUI-Entwicklung nimmt.

Für einen Einblick in die Native API immernoch Nebbett sowie die JwaNative.pas von jedi-apilib.sf.net ...

Zacherl 24. Aug 2007 13:25

Re: NtCreateProcess / ZwCreateProcess
 
Ich weiß, dass Treiberprogrammierung was total anderes ist als Programmierung unter Delphi. Mit dem DDK von Microsoft wollte ich mit meinen bisherigen Kenntnissen einfach einen Treiber schreiben, der zum Test einen neuen Prozess startet. Da ich CreateProcess wie ich weiß nicht verwenden kann muss NtCreateProcess her.

Ob Delphi oder C ist ja eigentlich egal .. mir gehts nur um den Ablauf .. welche APIs brauche ich alle und in welcher Reihenfolge mit welchen Argumenten muss ich sie aufrufen? Ich möchte keine Header, die habe ich :)

Ich verstehe halt nur nicht, wie die Abfolge der APIs ist. NtCreateProcess alleine reicht ja nicht aus, denn ich sehe keinen Parameter, mit dem man einen Image Pfad angeben kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr.
Seite 1 von 2  1 2      

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