Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dateisperre freigeben (https://www.delphipraxis.net/53005-dateisperre-freigeben.html)

mumu 5. Jan 2006 19:26

Re: Dateisperre freigeben
 
also das mit IDA ist echt klasse. hab mir das mal angeschaut. der treiber ist ja echt voll simpel.

aber ich hab trotzdem noch ne frage:
gibt es eigentlich ein gutes programm, dass mir so das grundgerüst eines treibers erzeugt. so dass ich halt driverentry routinen usw... schon hab.

kennt da jemand sowas?!

Daniel G 5. Jan 2006 20:27

Re: Dateisperre freigeben
 
Zitat:

Zitat von mumu
gibt es eigentlich ein gutes programm, dass mir so das grundgerüst eines treibers erzeugt.

Nennt sich Windows Driver Development Kit. Da gibt es einen hübschen Ordner, in dem einige Treiberbeispiele drin' sind. Haste' oben ja schon selbst erwähnt. Wenn ich mich nicht arg täusche, müsste sowas dort auch zu finden sein...

Olli 5. Jan 2006 21:04

Re: Dateisperre freigeben
 
Zitat:

Zitat von mumu
gibt es eigentlich ein gutes programm, dass mir so das grundgerüst eines treibers erzeugt. so dass ich halt driverentry routinen usw... schon hab.

kennt da jemand sowas?!

Jo, habe gestern sowas veröffentlicht. Ist aber Perl-basiert. Es erzeugt ein VC 2003-Projekt, mit dem du auf Basis von DDKBUILD (siehe Bei Google suchenOSR Online) dein Projekt komplett in VC verwalten und kompilieren kannst. Ich liebe das :-D
http://assarbad.net/stuff/!export/create_proj.rar

Ich kann dir auch eine modifizierte Version von DDKBUILD zukommen lassen, die ich bereits an Mark Cariddi geschickt habe, der sie auch veröffentlichen will. In diesem Fall muß ich dich allerdings bitten diese modifizierte Variante nicht weiterzugeben!

Zitat:

Zitat von Daniel G
Nennt sich Windows Driver Development Kit. Da gibt es einen hübschen Ordner, in dem einige Treiberbeispiele drin' sind. Haste' oben ja schon selbst erwähnt. Wenn ich mich nicht arg täusche, müsste sowas dort auch zu finden sein...

Dort sind zwar "schon ausgefüllte" Grundgerüste vorhanden, aber er will ja "nur" ein Skelett ohne "Füllung".

NicoDE 6. Jan 2006 12:18

Re: Dateisperre freigeben
 
Zitat:

Zitat von Olli

Wiedermal eine Randbemerkung :)
Die aktuelle Demo ist 4.9 - http://www.datarescue.be/downloaddemo.htm

Gruß Nico

ps: /me freut sich schon auf IDA 5.0 :)

Olli 6. Jan 2006 13:15

Re: Dateisperre freigeben
 
Zitat:

Zitat von NicoDE
Wiedermal eine Randbemerkung :)
Die aktuelle Demo ist 4.9 - http://www.datarescue.be/downloaddemo.htm

Ich hatte ja mit Absicht den Link zur Freewareversion gegeben, weil viele Leute sich eben 400 EUR nicht leisten können oder wollen (geschweige denn 800 für die Advanced-Version).

Zitat:

Zitat von NicoDE
ps: /me freut sich schon auf IDA 5.0 :)

Ich auch. Zumal ich ja jetzt erstmal wieder updateberechtigt bin :mrgreen:

mumu 7. Jan 2006 19:04

Re: Dateisperre freigeben
 
das perl skript ist genial danke, genau sowas hab ich gesucht.

mal ne ganz doofe frage:
wenn ich funktionen aus der ntdll.lib aufrufen will, dann kann ich über #pragma comment (lib,"ntdll.lib") diese meinem projekt hinzufügen und dieses auch compilieren, aber ich würde halt gerne die definitionen der funktionen angezeigt bekommen. wenn ich jetzt ne funktion eingeb und die klammer auf mach, dann sollte er mir die parameter anzeigen. kann ich das irgendwie machen?

und wie füge ich dem projekt eigentlich standard projektpfade hinzu in denen sich die windkk include und lib dateien befinden?!?

Olli 7. Jan 2006 19:51

Re: Dateisperre freigeben
 
Zitat:

Zitat von mumu
das perl skript ist genial danke, genau sowas hab ich gesucht.

Du bist der erste von dem ich Feedback bekomme, obwohl ich es auf NTDEV schon gepostet habe. Schön, daß es auch anderen nutzt :-D

Zitat:

Zitat von mumu
wenn ich funktionen aus der ntdll.lib aufrufen will, dann kann ich über #pragma comment (lib,"ntdll.lib") diese meinem projekt hinzufügen und dieses auch compilieren, aber ich würde halt gerne die definitionen der funktionen angezeigt bekommen. wenn ich jetzt ne funktion eingeb und die klammer auf mach, dann sollte er mir die parameter anzeigen. kann ich das irgendwie machen?

