RFC: Objdump: Dumping PE specific headers

Fangrui Song i@maskray.me
Tue May 30 15:50:58 GMT 2023


On Tue, May 30, 2023 at 7:50 AM Nick Clifton <nickc@redhat.com> wrote:
>
> Hi Fangrui,
>
> > I wonder whether the -P header output can be made similar to the
> > existing output...
>
> OK, I have pushed an update which makes the output similar to that
> from "objdump -p", but not quite the same:
>
>    $ objdump -P header tests/test-section-flags.exe
>
> tests/test-section-flags.exe:     file format pei-x86-64
>
>    File Header (at offset 0):
> Bytes on Last Page:             144
> Pages In File:                  3
> Relocations:                    0
> Size of header in paragraphs:   4
> Min extra paragraphs needed:    0
> Max extra paragraphs needed:    65535
> Initial (relative) SS value:    0
> Initial SP value:               184
> Checksum:                       0
> Initial IP value:               0
> Initial (relative) CS value:    0
> File address of reloc table:    64
> Overlay number:                 0
> OEM identifier:                 0
> OEM information:                0
> File address of new exe header: 0x80
> Stub message:                   !This program cannot be run in DOS mode.
>
>    Image Header (at offset 0x80):
> Machine Number:                 0x8664          - AMD64
> Number of sections:             6
> Time/Date:                      0x646f522d      - Thu May 25 13:18:53 2023
> Symbol table offset:            0x001000
> Number of symbols:              60
> Optional header size:           0xf0
> Flags:                          0x0226          - EXECUTABLE,LINE NUMS STRIPPED,LARGE ADDRESS AWARE,DEBUG STRIPPED
>
>    Optional 64-bit AOUT Header (at offset 0x98):
> Magic:                          20b             - PE32+
> Version:                        2702
> Text Size:                      0x200
> Data Size:                      0xa00
> BSS Size:                       0
> Entry Point:                    0x1000
> Text Start:                     0x1000
>
>    Optional PE+ Header (at offset 0xb0):
> Image Base:                     0x40000000
> Section Alignment:              0x1000
> File Alignment:                 0x200
> Major OS Version:               4
> Minor OS ersion:                0
> Major Image Version:            0
> Minor Image Version:            0
> Major Subsystem Version:        5
> Minor Subsystem Version:        2
> Size Of Image:                  0x7000
> Size Of Headers:                0x400
> CheckSum:                       0xc0d7
> Subsystem:                      3
> DllCharacteristics:             0x160
> Size Of Stack Reserve:          0x200000
> Size Of Stack Commit:           0x1000
> Size Of Heap Reserve:           0x100000
> Size Of Heap Commit:            0x1000
> Loader Flags:                   0
> Number Of Rva and Sizes:        0x10
>
>
>    The update also adds support for some more PE machine numbers,
>    and support for AOUT headers that are larger than 28 bytes.
>    (Although I have not actually tested this feature as I could
>    not find any sample executables use target specific AOUT headers).
>
> Cheers
>    Nick
>

Thanks for the update!


More information about the Binutils mailing list