簡體   English   中英

如何從C中檢查目標文件是否為COFF或ELF格式?

[英]How do I check if an object file is in COFF or ELF format from within C?

我希望能夠從我的C代碼中檢查目標文件的格式,以便我可以根據它是COFF還是ELF格式使用不同的函數來讀取文件。

這是可能的,如果是的話,我該怎么做?

這在Linux順便說一下,如果這有任何區別。

讀取前四個字節。 如果它們等於\\x7fELF ,則它是一個ELF文件。 否則,您應該將其解析為COFF並查看它是否有意義。 (請注意,COFF魔術要復雜得多;我在/usr/share/file/magic獲得了不少於42個魔術條目)。

檢查幻數。 ELF幻數為0x7f454C46 (0x7f +“ELF”), COFF為0x14c 無論如何要小心,因為COFF有不同的幻數。

在閱讀這些值時,請注意字節序。

嘗試命令文件 它告訴你文件的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM