2015-04-01 138 views
0

我想驗證對象是否在被編譯的32位或64位:確定是否編譯ELF對象是32位或64位

% readelf -h my_obj 
ELF Header: 
    Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 
    Class:        ELF32 
    Data:        2's complement, big endian 
    Version:       1 (current) 
    OS/ABI:       UNIX - System V 
    ABI Version:      0 
    Type:        EXEC (Executable file) 
    ... 

由於ELF32顯示,這是否保證對象是在32位模式下?

+3

GNU'file'命令會告訴你架構和位。 – teppic 2015-04-01 16:43:43

回答

1

胖二進制文件對於ELF不常見或不標準,所以該類可靠地指示32位和64位。但要弄清楚你是在看32位的x86,ARM,MIPS還是其他什麼的,你還必須在Type字段的下方檢查Machine字段。

相關問題