64 位 PE 注入——挂起、注入、恢复(x64 相当于改变 EAX?)

64 bit PE injection - Suspend, inject, resume (x64 equivalent to changing EAX?)

全部,

我试图通过无休止地调试应用程序来解决这个问题,但我似乎找不到答案。

在我的 32 位 PE 注入中,我最终将 EAX 更改为注入 PE 的新入口点,然后恢复线程。我读到内核 运行 在最后调用 EAX 以到达入口点(我在调试应用程序时没有看到这一点,所以不知道是否真的如此)。

但是,我似乎找不到这在 x64 中是否可行(尝试了所有寄存器:))。

所以总而言之有两个问题:

  1. 内核是否真的调用了 EAX,因为我在调试时看不到那个调用
  2. 是否可以使用相同的方法更改寄存器以在 x64 中获取 运行 的新入口点,或者我是否需要依赖例如创建远程线程?

P.S.: 我是一名安全研究员:)

在 x64 中 RCX 寄存器用作应用程序定义的线程入口点。在 x86 中 - 使用 EAX 寄存器。而不是内核调用这个地址。但是 kernel32.dll