Zakładam, że podłączasz bibliotekę DLL, do której podpinałeś eksport tej biblioteki DLL?
W takim przypadku można wykonać prosty hak IAT (i potencjalnie EAT).
Zaletą haczyków IAT/EAT w objazdach jest fakt, że aplikacja i usunięcie haków jest w 100% bezpieczne (ponieważ nie zastępujesz kodu, zastępujesz wskaźnik, więc nie ma szans na wyścig warunek), a także łatwe wykonywanie haków na natywnych procesach x64 (których biblioteka Detours Microsoftu nie może zrobić, jeśli nie rozwiążesz 10 kawałków dla wydania Profesora).
Tak, istnieją zewnętrzne biblioteki objazdowe, które mają wsparcie dla x64 i dbają o większość warunków wyścigowych i co nie, ale niektóre z nich są naprawdę drogie, a inne są po prostu uciążliwe.
Haki IAT/EAT są szybkie i łatwe, a kod przykładowy do ich wykonania dostępny jest w książce "Windows przez C/C++" (wraz z mnóstwem miejsc w interwebs).
Jest to dość ogólna odpowiedź, którą znam, ale trudno jest przejść do bardziej szczegółowych informacji bez dodatkowych informacji na temat tego, co dokładnie próbujesz zrobić.
Czy próbujesz podłączyć bibliotekę DLL do własnego procesu lub biblioteki DLL, która została załadowana do innego procesu? –
Dostępne strategie zahaczania wszystkich funkcji używanych w bibliotece dll są inne niż strategie służące do przechwytywania tylko jednej z używanych funkcji. Strategie poza procesem różnią się od strategii procesowych. Czy mógłbyś podać więcej szczegółów? –
tak, próbuje podłączyć dll z innego procesu. jak coś podobnego na przykład byłoby jak podpięcie pliku opengl32.dll i przechwycenie glBegin..glEnd i etc ... – enuree