C-Funktionen einer Binary ermitteln

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
7
Punkte
0
Hallo,

bin gestern zufällig über eine interessante Sache gestoßen, welche ich bisher nur von Windows kannte (DLL-Injection). Unter Windows muss man dafür umständlich die Funktionsadressen verbiegen, aber unter Linux scheint das ja recht einfach per LD_PRELOAD zu funktionieren (genial!).

Wie bekommt man eigentlich heraus, welche Funktionen so eine Binary verwendet? Also wirklich bis zum letzten strcmp.
Hab das mal mit mipsel-linux-ld versucht, aber da bekomme ich ja nur die Libraries (bzw. nicht referenzierte Funktionen) zurück.

Würde gerne mehr über die Funktionsweisen mancher AVM-Binaries herausfinden (eventuell sogar eigenen Code injizieren).

Ist sowas überhaupt erlaubt???
 
Infos über in Binaries enthaltene Funktionen finden

bodega schrieb:
Wie bekommt man eigentlich heraus, welche Funktionen so eine Binary verwendet? Also wirklich bis zum letzten strcmp.

Versuch doch mal
Code:
readelf -s <name_of_binary>
, um die Symboltabelle zu bekommen. Mit readelf -a kriegst Du noch mehr Infos.

Wenn Du Dich noch ganz kurz geduldest, bis ds26-15 erscheint, kriegst Du außerdem noch einen ltrace, um Funktionsaufrufe schön hierarchisch zu verfolgen und mitsamt Parametern darstellen zu lassen. strace für die Kernel-Calls haben wir dann auch im Angebot, aber die kann ltrace ja auch anzeigen.

Desweiteren wird in ds26-15 Inotify samt inotify-tools drin sein, so daß Du Dateizugriffe jeder Art protokollieren oder darauf reagieren kannst. Ich habe auch einen Hook in rc.S drin, den man dynamisch aktivieren kann, um schon beim Booten Dateizugriffe hübsch sauber chronologisch in ein Log zu schreiben.

Hier OT, aber trotzdem interessant ist ein Hook, ebenfalls in rc.S, der den Kernel-Ringpuffer via dmesg möglichst früh in ein Log-File rettet, weil er beim AVM-Kernel nur 16 KB groß ist und am Ende des Bootvorgangs wahrscheinlich sonst der Anfang fehlt. Der Syslogd startet eben erst später. Das ersetzt keine serielle Konsole (meine Box hat nicht mal Anschlüsse dafür), zeigt aber zumindest sämtliche Kernel-Meldungen von Beginn an. Nur die Bootloader-Logs fehlen natürlich, weil die ja nur auf der seriellen Konsole zu sehen sind.

bodega schrieb:
Würde gerne mehr über die Funktionsweisen mancher AVM-Binaries herausfinden (eventuell sogar eigenen Code injizieren).

Ist sowas überhaupt erlaubt???

Was Du zu Deinem Privatvergnügen auf Deiner Box, die Dein Eigentum ist, tust, bleibt Dir überlassen. Aber Reverse Engineering & Co. sind von AVM in den Lizenzbedingungen erwartungsgemäß ausgeschlossen.
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
244,827
Beiträge
2,219,005
Mitglieder
371,520
Neuestes Mitglied
fredl_2
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.