Jestem autorem artykułu Nektry. Badania rozpoczęły się, gdy chcieliśmy dodać więcej funkcji do ograniczonej aplikacji Metro Mail dostarczanej z systemem Windows 8.
Chociaż proces nie był dokładnie taki sam, jak w aplikacjach biurowych, ponieważ zazwyczaj aplikacje w metrze są zawieszone, podpinaliśmy pierwszą usługę DCOM .
Gdy usługa DCOM uruchamia aplikację Metro Mail, w tym momencie wstrzykniemy plik DLL przy użyciu znanej metody CreateRemoteThread/LoadLibrary.
W początkowych testach próbowaliśmy wstrzyknąć plik DLL znajdujący się w tym samym folderze, w którym znajdował się nasz test, i odkryliśmy, że jeśli biblioteka DLL jest w systemie32, ładuje się poprawnie.
Później robimy dalsze badania, aby zobaczyć, dlaczego biblioteka dll nie ładuje się, jeśli nie na folderze system32.
O zahaczaniu winsock, nie testowaliśmy tego, ale myślę, że powinno być to możliwe, ponieważ, przynajmniej na komputerach stacjonarnych, za metą znajdują się powszechnie znane biblioteki dll (kernel32, user32 itd.) I podpinaliśmy niektóre api bez problemów.
Czy jesteś pewien, że pierwszy związek nie ma być interpretowany jako: „Można zrobić zastrzyk DLL, ale nie można zrobić to przekierować ruch”? – Patashu
Ilekroć ktoś mówi coś "nie jest możliwe", co tak naprawdę oznacza to coś w stylu "nie powinno być możliwe" lub nawet "nie wiem, jak to zrobić". Nektra znalazła sposób: umieść bibliotekę DLL w systemie32. –
@Sebastian: Zapytam Cię bezpośrednio: kiedy umieszczę moją bibliotekę DLL w systemie32 i robię hak do aplikacji metra, czy mogę uzyskać pełną kontrolę nad procesem hooked (np: przekierowanie ruchu winsock, odmówienie połączenia do "niebezpieczne" api?). Uczyń nas wspaniałą odpowiedzią, potrzebujemy naprawdę jakiegoś rodzaju informacji. –