6

Cコード内からオブジェクトファイルの形式を確認できるようにしたいと思います。これにより、COFF形式かELF形式かに基づいて、さまざまな関数を使用してファイルを読み取ることができます。

これは可能ですか?もしそうなら、どうすればいいですか?

それが何か違いを生むのであれば、これはLinuxでもあります。

4

3 に答える 3

13

最初の4バイトを読み取ります。それらがに等しい場合\x7fELF、それはELFファイルです。それ以外の場合は、COFFとして解析し、意味があるかどうかを確認する必要があります。(COFFマジックははるかに複雑であることに注意してください。42以上のマジックエントリを取得します/usr/share/file/magic)。

于 2012-10-10T15:09:51.593 に答える
5

マジックナンバーを確認してください。ELFのマジックナンバーは0x7f454C46(0x7f + "ELF")で、COFFは0x14cです。COFFにはさまざまな魔法数があるので、とにかくこれに注意してください。

これらの値を読み取るときは、エンディアンに注意してください。

于 2012-10-10T15:13:19.360 に答える
4

コマンドファイルを試してください。ファイルの種類を教えてくれます。

于 2012-10-10T15:08:35.423 に答える