Frage

Wenn externe DLLs Laden (nicht unter unserer Kontrolle) über Loadlibrary, wir schlagen ein Problem, wo die statisch gelinkte CRT in diesen DLLs versagen faser lokalen Speicher zuzuweisen. Dies ist vergleichbar mit MSKB Karte 193.462 , mit der Ausnahme, dass diese FLS ist und es gibt nur 128 von ihnen.

Gibt es nützliche Möglichkeiten, um das Problem zu arbeiten? Die CRT wird GetProcAddress mit FlsAlloc sowieso zu finden (da diese anscheinend nie in XP vorhanden), so tut es auch es wirklich brauchen?

(Dies ist auf Vista, wo FlsAlloc tatsächlich vorhanden ist, der DLLs erscheint MSVC8 zu verwenden)

War es hilfreich?

Lösung

Es ist ehrlich gesagt keine Lösung hier, kurz von weniger Dlls geladen werden.

könnten Sie die Importadressentabelle der dll Haken - aber das wird zu spät geschehen, da Sie nur ein IAT-Haken, wenn Loadlibrary zurückkehrt installieren können, und die CRT-Initialisierungscode ausführt wahrscheinlich als Antwort auf DllProcessAttach, die bereits verarbeitet wurden, wird

Sie konnte ich denke, die kernel32.dll Modul im Speicher zu finden, und für GetProcAddress oder vielleicht FlsAlloc den Export Adresse Pflasters auf die Implementierung zu zeigen. Aber dieser Ansatz ist immer ernst hackish.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top