[英]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.