0

我想研究ELF重定位机制,所以我用NASM组装了一个x86汇编程序来生成ELF文件,但是在Win32下。然后我使用了mingw32的gdb来调试它。它加载得很好,我可以使用“list”命令查看程序。但是,我无法运行它。我收到以下消息:

Starting program: c:\Projects\NasmProjects\Test01\Hello.o
Error creating process c:\Projects\NasmProjects\Test01\Hello.o

有没有解决的办法?

4

1 回答 1

0

有没有解决的办法?

不。

首先,您已经组装了一个可重定位的目标文件(类型为ET_REL)。没有操作系统会“运行”此类文件——支持执行 ELF 文件的操作系统需要完全链接的可执行文件(类型为ET_EXECor ET_DYN)。

其次,即使你设法链接一个ET_EXEC.,你仍然需要你的操作系统知道如何加载和开始执行这样的文件。Linux 和 Solaris 内核确实知道这一点,而 AIX 和 Windows 内核则不知道

于 2013-08-01T03:56:25.907 回答