如标题。我尝试阅读 BFD 的 ELF 代码,但阅读起来并不轻松。我也尝试从文档中获取一些东西,但我需要一个示例来了解它是如何工作的。谁能为我指出一些更简单的例子,以了解如何定义可执行格式?
编辑:看起来我没有正确地提出问题。我不是问“如何创建自己的可执行格式规范?”,也不是“哪里有好的 ELF 文档?”,而是“如何使用 GNU BFD 实现我自己的可执行格式?”。
如标题。我尝试阅读 BFD 的 ELF 代码,但阅读起来并不轻松。我也尝试从文档中获取一些东西,但我需要一个示例来了解它是如何工作的。谁能为我指出一些更简单的例子,以了解如何定义可执行格式?
编辑:看起来我没有正确地提出问题。我不是问“如何创建自己的可执行格式规范?”,也不是“哪里有好的 ELF 文档?”,而是“如何使用 GNU BFD 实现我自己的可执行格式?”。
你确实看过这里http://sourceware.org/binutils/docs-2.21/bfd/index.html和这里http://sourceware.org/binutils/binutils-porting-guide.txt?
还研究了此处提到的 BFD 后端的 MMO 实现http://sourceware.org/binutils/docs-2.21/bfd/mmo.html#mmo(来源:http: //sourceware.org/cgi-bin/cvsweb。 cgi/src/bfd/mmo.c?cvsroot=src ) 可能没有从 ELF 开始复杂... ;-)
DOS COM 文件是最简单的格式。
在 seg:0100h 加载最多 64k 少 256 个字节,设置 DS,ES,SS=seg, SP=FFFFh 并跳转到 seg:0100h