Also, erstens mußt du dazu nicht die NTDLL.LIB einbinden (würde auch garnicht funktionieren, bei einem Treiber) und LIBs kannste auch über den entsprechenden Parameter in der SOURCES-Datei einbinden, aber das hilft hier nix. Ich habe zwar schon BROWSER_INFO=1 in der SOURCES-Datei vordeklariert, damit die Browser-Infodateien erzeugt werden. ALLERDINGS werden ja a.) die Dateien je nach Plattform usw. in einem jeweils anderen Verzeichnis erstellt und b.) habe ich noch nicht herausgefunden wie man danach VC sagt, daß es die entsprechende Browser-Infodatei verwendet.
Ich hoffe mal, daß z.B. Nico uns da etwas Aufklärung verschaffen kann?!?!? :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

Zitat:

Zitat von mumu
und wie füge ich dem projekt eigentlich standard projektpfade hinzu in denen sich die windkk include und lib dateien befinden?!?

Okay, paß uff. Ich schicke dir per PN das von mir modifizierte DDKBUILD-Script. Danach setzt du die entsprechende Variable %BASEDIR% (bei mir steht sie auf "C:\Programme\WINDDK\3790.1830") und mußt ggf. neu starten oder einloggen damit sie wirksam wird. Danach kannst du dank der SOURCES-Datei im Projektverzeichnis kompilieren.

mumu 9. Jan 2006 09:17

Re: Dateisperre freigeben
 
Zitat:

Zitat von Olli
Also, erstens mußt du dazu nicht die NTDLL.LIB einbinden (würde auch garnicht funktionieren, bei einem Treiber) und LIBs kannste auch über den entsprechenden Parameter in der SOURCES-Datei einbinden, aber das hilft hier nix. Ich habe zwar schon BROWSER_INFO=1 in der SOURCES-Datei vordeklariert, damit die Browser-Infodateien erzeugt werden. ALLERDINGS werden ja a.) die Dateien je nach Plattform usw. in einem jeweils anderen Verzeichnis erstellt und b.) habe ich noch nicht herausgefunden wie man danach VC sagt, daß es die entsprechende Browser-Infodatei verwendet.
Ich hoffe mal, daß z.B. Nico uns da etwas Aufklärung verschaffen kann?!?!? :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

hmm jetzt verwirrst du mich total :) also ich kann keine libs aus dem DDK in meinem Treiber einbinden?! warum das??
ich möchte jetzt die Funktion ZwQueryObject im Treiber ausführen. Diese ist ja in der NTDLL.Lib definiert. wie muss ich das dann machen, wenn ich die LIB nicht einbinden darf??

Olli 9. Jan 2006 11:42

Re: Dateisperre freigeben
 
Zitat:

Zitat von mumu
hmm jetzt verwirrst du mich total :) also ich kann keine libs aus dem DDK in meinem Treiber einbinden?! warum das??

Stop stop stop. Hier scheint ja einiges an Grundlagenwissen zu fehlen. Die NTDLL ist ein Interface für den Usermode-Teil der Native API, du hingegen willst einen Treiber implementieren und mußt dich deshalb an den Kernelmode-Teil halten. Dieser ist in NTOSKRNL.EXE implementiert und wird mit einer der standardmäßig eingebundenen LIBs automatisch ohne dein Zutun verfügbar gemacht.

Zitat:

Zitat von mumu
ich möchte jetzt die Funktion ZwQueryObject im Treiber ausführen. Diese ist ja in der NTDLL.Lib definiert. wie muss ich das dann machen, wenn ich die LIB nicht einbinden darf??

Definiert ist sie auch nicht in NTDLL.LIB, denn das ist ja nur eine Importbibliothek ;)

mumu 9. Jan 2006 12:05

Re: Dateisperre freigeben
 
hmm ok danke olli.

wenn ich jetzt die Funktion ZwQueryObject im Treiber ausführen möchte, dann muss ich die sozusagen selbst importieren.

ich habe eine seite gefunden, die wirklich sau viel definiert hat...
pyrasis

Wenn ich jetzt z.B. die Funktion ZwQueryObject verwenden möchte, dann leg ich mir ne header datei an in der ich folgendes schreib...
Code:
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryObject (
    IN HANDLE              ObjectHandle,
    IN OBJECT_INFO_CLASS   ObjectInformationClass,
    OUT PVOID              ObjectInformation,
    IN ULONG               Length,
    OUT PULONG             ResultLength
);
und dann include ich diese header datei. oder?

was bedeuten die 3 Ausdrücke vor dem ZwQueryObject?
NTSYSAPI
NTSTATUS
NTAPI


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.
Seite 4 von 6   « Erste     234 56      

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