我正在尝试运行 bzip 并让它从 nasm 编码的汇编程序(在 linux 下)内部将控制权返回给调用函数。我显然需要结合使用 sys_fork 和 sys_execve 系统调用来实现这一点。经过大量搜索,我找到了如何使用 sys_execve 的示例,但是我找不到如何使用 sys_fork 的示例。对我的请求的任何帮助将不胜感激。
问问题
1266 次
1 回答
2
我的经验有限,但我记得sys_fork
很容易。“就这样做” - 没有参数。此时,您“同时在两个地方”。如果eax
是零,你就是孩子——sys_execve
在 bzip 上做。如果eax
是非零(非负!),你是父母,eax
是你的PID。sys_waitpid
在那个PID上做一个。我记得,这会返回 bzip 向左移动 8 个字节的退出状态——sys_execve
它本身永远不会返回。
我有一个运行编辑器、nasm 和 ld 的粗略示例(都在硬编码的“hello.asm”上)。发布时间很长,但如果您需要,我可以通过某种方式提供。sys_execve
我记得,我发现最难的部分是正确的参数。
于 2012-12-10T21:12:26.753 回答