Kann man .so-Bibliotheken öffnen?

Isaak

Member
Die gleiche Frage habe ich bereits vor einem Monat im sidux-Forum gestellt, allerdings ohne eine Antwort zu bekommen. Vielleicht ist ja auch die Frage einfach zu trivial...
View topic - Live-Kernel - .so und .ko-Bibliotheken betrachten :: sidux.com :: debian based live cd development

Also, ich wollte mir mal .so-Bibliotheken anschauen, da diese ja scheinbar irgendein Archiv sind. Zumindest werden etwa die Splash-Themes unter anderem in .so umgewandelt wie artwork.so. Gibt es eine Möglichkeit, sich diese mal anzuschauen bzw. zu entpacken oder verstehe ich hier etwas grundsätzlich falsch? Jedenfalls habe bisher keine Antwort finden können.

Hat jemand einen Tipp, wie ich das entpacken kann?

Gruß

isaak
 

Rain_Maker

Administrator
Teammitglied
AW: Kann man .so-Bibliotheken öffnen?

Man könnte mit einem Hexeditor "hineinsehen", aber ich bezweifle, daß dies viel bringt.

Ich würde mir den entsprechenden Quellcode besorgen, da hat man es einfacher.

Greetz,

RM
 

Isaak

Member
AW: Kann man .so-Bibliotheken öffnen?

Ja, mit einem Editor habe ich das schon versucht, etwas sinnvolles ist da aber nicht zu erkennen, zumal wie beim Beispiel artwork.so ja mehr drinsteckt als ein Code - im besten Fall erkennt man noch irgendwelche Verlinkungen in dem Kauderwelsch.

Der Quellcode ist natürlich eine Alternative, aber nicht immer einfach zu finden. Manchmal findet man sehr interessante Sachen im Netz, die aber schlecht dokumentiert sind.

Danke für den Tipp.

Gruß

Isaak
 

Isaak

Member
AW: Kann man .so-Bibliotheken öffnen?

Danke für den Link und die Info.

Ich hatte das jetzt auch nicht auf die Distributionen bezogen, sondern genrell, dass manche Daten online stellen, etwa bei kde-look.org oder gnome-look.org ... die durchaus interessant sind, aber eben nur mangelhaft dokumentiert, so dass es - zumindest mir - schwer fällt es nachzuvollziehen.

Mit fällt gerade nur wieder das splash ein: jemand bastelt ein super Theme, stellt aber nur die fertigen Pakete online, etwa artwork.so, splash-xy.so etc., so dass ich nicht sehenkann, wie das Script funktioniert. Bei den meisten liegen die Daten als normales tar.gz oder ähnliches. In solchen Fällen ist es ja kein Problem: Entpacken, angucken, lernen.

Ohje, ich hoffe, ich drücke mich irgendwie verständlich aus und ihr wisst, was ich meine :)
 

helmut

New Member
AW: Kann man .so-Bibliotheken öffnen?

Isaak schrieb:
Also, ich wollte mir mal .so-Bibliotheken anschauen, da diese ja scheinbar irgendein Archiv sind.
Irrtum, die sind kein Archiv, sondern eine dll (dynamic linked library), jedenfalls wenn sie die Erweiterung ".so." besitzen (unter Windows wird für so was die Erweiterung .DLL benutzt, falls dir das was sagt).

Also ein Teil, der zu einem Programm hinzugefügt wird, so dass der Inhalt der Datei (genauer: das, was der Loader draus macht) ein Teil dieses Programms wird.

Zumindest werden etwa die Splash-Themes unter anderem in .so umgewandelt wie artwork.so.
Ich kann mich an ein DOS-Utility erinnern, dass eine Textdatei in ein Programm umwandelte, das diesen Text ausgibt. Was du beschreibst ist wohl so was Ähnliches, nur eben für Graphiken (Themes).

Gibt es eine Möglichkeit, sich diese mal anzuschauen bzw. zu entpacken oder verstehe ich hier etwas grundsätzlich falsch? Jedenfalls habe bisher keine Antwort finden können.
Dazu könntest du dir den Quellcode des Programms anschauen, das die entsprechende *.so erzeugt. Wenn das nur die Theme-Grafiken in das Programm packt mit entsprechendem Code "drumherum", dann sollte es möglich sein, die Themes, die du haben möchtest, wieder rauszuholen.

Hat jemand einen Tipp, wie ich das entpacken kann?
Das, was du suchst, von Programmcode der dll (und anderen Infos, wie Header oder Datenfelder) trennen, den Code etc., der dich nicht interessiert, wegschmeißen und die Themes behalten (ggf. entpacken, falls das gezippte Bimaps oder so sind). Wenn du das nicht per Hand machen willst, brauchst du ein speziell für diesen Fall konstruiertes Tool. Ist zwar etwas unwahrscheinlich, aber wenn du Glück hast hat irgendjemand genau so was programmiert ... viel Spaß beim Googeln. ;)

