Login
Login-Name Passwort


 
Newsletter
Werbung

Mi, 3. November 2004, 18:54

Software::Spiele

Preloading mit Beispielen erklärt

Linuxjournal.com liefert einen ausführlichen Artikel zur Verwendung des Preload-Mechanismus, um Bibliotheken ohne Quellcode zu verändern.

Zugriff durch eine Preloading-Bibliothek

Zugriff durch eine Preloading-Bibliothek

Als konkretes Beispiel wählt der Autor die Manipulation der libusb ohne eine Neuübersetzung aus den Quellen. Das Beispiel verleiht der USB-Bibliothek vor allem zusätzliche Logging-Eigenschaften.

Um temporär das Verhalten von Bibliotheken und Anwendungen derartig zu verändern, bietet sich die Preload-Funktionalität an, die es erlaubt, mehrere Bibliotheken vor dem Start eines Programms zu laden. Diese Bibliotheken liegen in einer Schicht zwischen der Applikation und anderen Bibliotheken. Vom Programmierer variierte Funktionen platziert man folglich in einer solchen Preload-Library und lässt sie an Stelle ihrer Originale aufrufen. Um letztendlich doch noch Zugriff auf das Original der Funktion zu haben, bedient sich der Autor einer verbreiteten Vorgehensweise: Er sucht die Funktion in den eigentlichen Bibliotheken mit Hilfe des dynamischen Bibliothekenladers (dlopen und dlsym).

Der Preload-Mechanismus lässt sich eingeschränkt dazu verwenden, um auch Closed-Source-Software in ihrer Funktionalität zu erweitern oder schadhafte Routinen durch funktionierende zu ersetzen. Zu der Zeit, als das Spiel Quake 2 noch nicht unter der GPL lizenziert war, existierten beispielsweise derartige Preload-Bibliotheken, die das Spiel aktuellen Bedingungen eines Linuxsystems anpassten. Dies funktionierte allerdings nur, weil das Spiel in zahlreiche Bibliotheken gegliedert ist, wodurch viele der Funktionen variabel waren.

Ein weiteres Projekt, welches geglättete Schriften für GTK 1.2 auf mehr oder weniger sauberem Wege lieferte, basierte ebenfalls auf dem Preload-Mechanismus, indem die Bibliothek Funktionen von GDK neu implementierte.

Die genaue Anwendung erklärt der Autor mit Beispielen in seinem Artikel.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung