Left Up Right Linux Mechanismen

Shared Libaries/shared Object

Literatur:
Program Library HOWTO insbesondere Programming library HOWTO
C++ dlopen mini HOWTO
beschreibt Lösungen bei der Verwendung von C++ mit dlopen
siehe Dynamischer Linker ld.so(8)

LD_LIBRARY_PATH-Environment-Variable setzt Suchpfad.

Nach der Bemerkungen von David B. ist dies nur für Experimentierzwecke, bei der Endnutzung ist es nicht akzeptabel, daß Programme nur mit Hilfe des richtig LD_LIBRARY_PATHs - der auch noch von der Tageslaune des Installateurs abhängt startbar sind.

Tips: Funktion: Sicherheitsprobleme und Vermeidung:

LD_PRELOAD

Der Environmentvariable LD_PRELOAD kann man Funktionsaufrufe unterbrechen:

testLD_PRELOAD.tgz
baut eine shared library und einen interceptor. test.sh ist der Aufruf
testLD_PRELOAD.tgz
überschreibt den open-Systemcall in der libc.

weitere Literatur: Kevin Pulo: Fun with LD_PRELOAD

Beispielanwendungen die referenziert werden:

FL-Cow
überschreibt open und realisiert ein Copy on Write
installwatch
prüft Modifikationen bei installationen
netjail
kontrolliert wie programme auf netz zugreifen
failmalloc
überschreibt malloc und laesst es oft NULL zurueckgeben um die robustheit zu testen
Electicfence
überprüft malloc-Aufrufe
segv_handler

Umlinken: Erzeugen eines statischen Executable aus einem dynamisch gelinkten Executable

Problematik: das dynamische Linken bringt zur Laufzeit viele Abhängigkeiten, die in einer konkreten Installation vorliegen müssen.

ELF Statifier
Ermine
kommerzielle Lösung

Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber