2012-01-20 17 views
6

W systemie Windows mniej lub bardziej powszechne jest tworzenie "bibliotek DLL pośredniczących", które mają miejsce w oryginalnej bibliotece DLL i przekierowują do niej wywołania (po dodatkowych działaniach w razie potrzeby). Możesz przeczytać o tym na przykład here i here.Wspólna biblioteka proxy (sharedlib, shlib, so) dla ELF?

Jednak kultura shlib mungowania pod Linuksem jest zupełnie inna. Zaczyna się od tego, że LD_PRELOAD jest wbudowaną funkcją ld.so pod Linuksem, która po prostu wstrzykuje oddzielne shlib do procesu i używa dowolnych symboli, które definiuje jako nadpisanie. I ta technika "wtrysku" wydaje się definiować cały kierunek myślenia - tutaj jest a typical ELF hacking tool lub this question, gdzie dżentelmen wydaje się mieć taki sam przypadek użycia jak ja, ale zaczyna od pytania, w jaki sposób może korygować istniejące pliki binarne.

Nie, dziękuję. Nie chcę wprowadzać ani modyfikować czegoś, co nie jest moje. Wszystko, co chcę zrobić, to zrobić samodzielne proxy shlib, które będzie wywoływać oryginał. Idealnie byłoby narzędzie, które może być zasilane oryginałem .so i stworzyć kod źródłowy C, który po prostu przekierowałby do funkcji oryginału, jednocześnie pozwalając mi z łatwością przesłonić wszystko, co chcę. Gdzie jest takie narzędzie? ;-) Dzięki.

Odpowiedz

0

apitrace to narzędzie, które obejmuje szczegółowe śledzenie wywołań bibliotek graficznych (OpenGL, DirectX) dla pewnej liczby platform. Jest to prawdopodobnie zbyt szczegółowe i złożone rozwiązanie generyczne, ale przynajmniej zapewnia pewne odniesienie i powinowactwo.