*.dll / *.so objdump
-
Es ist unter Linux moeglich, mit "objdump -T" den "Inhalt" einer DLL im *so-Format einzusehen.
Zwei Fragen:
1. Gibt es unter DOS einen aehnlichen Befehl fuer *.dll?
2. Kann ich sogar unter Linux den Inhalt einer *.dll einsehen?Danke fuer Hinweise, Links oder Tipps.
MfG
eiji
-
Es ist unter Linux moeglich, mit "objdump -T" den "Inhalt" einer DLL im *so-Format einzusehen.
was meinst du mit "Inhalt"? -T zeigt dir die dynamische Symbol Tabelle an.
1. Gibt es unter DOS einen aehnlichen Befehl fuer *.dll?
Befehl? DLLs unter DOS?
2. Kann ich sogar unter Linux den Inhalt einer *.dll einsehen?
ja, meine objdump-Version unterstützt das direkt.
=> man man: objdump
-
Ich verstehe darunter, bitte berichtigt mich, das ich mit "objdump -T" die Namen und weitere Infos zu dynamisch gebunden Funktionen sehen kann. Also quasi die Funktionen die dann auch dynamisch eingebunden werden koennen.
Bsp:
objdump -T libtk8.4.so > test.dat ... 00000000 l d *ABS* 00000000 00000000 l d *ABS* 00000000 000a51f0 g DF .text 000000ac Base Tk_PhotoExpand 0005db60 g DF .text 0000003f Base Tk_GetPixmap 00000000 DF *UND* 000000d1 XFreePixmap 00000000 DF *UND* 000000a9 XSetInputFocus 000d2360 g DO .data 00000050 Base tkCascadeEntryConfigSpecs 000569c0 g DF .text 0000012b Base TkpWmSetState 0008c620 g DF .text 0000015f Base TkFillPolygon 0009a1e0 g DF .text 0000005e Base Tk_ImageChanged ...
Nun finde ich nicht die richtigen <options> um das mit der *.dll Version durchzufuehren.
Bsp.:
objdump -T tk84.dll > test.dat tk84.dll: file format efi-app-ia32 DYNAMIC SYMBOL TABLE: no symbols
Entweder ist mein objdump zu alt(suse9.1), oder ich bin zu bloed.
Ein Erleuchtung waere mir sehr willkommen.MfG
eiji
-
hmm, scheint wirklich nicht zu gehen, ich dachte du meinst disassemblieren :). man: nm zeigt auch das gleiche an.
-
Ich hoffe mein Problem ist deutlich geworden.
Mit "unter DOS" meinte ich lediglich ein DOS-Kommando analog zu objdump.
*.dll ist schliesslich windows, und kann verstehen wenn objdump da nicht die selben Moeglichkeiten hat.
Ich hab alle logischen options ausprobiert.
Interessant sind die supported targets!Usage: objdump <option(s)> <file(s)> Display information from object <file(s)>. At least one of the following switches must be given: -a, --archive-headers Display archive header information -f, --file-headers Display the contents of the overall file header -p, --private-headers Display object format specific file header contents ... objdump: supported targets: elf32-i386 a.out-i386-linux [b]efi-app-ia32[/b] elf32-little elf32-big elf64-x86-64 elf64-little elf64-big srec symbolsrec tekhex binary ihex trad-core objdump: supported architectures: i386 i386:x86-64 i8086 i386:x86-64:intel i386:intel Report bugs to bug-binutils@gnu.org and hjl@lucon.org.
Supported target: efi-app-ia32
und bei
objdump -T tk84.dlltk84.dll: file format [b]efi-app-ia32[/b] DYNAMIC SYMBOL TABLE: no symbols
Also muesste "da doch was gehen"!
Leider komme ich nicht weiter. Man muss doch auch einer *.dll die Func-names entlocken koennen!!!!!!!!MfG
Sascha
-
dumpbin /EXPORTS
-
dumpbin /EXPORTS ?????????????????
Vielleicht kannst du das noch erlaeutern??
thk
eiji