*.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.dll

    tk84.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


Anmelden zum Antworten