fopen löst welche windowsmessages aus?
-
naja naja irgedwas verheimlichst du da
(<- auf smiley achten), ich hab mal gelesen windows managed und communiziert alle operationen über ebenen und messages .. aber ich kann mich nicht mehr genau erinnern....
-
punky schrieb:
ich hab mal gelesen windows managed und communiziert alle operationen über ebenen und messages ..
was füer ebenen? messages gibts nur in einigen fällen. solche funktionen erkennt man oft daran, dass man ihnen ein HWND mitgeben muss.

-
na es geht jez nicht explizit um die HWND's, sondern wie das system im allgemeinen kommuniziert, wie die jobs im System selbst vergeben werden das funktioniert doch auch mit messsages ... , die jobs kommen doch alle in einen pool und werden vom system nach bestimmten kriterien verarbeitet...
naja aber wie kommt man da ran?
-
Soweit ich weiß geht das mit Interrupts. Dateien liegen auf der Festplatte, die Festplatte ist Hardware, also kommst du da nicht ran und brauchst die Hilfe des Kernels und um den Kernel zu rufen brauchst du nen Interrupt (so funktioniert jedenfalls jedes halbwegs anständige Betriebssystem).
Du packst also die Parameter auf den Stack und rufst Interrupt Nummer ... 80 glaub ich. Oder war das Linux?
Jedenfalls, damit du dich um sowas nicht kümmern brauchst gibs die stdio wo drinsteht welcher Interrupt aufgerufen wird und was genau auf den Stack gepackt wird. Eigentlich müsstest du irgendwo die Implementation von fopen nachkucken können. Ich finde es nur gerade nicht.
-
punky schrieb:
naja aber wie kommt man da ran?
hier haste 'ne kleine übersicht über windoof: http://os.inf.tu-dresden.de/Studium/AusgewaehlteBS/windows/Folien/01_NT_Introduction/01_NT_Introduction_6c.pdf
(schau z.b. slide #10 und dann sag nochmal, was du genau vorhast).nwp2 schrieb:
Jedenfalls, damit du dich um sowas nicht kümmern brauchst gibs die stdio wo drinsteht welcher Interrupt aufgerufen wird und was genau auf den Stack gepackt wird. Eigentlich müsstest du irgendwo die Implementation von fopen nachkucken können. Ich finde es nur gerade nicht.
fopen z.b. ruft CreateFile auf, das ruft NtCreateFile auf (steckt wohl in der ntdll.dll), von da geht's über 'nen syscall in den kernel, wo dann erstmal der dateiname zerlegt wird, usw.

-
Hab doch noch was gefunden, int 80 war linux, int 21 war Windows.
; The program opens "Test.txt" and adds "Some text" in it ; If Test.txt does not exists, it is not created. ; Current directory action. org 100h start: mov ax,3d02h ; open file read/write lea dx,file ; gets file name int 21h mov handle,ax mov ax,4202h ; seek end of file mov bx,handle xor dx,dx mov cx,dx int 21h mov ah,40h ; write to file mov bx,handle mov cx,9 ; text len lea dx,text ; text adress int 21h mov ah,3eh ; close file mov bx,handle int 21h ret file db 'Test.txt',0 ; File name handle dw 0 text db 'Some text' ; Text to be written end
-
nwp2 schrieb:
Hab doch noch was gefunden ... int 21 war Windows.
nee, das ist für msdos, läuft bestenfalls nur im ntvdm.

-
hier haste 'ne kleine übersicht über windoof: http://os.inf.tu-dresden.de/Studium/AusgewaehlteBS/windows/Folien/01_NT_Introduction/01_NT_Introduction_6c.pdf
(schau z.b. slide #10 und dann sag nochmal, was du genau vorhast).hmm na das übersteigt irgendwie meine möglichkeit das näher zu begreifen zu können, wissen und so ..
wollt mich schlau machen wie man rausbekommt welche operation welches file gerade macht, wie wenn eins über fopen eine datei aufmacht etc.. ob man und wie man das im system monitoren kann ..
-
Sowas hier? http://technet.microsoft.com/de-de/sysinternals/bb896645.aspx
Anderen Kram gibts hier: http://technet.microsoft.com/de-de/sysinternals/bb545046.aspx
Filemon gibts leider nicht mehr, aber wenn du das Netzwerk- und Registrymonitoring ausschaltest ist Procmon quasi dasselbe. Ich hab noch Filemon rumzuliegen wenn du es unbedingt haben willst.Ich meine mal gesehen zu haben dass irgendwo steht wie sie es gemacht haben. Damals, als Sysinternals noch unabhängig von Microsoft war. Mit ein bischen suchen könnte man das finden, bin aber zu faul.
-
hmm ja denk mal das würde man über den system service dispatch table auslesen können:
http://rtg.informatik.tu-chemnitz.de/docs/vortraege/intercepting.pdf
http://rtg.informatik.tu-chemnitz.de/docs/da-sa-txt/sa-mhin.pdf
-
aber wie gesagt ist mir zu hoch