Early Bird & CreateRemoteThread

在前面的Early Bird篇我们知道需要挂起创建一个单独的进程,在恢复挂起线程时程序会调用NtTestAlert函数对APC队列进行处理,试想,我们在已有进程内创建一个挂起的线程,然后往这个线程内插入用户apc,随后恢复进程,是不是同样可以在进程执行入口点前接管进程?

实现思路

  1. 创建一个挂起的线程

  2. 写入shellcode

  3. 插入apc队列

  4. 恢复线程

代码实现

由于进程会在入口点执行前被接管,所以我们其实并不用指向一个真正有效的入口点。

这里有个小坑,生成的shellcode需要指定exitfunc,不然默认的process退出技术会把整个进程结束。

  • 本进程代码执行:

  • 远程线程注入:

最后更新于

这有帮助吗?