Sonst hilft nur, das Tool selbst zu programmieren ... vielleicht kennst du ja jemand, der das gerne für dich tut?

Und wenn du wirklich Pech hast, ist da überhaupt keine Grafik drin, sondern nur ein Programm voller Grafikbefehle, mit denen das Theme erzeugt wird, wenn die entsprechenden Programmroutinen aufgerufen werden.
 

Aqualung

New Member
AW: Kann man .so-Bibliotheken öffnen?

Isaak schrieb:
D
Hat jemand einen Tipp, wie ich das entpacken kann?
Eine Art Inhaltsliste kannst Du mit ldd erstellen:

Code:
ldd /usr/lib/opensc-pkcs11.so
        linux-gate.so.1 =>  (0xffffe000)
        libpkcs15init.so.2 => /usr/lib/libpkcs15init.so.2 (0xf7f25000)
        libopensc.so.2 => /usr/lib/libopensc.so.2 (0xf7e79000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xf7d11000)
        libopenct.so.1 => /usr/lib/libopenct.so.1 (0xf7d07000)
        libz.so.1 => /lib/libz.so.1 (0xf7cf1000)
        libltdl.so.7 => /usr/lib/libltdl.so.7 (0xf7ce6000)
        libdl.so.2 => /lib/libdl.so.2 (0xf7ce1000)
        libscconf.so.2 => /usr/lib/libscconf.so.2 (0xf7cda000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7cc0000)
        libc.so.6 => /lib/libc.so.6 (0xf7b64000)
        /lib/ld-linux.so.2 (0xf7fa0000)
 

Rain_Maker

Administrator
Teammitglied
AW: Kann man .so-Bibliotheken öffnen?

helmut schrieb:
Irrtum, die sind kein Archiv, sondern eine dll (dynamic linked library), jedenfalls wenn sie die Erweiterung ".so." besitzen (unter Windows wird für so was die Erweiterung .DLL benutzt, falls dir das was sagt).
Fürs Protokoll.

Das "so" steht für "shared object".

Dieser Ausdruck dürfte vermutlich älter als der Ausdruck "dll" sein, "Mama UNIX" ist schliesslich schon ne ganze Weile länger in Verbreitung als Windows oder "Baby Tux" (der -um beim Vergleich zu bleiben- mittlerweile ein "Halbstarker" ist).

Lesenswerte Lektüre zum Thema:

Programmbibliothek - Wikipedia

Das Prinzip ist also (wenig überraschend) älter als UNIX selbst.
 

helmut

New Member
AW: Kann man .so-Bibliotheken öffnen?

Rain_Maker schrieb:
Dieser Ausdruck dürfte vermutlich älter als der Ausdruck "dll" sein, "Mama UNIX" ist schliesslich schon ne ganze Weile länger in Verbreitung als Windows oder "Baby Tux" (der -um beim Vergleich zu bleiben- mittlerweile ein "Halbstarker" ist).
Oh, ich dachte, die Bezeichnung dll wär älter als Window$. Aber ich gehe mal davon aus, dass du es besser weißt als ich und bedanke mich für die Korrektur.
 

Rain_Maker

Administrator
Teammitglied
AW: Kann man .so-Bibliotheken öffnen?

helmut schrieb:
Oh, ich dachte, die Bezeichnung dll wär älter als Window$.
Das ist schwer zu sagen, zumindest ist die Bezeichnung "Dynamic linked library" soweit ich das recherchieren konnte keine "Windows only"-Erfindung, sie wurde sowohl für Win als auch für OS/2 verwendet.

In einem anderen Zusammenhang findet man eigentlich keine Hinweise auf diesen Begriff, während die Begriffe "shared library" oder "shared object" schon bei den ältesten UNIX-Implementierungen zu finden sind (auch wenn man nach so altem Kram im Netz entsprechend lange suchen muss).

Für Dateierweiterung ".dll" gilt es auf jeden Fall, daß sie unter Windows (und früher unter OS/2) als Bezeichnung für dynamische gelinkte Objekte/Bibliotheken verwendet wird (wurde), während man relativ leicht Referenzen auf shared libraries "*irgendwas*.so" für *NIX-artige Systeme deutlich vor 1980 findet (wahrscheinlich findet man bei längerer Recherche noch ältere Beispiele) und das obwohl Dateiendungen unter *NIX einen weitaus geringeren Stellenwert als unter Windows haben (ob unter *NIX eine Datei ausführbar ist, entscheidet z.B. nie die Dateiendung wie "exe" "pif" oder "bat" -falls überhaupt vorhanden- sondern das X-bit).
 
Oben