将哪些参数传递给 PE(可移植可执行文件)文件的入口点?
What arguments are passed to entry point of a PE (Portable Executable) file?
如果您 assemble 一个 PE(.exe,Win32 的可移植可执行文件)文件,它有一个入口点,您可以调用 _start
、_main
或任何您喜欢的名称。
问题是 - 这个入口点是用一些参数调用的吗?如果是这样,它们是否可以在堆栈中访问?如果是这样,这个入口点函数是否需要清除堆栈?我在哪里可以找到有关此的文档?
否,进程在入口点的堆栈上没有任何关于它的参数的信息。您必须调用 GetCommandLine
或通过 RTL_USER_PROCESS_PARAMETERS 访问 PEB 中的信息,但这不是稳定的 API。
每个语言支持库(如 CRT)也必须这样做。
如果您 assemble 一个 PE(.exe,Win32 的可移植可执行文件)文件,它有一个入口点,您可以调用 _start
、_main
或任何您喜欢的名称。
问题是 - 这个入口点是用一些参数调用的吗?如果是这样,它们是否可以在堆栈中访问?如果是这样,这个入口点函数是否需要清除堆栈?我在哪里可以找到有关此的文档?
否,进程在入口点的堆栈上没有任何关于它的参数的信息。您必须调用 GetCommandLine
或通过 RTL_USER_PROCESS_PARAMETERS 访问 PEB 中的信息,但这不是稳定的 API。
每个语言支持库(如 CRT)也必须这样做。