Więc każdy prawdopodobnie wie, że glibc's /lib/libc.so.6
może być wykonany w powłoce jak normalny plik wykonywalny, w którym to przypadkach drukuje informacje o wersji i kończy pracę. Odbywa się to poprzez zdefiniowanie punktu wejścia w .so. W niektórych przypadkach może to być interesujące dla innych projektów. Niestety, punkt wejścia niskiego poziomu, który można ustawić za pomocą opcji ld--e, jest nieco zbyt niski: dynamiczny program ładujący nie jest dostępny, więc nie można wywoływać żadnych właściwych funkcji bibliotecznych. glibc z tego powodu implementuje wywołanie systemowe write() poprzez nagłe wywołanie systemowe w tym punkcie wejścia.budowanie .so, który jest również wykonywalny
Moje pytanie brzmi, czy ktokolwiek może wymyślić ładny sposób, w jaki można załadować pełny dynamiczny linker z tego punktu wejścia, aby uzyskać dostęp do funkcji z innych .so?
'/ lib/ld-linux.so.2' to tylko kolejny przykład :) –