Gut. Soweit ist alles klar.
Jetzt aber:
- Es gibt die
DLL einmal, kopiert wird nur der Datenteil, d.h. jeder Prozess besitzt einen Datenteil.
Alle Prozesse greifen aber auf die gleiche
DLL zurück, wenn es um den Code an sich geht, also nicht Daten.
Nun greift Prozess A auf die
DLL zu und kopiert sich den Datenteil. Damit hat es einen Handler auf die HookProc.
Jetzt greift auch Prozess B auf die
DLL zu und kopiert sich den Datenteil. Damit hat auch er einen Handler auf die HookProc.
Jetzt kommt die global oder lokal Frage auf:
Sind die beiden Handler lokal, also im Datenteil des jeweiligen Prozesse, sind sie unterschiedlich.
Gibt es einen globalen Handler, muss dieser in einem shared segment liegen, da beide Prozesse darauf zugreifen müssen.
Ich habe gedacht, es funktioniert nur mit EINEM GLOBALEN HANDLER.
Anscheinend tuts dass aber auch mit zwei lokalen Handlern, die nichts voneinander wissen (siehe Beispiel oben).
That's what I don't understand.
Danke für Deine Hilfe, ich hoffe wir können das noch lösen....