可以有没有可执行映像的进程吗?

| 看完OSR Online和NtInternals等各种页面之后,似乎
NtCreateProcess
(和
ZwCreateProcess
)指定为内存段提供句柄是可选的! 这是否意味着我们可以拥有不受可执行映像支持的进程?如果是这样,它们可能被(或被)用作潜在用途?这是否意味着我们可以将可执行文件完全复制到内存中,然后甚至从磁盘上删除文件,并使进程继续运行?这似乎是一个非常有用的功能。     
已邀请:
        如果section(在win32 land中的文件映射)为NULL,则它将使用父进程的section。可能可以使用NULL并分配新的内存并在其上指向EIP(或使用页面文件映射),但是使用NtCreateProcess是有问题的,它没有文档说明,并且没有像CreateProcess一样在Win32子系统中注册。 (如果您只想使用来自ntdll的导出,则可能没问题) 在Win9x,NT4和2000上,可以使用此处列出的肮脏技巧在运行时从磁盘上删除自己。 其他选项: 使用驱动程序,可以在加载它们后将其删除(sysinternal工具会执行此操作) 使用主机进程;暂停启动explorer.exe,cmd.exe或rundll32.exe并使用CreateRemoteThread +注入的代码(这当然意味着磁盘上有一个exe文件,但是其中没有任何代码)     
        我只是尝试自己创建一个具有非图像支持的Section对象的过程。 :) 结果?
NtCreateProcess
返回:
STATUS_SECTION_NOT_IMAGE
// An attempt was made to query image information on a section which
// does not map an image.
因此,显然每个进程都需要映像支持(假设您不对内核进行破解,否则)。     

要回复问题请先登录注册