可以有没有可执行支持图像的进程吗?

Meh*_*dad 6 nt winapi executable process

在查看OSR OnlineNtInternals等各种页面之后,似乎NtCreateProcess(和ZwCreateProcess)指定给出内存部分的句柄是可选的!

这是否意味着我们可以拥有不受可执行映像支持的进程?如果是这样,它们可能(或者它们)可能用于什么?这是否意味着我们可以将可执行文件完全复制到内存中,然后甚至从磁盘中删除该文件,并让该过程继续运行?这似乎是一个非常有用的功能.

And*_*ers 5

如果section(在win32 land中的文件映射)为NULL,则它将使用父进程的section。可能可以使用NULL并分配新的内存并在其上指向EIP(或使用页面文件映射),但是使用NtCreateProcess是有问题的,它没有文档说明,并且没有像CreateProcess一样在Win32子系统中注册。(如果您只想使用来自ntdll的导出,则可能没问题)

在Win9x,NT4和2000上,可以使用此处列出的肮脏技巧在运行时从磁盘上删除自己。

其他选项:

  • 使用驱动程序,可以在加载它们后将其删除(sysinternal工具会执行此操作)
  • 使用主机进程;暂停启动explorer.exe,cmd.exe或rundll32.exe并使用CreateRemoteThread +注入的代码(这当然意味着磁盘上有一个exe文件,但是其中没有任何代码)