本项目为一个进程注入工具,它使用直接系统调用(Direct Syscall)技术将 Shellcode 注入到一个新创建的挂起进程中执行,旨在绕过常见的安全软件监控。
- 动态解析系统调用: 程序首先动态获取所需 Windows NT 系统调用的编号,从而直接调用内核功能,绕过用户层的 API Hooking。
- 创建挂起进程: 创建一个硬编码的合法目标进程(
C:\Windows\System32\explorer.exe),并使其处于挂起状态。 - 注入载荷:
- 在目标进程中分配新的可执行内存 (
NtAllocateVirtualMemory)。 - 从本地读取名为
123.bin的 Shellcode 文件。 - 将 Shellcode 写入新分配的内存中 (
NtWriteVirtualMemory)。
- 在目标进程中分配新的可执行内存 (
- 劫持并执行:
- 修改主线程的指令指针(x64 下为
RIP,x86 下为EIP),使其指向注入的 Shellcode (NtSetContextThread)。 - 恢复线程运行 (
NtResumeThread),使目标进程执行我们的 Shellcode。
- 修改主线程的指令指针(x64 下为
- 使用 Visual Studio 打开
Process Hollowing.sln并编译生成可执行文件。 - 准备你的 Shellcode,并将其命名为
123.bin。 - 将
123.bin文件与编译生成的可执行文件放置在同一目录下。 - 运行可执行文件,它会自动启动
explorer.exe并注入载荷。