Process Hollowing在64位进程中的简单实现
首先,创建一个挂起状态的合法进程(比如notepad进程),然后再使用ZwUnmapViewOfSection
或NtUnmapViewOfSection
将合法的notepad模块占据的内存空间给unmap掉。接下来,向notepad的内存空间中写入恶意的PE文件,并通过修改进程的context,将入口点改为恶意PE文件的入口点。最后,使用ResumeThread
使notepad恢复执行,从而达到在notepad进程空间中运行恶意PE文件的效果。这种方法就是Process Hollowing。
本文大量参考Leitch, J. (n.d.). Process Hollowing.这篇文章。