在将 cmd 参数传递给 main 之前,如何加载它们以处理内存?

逆向工程 命令行
2021-07-02 17:24:31

我的问题是 cmd 参数如何从 shell 传递到进程内存?加载程序如何加载它们以及是否传递了某种系统调用?如果有人可以详细解释或指出相关文章,我会很高兴。

2个回答

对于 Windows,Loader 会在进程设置期间将参数复制到进程的地址空间中。具体来说,它发生在地址空间初始化时

请参阅Windows Internals 中的Stage 3D Step 8

  1. 用户进程参数被写入进程、复制和修复(意味着从绝对形式转换为相对形式,以便需要单个内存块)。

您可以阅读有关系统调用的信息forkexecve包括内核实现。

用户土地实现:

fork 和其他使用示例

execve 的手册页,包括示例

内核实现