Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ZwCreateSection / ZwMapViewOfSection - Beschreibung (https://www.delphipraxis.net/127180-zwcreatesection-zwmapviewofsection-beschreibung.html)

sirius 9. Jan 2009 11:34

Re: ZwCreateSection / ZwMapViewOfSection - Beschreibung
 
Zitat:

Zitat von nicodex
Zitat:

Zitat von sirius
Ähm, und wie kommst du an die zwxxx-Funktionen ran?

Wie sonst auch. Im Benutzermodus sind die Einsprungpunkte für NtXxx und ZwXxx (wenn es beide gibt) ohnehin identisch.
function NtXxx; external 'ntdll.dll';

Eben. Man nimmt im Usermode die nt, weil diese die zw aufruft (und in den Kernelmode switched). Nur ich fragte, weil Zacherl explizit die zw aufrufen will/tut.

nicodex 9. Jan 2009 12:21

Re: ZwCreateSection / ZwMapViewOfSection - Beschreibung
 
Ich frage nicht umsonst nach dem eigentlichen Zweck, da sich die meisten Dinge mit "normalen" API-Funktionen umsetzen lassen.

ErazerZ 9. Jan 2009 13:15

Re: ZwCreateSection / ZwMapViewOfSection - Beschreibung
 
Zitat:

ich beschäftige mich grade mit einigen Nativen Windows APIs zur Prozesserzeugung.
Das will er machen. Einen Prozess erzeugen bzw "steuern".

nicodex 9. Jan 2009 14:37

Re: ZwCreateSection / ZwMapViewOfSection - Beschreibung
 
Zitat:

Zitat von ErazerZ
Zitat:

ich beschäftige mich grade mit einigen Nativen Windows APIs zur Prozesserzeugung.
Das will er machen. Einen Prozess erzeugen bzw "steuern".

Na dann viel Spaß beim Anmelden des Prozesses/Threads beim Windows-Subsystem. Das ist nicht so einfach wie er sich das vorstellen mag.
Es gibt zwar einen "Trick" für eingebundene Ressourcen (mit Nebeneffekten). Aber ob der noch funktioniert (und wie lange), ist eine andere Frage.

Es gibt andere Wege. Und mir ist nicht klar, warum es unbedingt eine native API sein muss. Bis das nicht geklärt ist, lohnt sich das Nachdenken über die Frage nicht.

Luckie 9. Jan 2009 14:47

Re: ZwCreateSection / ZwMapViewOfSection - Beschreibung
 
Eventuell ist es auch einfach nur Forscherdrang. Ich habe von jemanden gehört, der hat mal mit Delphi einen Treiber geschrieben aus Neugier (Ich denke, das war der Grund). ;)

Zacherl 9. Jan 2009 15:23

Re: ZwCreateSection / ZwMapViewOfSection - Beschreibung
 
Hey Leute, erstmal danke für eure Antworten! Zu den Hintergründen: Luckie hat schon Recht, dass es mir mehr ums Verständniss geht, als darum irgendwas Praktisches umzusetzen. Ob jetzt die Zw oder Nt Funktionen verwendet werden ist ja recht egal im Usermode, wie auch schon erwähnt wurde. Die Prototypen habe ich in der JEDI Native API Library gefunden.

Mir geht es erstmal darum zu verstehen, wie die APIs verwendet werden müssen. Ich habe mal in meiner eigenen Anwendung ZwCreateSection gehookt und bekomme nun auch mit, wenn diese durch z.b. CreateProcess ausgelöst wird.

Gut .. nun hat der Prozess also eine Section erzeugt. Nur was passiert nun damit? Soweit ich das verstanden habe, wird in diese Section irgendwie per ZwMapViewOfSection der eigentliche Code der Anwendung in den Speicher gemappt.

Dachte ihr hättet vielleicht eine einfache Beschreibung davon, wie das ganze tatsächlich abläuft, ob z.b. für jede Section in der EXE Datei eine ImageSection mit ZwCreateSection erzeugt wird, etc.

Gruß Zacherl

ErazerZ 9. Jan 2009 20:13

Re: ZwCreateSection / ZwMapViewOfSection - Beschreibung
 
Prozess erstellen mittels Native APIs hab ich immer so gemacht, falls dir das weiterhilft..
NtCreateFile
NtCreateProcess
NtQuerySection
NtAllocateVirtualMemory
NtProtectVirtualMemory
NtCreateThread
NtQueryInformationProcess
RtlCreateProcessParameters
CsrClientCallServer
NtResumeThread
NtClose ;)


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

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