CreateRemoteThread失败,出现ERROR_ACCESS_DENIED

时间:2012-12-20 20:51:23

标签: windows-7-x64 dll-injection

我正在尝试学习dll注入的基础知识,因此我创建了一个非常简单的hello-world类型DLL和基于我在网上找到的代码的注入器。我无法找到任何开箱即用的东西,所以我不得不做一些调整。

Injection CodeDLL Code

我在64位窗口上运行它们。我正在使用Visual Studio 2010进行编译。注入器是一个win32控制台应用程序,而dll也是win32。我正在尝试将我的代码注入现有的记事本进程(也是32位)。所有这些都在Windows 7 x64上运行。

当我运行注射器时,它每次都在CreateRemoteThread失败,GetLastError返回5(即ERROR_ACCESS_DENIED)。我已经确认dll路径是正确的(尽管将其更改为虚假路径会产生相同的行为),并且我已经确认路径是使用Cheat Engine在正确的地址写入记事本的内存。我遇到了困难,因为我不确定如何进一步调试问题。

什么可能导致CreateRemoteThread失败?

2 个答案:

答案 0 :(得分:3)

问题是notepad.exe在64位窗口中是一个64位进程,我试图注入一个32位进程。

答案 1 :(得分:0)

我也提出了同样的问题。我的情况是这样的:

  1. 我的系统是64位,记事本也是64位。

  2. 但是注入器是32位进程。

  3. 我的解决方案是将64位记事本替换为系统目录中的32位记事本。

相关问题